mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-11 11:28:51 +00:00
feat: M11b — ownership tracking, agent groups, interactive renewal approval
Ownership: owners/teams GUI pages, notification email resolution via resolveRecipient (owner_id → owner.email lookup). Agent groups: dynamic device grouping by OS/arch/IP CIDR/version with manual include/exclude membership, migration 000004, full CRUD stack (domain → repo → service → handler → frontend). Interactive approval: AwaitingApproval job state, approve/reject API endpoints with reason tracking. Tests: 12 agent group handler tests, 8 approve/reject job handler tests, integration tests updated for 13-param RegisterHandlers. Docs updated across architecture, concepts, and seed data. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,26 @@ type CertificateProfileRepository interface {
|
||||
Delete(ctx context.Context, id string) error
|
||||
}
|
||||
|
||||
// AgentGroupRepository defines operations for managing agent groups.
|
||||
type AgentGroupRepository interface {
|
||||
// List returns all agent groups.
|
||||
List(ctx context.Context) ([]*domain.AgentGroup, error)
|
||||
// Get retrieves an agent group by ID.
|
||||
Get(ctx context.Context, id string) (*domain.AgentGroup, error)
|
||||
// Create stores a new agent group.
|
||||
Create(ctx context.Context, group *domain.AgentGroup) error
|
||||
// Update modifies an existing agent group.
|
||||
Update(ctx context.Context, group *domain.AgentGroup) error
|
||||
// Delete removes an agent group.
|
||||
Delete(ctx context.Context, id string) error
|
||||
// ListMembers returns agents in a group (both dynamic matches and manual includes).
|
||||
ListMembers(ctx context.Context, groupID string) ([]*domain.Agent, error)
|
||||
// AddMember adds a manual membership.
|
||||
AddMember(ctx context.Context, groupID, agentID, membershipType string) error
|
||||
// RemoveMember removes a manual membership.
|
||||
RemoveMember(ctx context.Context, groupID, agentID string) error
|
||||
}
|
||||
|
||||
// OwnerRepository defines operations for managing certificate owners.
|
||||
type OwnerRepository interface {
|
||||
// List returns all owners.
|
||||
|
||||
Reference in New Issue
Block a user