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}.
42 lines
908 B
TypeScript
42 lines
908 B
TypeScript
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;
|
|
}
|