feat(managed-secrets): add centrally managed secrets with GITOPS_ prefix pushed to multiple targets
Introduce managed secrets owned by GitOps that can be defined once and
pushed to any combination of projects/groups across connections. Values
are stored in OS keychain, secrets appear on targets as GITOPS_{key}.
This commit is contained in:
41
ts_interfaces/data/managedsecret.ts
Normal file
41
ts_interfaces/data/managedsecret.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
export interface IManagedSecretTarget {
|
||||
connectionId: string;
|
||||
scope: 'project' | 'group';
|
||||
scopeId: string;
|
||||
scopeName: string;
|
||||
}
|
||||
|
||||
export type TPushStatus = 'pending' | 'success' | 'error';
|
||||
|
||||
export interface IManagedSecretTargetStatus {
|
||||
connectionId: string;
|
||||
scope: 'project' | 'group';
|
||||
scopeId: string;
|
||||
scopeName: string;
|
||||
status: TPushStatus;
|
||||
error?: string;
|
||||
lastPushedAt?: number;
|
||||
}
|
||||
|
||||
export interface IManagedSecret {
|
||||
id: string;
|
||||
key: string;
|
||||
description?: string;
|
||||
targets: IManagedSecretTarget[];
|
||||
targetStatuses: IManagedSecretTargetStatus[];
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
lastPushedAt?: number;
|
||||
}
|
||||
|
||||
export interface IManagedSecretStored {
|
||||
id: string;
|
||||
key: string;
|
||||
description?: string;
|
||||
value: string;
|
||||
targets: IManagedSecretTarget[];
|
||||
targetStatuses: IManagedSecretTargetStatus[];
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
lastPushedAt?: number;
|
||||
}
|
||||
Reference in New Issue
Block a user