π― Goal
Build the first working release of Synthing as a framework-agnostic, library-first orchestration core for secure secret management.
This phase focuses purely on single SecretManager usage, providing Connectors, Providers, Secret Injection, and secure secret application flows.
β
No multi-environment plans, no hydration flows, no snapshotting in Phase 1.
π― Success Criteria for Phase 1 Completion
β
Synthing is published as an independent library (npm)
β
Kubricate migrates to use Synthing internally for secret management
β
Kubricate fully removes its own internal /secrets/ module
When Kubricate runs secret workflows (useSecrets(), generate, secrets apply) through Synthing without owning any secret orchestration code itself, Phase 1 is complete.
β
Scope of Phase 1
Core Modules
Connectors & Providers (Core Abstractions)
Config API
Merge & Conflict Behavior
Minimal CLI (Optional)
CLI is optional and exists only for small standalone usage.
Frameworks like Kubricate will wrap Synthing programmatically.
Testing
β Out of Scope (Phase 2+)
- β Hydration flows (Env β Vault)
- β Plan synthesis, matrix generation
- β Snapshot history & drift detection
- β Multi-manager user-facing Registry
π¦ Target Directory Structure
/packages/core/
/secrets/
/manager/
SecretManager.ts
/injectors/
SecretInjectionBuilder.ts
/context/
SecretsInjectionContext.ts
/orchestrator/
SecretsOrchestrator.ts
/connectors/
BaseConnector.ts
InMemoryConnector.ts
/providers/
BaseProvider.ts
InMemoryProvider.ts
/registry/
SecretRegistry.ts
/types/
secret-types.ts
defineConfig.ts
π₯ Summary
Synthing Phase 1 is considered achieved when Synthing is published as a standalone library and Kubricate consumes it internally, fully removing its previous /secrets/ module.
β¨ Next Step
- Create milestone: Synthing v0.1.0 - Core Orchestration MVP
- Break Phase 1 into PR-sized issues (e.g., Implement SecretManager, Implement Orchestrator)
- Scaffold base repo structure for
@synthing/core
β
Now your Phase 1 is not just about code completion, itβs about real platform adoption (Kubricate switching over).
t!
π― Goal
Build the first working release of Synthing as a framework-agnostic, library-first orchestration core for secure secret management.
This phase focuses purely on single
SecretManagerusage, providing Connectors, Providers, Secret Injection, and secure secret application flows.β No multi-environment plans, no hydration flows, no snapshotting in Phase 1.
π― Success Criteria for Phase 1 Completion
β Synthing is published as an independent library (npm)
β Kubricate migrates to use Synthing internally for secret management
β Kubricate fully removes its own internal
/secrets/moduleβ Scope of Phase 1
Core Modules
SecretManagerSecretInjectionBuilderSecretsInjectionContextSecretsOrchestrator(support onlyintraProviderandcrossProvidermerges)SecretRegistry(internal, hidden from user for now)Connectors & Providers (Core Abstractions)
BaseConnectorInMemoryConnector(for testing)BaseProviderInMemoryProvider(for testing)Config API
defineConfig()supporting:SecretRegistrykeyed as'default'.Merge & Conflict Behavior
autoMergesupport within the same provider (intraProvider)errorstrategy for crossProvider conflictsMinimal CLI (Optional)
synthing secrets applyβ apply to target providersynthing generateβ trigger generator output (if provided in config)Testing
InMemoryConnector+InMemoryProviderβ Out of Scope (Phase 2+)
π¦ Target Directory Structure
π₯ Summary
β¨ Next Step
@synthing/coreβ Now your Phase 1 is not just about code completion, itβs about real platform adoption (Kubricate switching over).
t!