You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Bitwarden Secrets Manager hosting and client integrations (#1329)
* Add Bitwarden Secrets Manager integration
* Add missing launch config to bitwarden example
* Convert bitwarden project name to required parameter
* Remove unused internal project name tracking
* Convert fake async to plain synchronous helper
* Collapse the public overload matrix to one internal representation
* Add test for same-name AddSecret/GetSecret
* Expand sample with secret retrieval
* Add ssl cert config for bitwarden sdk
* Add first-class secret projection API
* Remove unused setter
* Add missing null/empty/whitespace guards
* Make secret name matching case insensitive
* Skip Secrets.Update() for unchanged secrets
* Add missing logging
* Make auth cache actually work and improve example
* Replace manifest with pipeline steps
* Add compose env to example
* Improve apphost state handling with IAspireStore
* Pin ssl cert dir in run mode
* Ignore transient errors
* Fix argument passing
* Configure auth state file as parameter
* Reorganize types into logical groups
* Fix redundant parameter prompting
* Reorganize auth and project cache files
* Add env patch for resolved secrets
* Split deployment pipeline by concern
* Update bitwarden docs
* Disable deployed dashboard for example
* Make deployed example endpoints external
* Tag 'provision-project' as 'provision-infra' too
* Make default cache path more predictable
New default:
<AppHost>/.bws/{resourceName}.{environment}.json
e.g.
AppHost/.bws/secrets.Development.json
AppHost/.bws/secrets.Production.json
* Use unique one-way hash for auth cache
New default:
<AppHost>/obj/.bitwarden/<tokenHash>.auth-cache
.e.g.
AppHost/obj/.bitwarden/a3f9c1d.auth-cache
(Also rename folder .bws to .bitwarden for the project cache)
* Replace WithRuntimeAccessToken with overload of WithReference
* Redesign client integration API as configuration callback
* Update gitignore
* Improve state transitions and document decisions
* Add commands to reset auth cache and reprovision secrets
* Highlight sync command, move reset auth cache to extras
* Handle transient bitwarden errors
* Add explicit TLS certificate validation
* Make resource states less confusing
* Add parameter prompts
* Add a change audit trail
* Deduplicate initial and repeated sync code
* Fix nonzero exit code after succesful retry
* Improve state transitions
* Add parameters to DAG
* Add new ways to configure URLs
* Allow resetting auth cache from any state
* Use `Waiting` instead of `ValueMissing` when params are not set
* Use UnsafeAccessor to check if parameter has a value
* Unify managed and unmanaged secrets
* Reorganize optional config in readme
* Add Compatibility notes to readme
* Fix unmanaged secret value missing from env
* Fix deploy prompting values for unmanaged secrets
* Pre-sync managed secrets before process-parameters
* Add warnings and fallbacks when internals change
* Add WithAuthCacheFile placeholder to sample app
* Add WithAuthCacheVolume for container resources
* Fix stale docs
* Allign auth caches with how bws cli does it
* Add persistent auth cache example
* Add simple curl client to example
* Keep project and secret provisioning docs together
* Add unmanaged secret resolution doc
* Remove stray UserSecretsId
* Update description to "it's just Aspire"
* Improve ATS annotations
* Replace callback API with optional chaining for ATS compatibility
* Rework keyed service tests
* Align GetSecret with AddSecret
* Rework readme to add missing details, remove excessive details or repetition
* fixup! Replace callback API with optional chaining for ATS compatibility
* Make BitwardenSecretResource provide the value without indirection
* Don't implicitly WaitForCompletion, it's not a common pattern
* Drop WithBitwardenSecretId/Value in favor of WithEnvironment
Because I can't design BitwardenSecretResource as a ParameterResource while also preventing use of WithEnvironment, it makes more sense to design for WithEnvironment only.
Old: WithBitwardenSecretValue(name, secret)
New: WithEnvironment(name, secret)
Old: WithBitwardenSecretId(name, secret)
New: WithEnvironment(name, secret.AsSecretId())
* Fix outdated docs
* Remove unnecessary local secret name
* Swap reprovision/reset cache commands
* Fix repeated prompts on first deploy, improve first-time experience
* Introduce clear split between managed vs. externally managed secrets
* Fix highlighted command test
* Collapse AddBitwardenSecretManager overloads to a single method
* Rename projectName in sample
* Cover blind spots in BitwardenSecretManagerProvisioner tests
* Fix reloading deployment state on first run
* Log descriptive errors for missing parameters in non-interactive deploys
* Align project deploy rules between publish and run mode
* Update examples/bitwarden-secret-manager/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.AppHost/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.AppHost.csproj
* Update src/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager/CommunityToolkit.Aspire.Hosting.Bitwarden.SecretManager.csproj
* Apply suggestion from @aaronpowell
* Apply suggestion from @aaronpowell
---------
Co-authored-by: Aaron Powell <me@aaron-powell.com>
0 commit comments