Skip to content

Commit

Permalink
feat: updated ui replication text and approval replication flag
Browse files Browse the repository at this point in the history
  • Loading branch information
akhilmhdh committed May 2, 2024
1 parent 64c2083 commit 2edaeda
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 25 deletions.
12 changes: 12 additions & 0 deletions backend/src/db/migrations/20240430024805_secret-replication.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ export async function up(knex: Knex): Promise<void> {
t.boolean("isReplicated");
});
}

if (await knex.schema.hasTable(TableName.SecretApprovalRequest)) {
await knex.schema.alterTable(TableName.SecretApprovalRequest, (t) => {
t.boolean("isReplicated");
});
}
}

export async function down(knex: Knex): Promise<void> {
Expand All @@ -52,4 +58,10 @@ export async function down(knex: Knex): Promise<void> {
t.dropColumns("isReplicated");
});
}

if (await knex.schema.hasTable(TableName.SecretApprovalRequest)) {
await knex.schema.alterTable(TableName.SecretApprovalRequest, (t) => {
t.dropColumn("isReplicated");
});
}
}
3 changes: 2 additions & 1 deletion backend/src/db/schemas/secret-approval-requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ export const SecretApprovalRequestsSchema = z.object({
statusChangeBy: z.string().uuid().nullable().optional(),
committerId: z.string().uuid(),
createdAt: z.date(),
updatedAt: z.date()
updatedAt: z.date(),
isReplicated: z.boolean().nullable().optional()
});

export type TSecretApprovalRequests = z.infer<typeof SecretApprovalRequestsSchema>;
Expand Down
30 changes: 14 additions & 16 deletions backend/src/ee/routes/v1/secret-approval-request-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,20 @@ export const registerSecretApprovalRequestRouter = async (server: FastifyZodProv
}),
response: {
200: z.object({
approvals: SecretApprovalRequestsSchema.merge(
z.object({
// secretPath: z.string(),
policy: z.object({
id: z.string(),
name: z.string(),
approvals: z.number(),
approvers: z.string().array(),
secretPath: z.string().optional().nullable()
}),
commits: z.object({ op: z.string(), secretId: z.string().nullable().optional() }).array(),
environment: z.string(),
reviewers: z.object({ member: z.string(), status: z.string() }).array(),
approvers: z.string().array()
})
).array()
approvals: SecretApprovalRequestsSchema.extend({
// secretPath: z.string(),
policy: z.object({
id: z.string(),
name: z.string(),
approvals: z.number(),
approvers: z.string().array(),
secretPath: z.string().optional().nullable()
}),
commits: z.object({ op: z.string(), secretId: z.string().nullable().optional() }).array(),
environment: z.string(),
reviewers: z.object({ member: z.string(), status: z.string() }).array(),
approvers: z.string().array()
}).array()
})
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,8 @@ export const secretReplicationServiceFactory = ({
policyId: policy.id,
status: "open",
hasMerged: false,
committerId: membershipId
committerId: membershipId,
isReplicated: true
},
tx
);
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/hooks/api/secretApprovalRequest/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export type TSecretApprovalSecChange = {

export type TSecretApprovalRequest<J extends unknown = EncryptedSecret> = {
id: string;
isReplication?: boolean;
isReplicated?: boolean;
slug: string;
createdAt: string;
committerId: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ export const SecretApprovalRequest = () => {
policy,
reviewers,
status,
isReplication
isReplicated: isReplication
} = secretApproval;
const isApprover = policy?.approvers?.indexOf(myMembershipId || "") !== -1;
const isReviewed =
Expand Down Expand Up @@ -229,7 +229,7 @@ export const SecretApprovalRequest = () => {
{membersGroupById?.[committerId]?.user?.firstName}{" "}
{membersGroupById?.[committerId]?.user?.lastName} (
{membersGroupById?.[committerId]?.user?.email})
{isReplication && "via replication"}
{isReplication && " via replication"}
{isApprover && !isReviewed && status === "open" && " - Review required"}
</span>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,9 @@ export const SecretApprovalRequestChanges = ({
<div className="flex flex-grow flex-col">
<div className="mb-1 text-lg">
{generateCommitText(secretApprovalRequestDetails.commits)}
{secretApprovalRequestDetails.isReplication && <span className="text-sm text-bunker-300"> (replication)</span>}
{secretApprovalRequestDetails.isReplicated && (
<span className="text-sm text-bunker-300"> (replication)</span>
)}
</div>
<div className="flex items-center text-sm text-bunker-300">
{committer?.user?.firstName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ export const CreateSecretImportForm = ({
defaultValue={false}
render={({ field }) => (
<Checkbox isChecked={field.value} onCheckedChange={field.onChange} id="isReplication">
The replication mode retrieves secrets when changes occur in the specified
environment and secret path.
Enable replication mode to synchronize changes across boards.
</Checkbox>
)}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ export const SecretImportItem = ({
</ProjectPermissionCan>
</div>
</div>
{isExpanded && !isDragging && (
{!isReplication && isExpanded && !isDragging && (
<td
colSpan={3}
className={`bg-bunker-800 ${isExpanded && "border-b-2 border-mineshaft-500"}`}
Expand Down

0 comments on commit 2edaeda

Please sign in to comment.