Skip to content

feat: add key management lifecycle agent#145

Merged
paullatzelsperger merged 7 commits into
mainfrom
feat/keypair-mgmt-agent
Jun 30, 2026
Merged

feat: add key management lifecycle agent#145
paullatzelsperger merged 7 commits into
mainfrom
feat/keypair-mgmt-agent

Conversation

@paullatzelsperger

@paullatzelsperger paullatzelsperger commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

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.

  • New agent under agent/lifecycle/keymanagementagent (server entrypoint, launcher, handler, event types).
  • siglet API client for managing key mappings (create/update/get/delete) against the Siglet management API, authenticated via token exchange.
  • Wires the HttpClientServiceAssembly into the launcher so the HTTP client resolves from the service registry (consistent with the orchestration agents).
  • Build/test/docker/kind targets added to the top-level Makefile plus a dedicated Dockerfile.keymanagementagent.dockerfile.

🤖 Generated with Claude Code

paullatzelsperger and others added 6 commits June 29, 2026 18:36
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>
@paullatzelsperger paullatzelsperger force-pushed the feat/keypair-mgmt-agent branch from 2795a97 to 809587d Compare June 30, 2026 05:11
@paullatzelsperger paullatzelsperger merged commit 1a50de8 into main Jun 30, 2026
3 checks passed
@paullatzelsperger paullatzelsperger deleted the feat/keypair-mgmt-agent branch June 30, 2026 06:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants