feat: add key management lifecycle agent#145
Merged
Merged
Conversation
Introduce a reusable lifecycle agent framework under common/lifecycleagent and the first contract definition lifecycle agent. Move existing orchestration agents under agent/orchestration/ and add NATS stream helpers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> # Conflicts: # Makefile # common/lifecycleagent/agent.go # common/lifecycleagent/agent_test.go # common/lifecycleagent/launcher.go # common/natsclient/stream.go # common/natsclient/stream_test.go
Carry the domain payload of lifecycle events in a CloudEvents v1.0 envelope. The contract definition agent now decodes a CloudEvent[ContractDefinitionData]. Require at least one subject when setting up an event stream and drop the catch-all subject so the runtime fails fast instead of registering overlapping subjects that NATS rejects. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lifecycle agents now fail to start if the shared event stream is absent, so the runtime restarts them until it has been provisioned. When the stream exists, each agent adds its own subjects via a coverage-aware merge that avoids the overlapping subjects NATS rejects: a subject already covered by a broader one is dropped, a broader subject replaces narrower ones, disjoint subjects are appended, and a partial overlap is reported as an error. Also fix the contract definition agent integration test config prefix (cdagent) and align it with the wildcard subscription subject. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jimmarino
approved these changes
Jun 29, 2026
wolf4ood
approved these changes
Jun 29, 2026
2795a97 to
809587d
Compare
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
Adds a new Key Management lifecycle agent that subscribes to key-pair lifecycle CloudEvents (
events.keypair.>) and reconciles key mappings with the Siglet service.agent/lifecycle/keymanagementagent(server entrypoint, launcher, handler, event types).sigletAPI client for managing key mappings (create/update/get/delete) against the Siglet management API, authenticated via token exchange.HttpClientServiceAssemblyinto the launcher so the HTTP client resolves from the service registry (consistent with the orchestration agents).Makefileplus a dedicatedDockerfile.keymanagementagent.dockerfile.🤖 Generated with Claude Code