feat(project): add project key for identification and creation#240
Merged
briangreunke merged 2 commits intoNov 26, 2025
Merged
Conversation
rdheekonda
approved these changes
Nov 25, 2025
mkultraWasHere
pushed a commit
that referenced
this pull request
Dec 4, 2025
* feat(project): add project key for identification and creation * chore: updated docs
briangreunke
added a commit
that referenced
this pull request
Dec 6, 2025
… file (#247) * chore(deps): update actions/checkout action to v6 (#238) | datasource | package | from | to | | ----------- | ---------------- | ------ | ------ | | github-tags | actions/checkout | v5.0.1 | v6.0.0 | Co-authored-by: dreadnode-renovate-bot[bot] <184170622+dreadnode-renovate-bot[bot]@users.noreply.github.com> * chore(deps): update pre-commit hook pycqa/bandit to v1.9.2 (#241) | datasource | package | from | to | | ----------- | ------------ | ----- | ----- | | github-tags | PyCQA/bandit | 1.9.1 | 1.9.2 | Co-authored-by: dreadnode-renovate-bot[bot] <184170622+dreadnode-renovate-bot[bot]@users.noreply.github.com> * chore(deps): update actions/setup-python action to v6.1.0 (#242) | datasource | package | from | to | | ----------- | -------------------- | ------ | ------ | | github-tags | actions/setup-python | v6.0.0 | v6.1.0 | Co-authored-by: dreadnode-renovate-bot[bot] <184170622+dreadnode-renovate-bot[bot]@users.noreply.github.com> * feat(user-data): Scope credentials fetch by organization and workspace (#232) * feat(project): add project key for identification and creation (#240) * feat(project): add project key for identification and creation * chore: updated docs * fix: score value race condition (#244) * bugfix score value race condition * revert agent change * fix: span duration property has inconsistent time formats (#245) * fix * fix --------- Co-authored-by: Michael Kouremetis <michael@Michaels-MacBook-Pro.local> * chore(deps): update actions/checkout action to v6.0.1 (#246) | datasource | package | from | to | | ----------- | ---------------- | ------ | ------ | | github-tags | actions/checkout | v6.0.0 | v6.0.1 | Co-authored-by: dreadnode-renovate-bot[bot] <184170622+dreadnode-renovate-bot[bot]@users.noreply.github.com> * feat(dataset): add push, save-to-disk, and refactor API --------- Co-authored-by: dreadnode-renovate-bot[bot] <184170622+dreadnode-renovate-bot[bot]@users.noreply.github.com> Co-authored-by: Vincent Abruzzo <6225496+vabruzzo@users.noreply.github.com> Co-authored-by: Michael Kouremetis <mkouremetis16@gmail.com> Co-authored-by: Michael Kouremetis <michael@Michaels-MacBook-Pro.local>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch introduces the concept of a
project_keyto the Dreadnode SDK, enhancing project identification and creation mechanisms. Previously, project identification primarily relied on ID, name, or slug, and creation only required a name. With this update, projects can now be explicitly identified and created using a unique key, which becomes a mandatory parameter for project creation. The SDK's internal project resolution logic has been updated to leverage this new project key for default project handling and lookup.Changes
Features
project_key(string) is now a fundamental identifier for projects.ApiClient, bothnameandkeyare now required parameters.ApiClient.get_projectmethod'sproject_identifiernow explicitly supports lookup bykey.DEFAULT_PROJECT_KEY("default") has been introduced to streamline default project handling.API Client Updates
dreadnode/api/client.py:ApiClient.get_project: The docstring forproject_identifierhas been updated to reflect thatID or keyare the primary identification methods.ApiClient.create_project:nameparameter type has been simplified tostrand is now mandatory.key: strparameter has been added.nameandkey.SDK Internal Logic
dreadnode/constants.py:DEFAULT_PROJECT_KEY = "default".dreadnode/main.py:Dreadnode._resolve_project:key._api.get_project) now usesself.project or DEFAULT_PROJECT_KEYas theproject_identifier._api.create_project) now passeskey=self.project or DEFAULT_PROJECT_KEYin addition to the project name.Generated Summary:
ApiClientto require a projectkeyin addition tonamein thecreate_projectmethod.project_identifier.DEFAULT_PROJECT_KEY) to the constants file for consistency and ease of use.Dreadnodeclass for project resolution to utilizekeyrather thanname, aligning behavior with the new requirements.ApiClientto update their usage patterns to account for the newkeyparameter.This summary was generated with ❤️ by rigging