mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-18 10:48:36 +00:00
PKI revamp: UI improvements
This commit is contained in:
@@ -10,7 +10,7 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.string("projectId").notNullable();
|
||||
t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE");
|
||||
|
||||
t.string("name", 64).notNullable();
|
||||
t.string("slug").notNullable();
|
||||
t.string("description");
|
||||
|
||||
t.jsonb("attributes");
|
||||
@@ -22,13 +22,15 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.jsonb("keyAlgorithm");
|
||||
|
||||
t.timestamps(true, true, true);
|
||||
|
||||
t.unique(["slug", "projectId"]);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.CertificateTemplateV2);
|
||||
}
|
||||
|
||||
if (!(await knex.schema.hasTable(TableName.EstEnrollmentConfig))) {
|
||||
await knex.schema.createTable(TableName.EstEnrollmentConfig, (t) => {
|
||||
if (!(await knex.schema.hasTable(TableName.PkiEstEnrollmentConfig))) {
|
||||
await knex.schema.createTable(TableName.PkiEstEnrollmentConfig, (t) => {
|
||||
t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid());
|
||||
|
||||
t.boolean("disableBootstrapCaValidation").defaultTo(false);
|
||||
@@ -38,11 +40,11 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.timestamps(true, true, true);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.EstEnrollmentConfig);
|
||||
await createOnUpdateTrigger(knex, TableName.PkiEstEnrollmentConfig);
|
||||
}
|
||||
|
||||
if (!(await knex.schema.hasTable(TableName.ApiEnrollmentConfig))) {
|
||||
await knex.schema.createTable(TableName.ApiEnrollmentConfig, (t) => {
|
||||
if (!(await knex.schema.hasTable(TableName.PkiApiEnrollmentConfig))) {
|
||||
await knex.schema.createTable(TableName.PkiApiEnrollmentConfig, (t) => {
|
||||
t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid());
|
||||
|
||||
t.boolean("autoRenew").defaultTo(false);
|
||||
@@ -51,7 +53,7 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.timestamps(true, true, true);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.ApiEnrollmentConfig);
|
||||
await createOnUpdateTrigger(knex, TableName.PkiApiEnrollmentConfig);
|
||||
}
|
||||
|
||||
if (!(await knex.schema.hasTable(TableName.CertificateProfile))) {
|
||||
@@ -61,25 +63,24 @@ export async function up(knex: Knex): Promise<void> {
|
||||
t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE");
|
||||
|
||||
t.uuid("caId").notNullable();
|
||||
t.foreign("caId").references("id").inTable(TableName.CertificateAuthority).onDelete("CASCADE");
|
||||
t.foreign("caId").references("id").inTable(TableName.CertificateAuthority);
|
||||
|
||||
t.uuid("certificateTemplateId").notNullable();
|
||||
t.foreign("certificateTemplateId").references("id").inTable(TableName.CertificateTemplateV2).onDelete("CASCADE");
|
||||
t.foreign("certificateTemplateId").references("id").inTable(TableName.CertificateTemplateV2);
|
||||
|
||||
t.string("name", 64).notNullable();
|
||||
t.string("slug").notNullable();
|
||||
t.string("description");
|
||||
t.string("enrollmentType").notNullable().checkIn(["api", "est"]);
|
||||
|
||||
t.uuid("estConfigId");
|
||||
t.foreign("estConfigId").references("id").inTable(TableName.EstEnrollmentConfig).onDelete("SET NULL");
|
||||
t.foreign("estConfigId").references("id").inTable(TableName.PkiEstEnrollmentConfig).onDelete("SET NULL");
|
||||
|
||||
t.uuid("apiConfigId");
|
||||
t.foreign("apiConfigId").references("id").inTable(TableName.ApiEnrollmentConfig).onDelete("SET NULL");
|
||||
t.foreign("apiConfigId").references("id").inTable(TableName.PkiApiEnrollmentConfig).onDelete("SET NULL");
|
||||
|
||||
t.timestamps(true, true, true);
|
||||
|
||||
t.unique(["slug", "projectId"], { indexName: "certificate_profiles_slug_project_id_unique" });
|
||||
t.unique(["slug", "projectId"]);
|
||||
});
|
||||
|
||||
await createOnUpdateTrigger(knex, TableName.CertificateProfile);
|
||||
@@ -89,7 +90,7 @@ export async function up(knex: Knex): Promise<void> {
|
||||
await knex.schema.alterTable(TableName.Certificate, (t) => {
|
||||
t.uuid("profileId");
|
||||
t.foreign("profileId").references("id").inTable(TableName.CertificateProfile).onDelete("SET NULL");
|
||||
t.index("profileId", "idx_certificates_profile_id");
|
||||
t.index("profileId");
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -98,7 +99,7 @@ export async function down(knex: Knex): Promise<void> {
|
||||
if (await knex.schema.hasColumn(TableName.Certificate, "profileId")) {
|
||||
await knex.schema.alterTable(TableName.Certificate, (t) => {
|
||||
t.dropForeign(["profileId"]);
|
||||
t.dropIndex("profileId", "idx_certificates_profile_id");
|
||||
t.dropIndex("profileId");
|
||||
t.dropColumn("profileId");
|
||||
});
|
||||
}
|
||||
@@ -106,11 +107,11 @@ export async function down(knex: Knex): Promise<void> {
|
||||
await knex.schema.dropTableIfExists(TableName.CertificateProfile);
|
||||
await dropOnUpdateTrigger(knex, TableName.CertificateProfile);
|
||||
|
||||
await knex.schema.dropTableIfExists(TableName.ApiEnrollmentConfig);
|
||||
await dropOnUpdateTrigger(knex, TableName.ApiEnrollmentConfig);
|
||||
await knex.schema.dropTableIfExists(TableName.PkiApiEnrollmentConfig);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiApiEnrollmentConfig);
|
||||
|
||||
await knex.schema.dropTableIfExists(TableName.EstEnrollmentConfig);
|
||||
await dropOnUpdateTrigger(knex, TableName.EstEnrollmentConfig);
|
||||
await knex.schema.dropTableIfExists(TableName.PkiEstEnrollmentConfig);
|
||||
await dropOnUpdateTrigger(knex, TableName.PkiEstEnrollmentConfig);
|
||||
|
||||
await knex.schema.dropTableIfExists(TableName.CertificateTemplateV2);
|
||||
await dropOnUpdateTrigger(knex, TableName.CertificateTemplateV2);
|
||||
|
||||
@@ -12,7 +12,6 @@ export const CertificateProfilesSchema = z.object({
|
||||
projectId: z.string(),
|
||||
caId: z.string().uuid(),
|
||||
certificateTemplateId: z.string().uuid(),
|
||||
name: z.string(),
|
||||
slug: z.string(),
|
||||
description: z.string().nullable().optional(),
|
||||
enrollmentType: z.string(),
|
||||
|
||||
@@ -10,7 +10,7 @@ import { TImmutableDBKeys } from "./models";
|
||||
export const CertificateTemplatesV2Schema = z.object({
|
||||
id: z.string().uuid(),
|
||||
projectId: z.string(),
|
||||
name: z.string(),
|
||||
slug: z.string(),
|
||||
description: z.string().nullable().optional(),
|
||||
attributes: z.unknown().nullable().optional(),
|
||||
keyUsages: z.unknown().nullable().optional(),
|
||||
|
||||
@@ -3,7 +3,6 @@ export * from "./access-approval-policies-approvers";
|
||||
export * from "./access-approval-policies-bypassers";
|
||||
export * from "./access-approval-requests";
|
||||
export * from "./access-approval-requests-reviewers";
|
||||
export * from "./api-enrollment-configs";
|
||||
export * from "./api-keys";
|
||||
export * from "./app-connections";
|
||||
export * from "./audit-log-streams";
|
||||
@@ -24,7 +23,6 @@ export * from "./certificate-templates-v2";
|
||||
export * from "./certificates";
|
||||
export * from "./dynamic-secret-leases";
|
||||
export * from "./dynamic-secrets";
|
||||
export * from "./est-enrollment-configs";
|
||||
export * from "./external-certificate-authorities";
|
||||
export * from "./external-group-org-role-mappings";
|
||||
export * from "./external-kms";
|
||||
@@ -92,8 +90,10 @@ export * from "./pam-folders";
|
||||
export * from "./pam-resources";
|
||||
export * from "./pam-sessions";
|
||||
export * from "./pki-alerts";
|
||||
export * from "./pki-api-enrollment-configs";
|
||||
export * from "./pki-collection-items";
|
||||
export * from "./pki-collections";
|
||||
export * from "./pki-est-enrollment-configs";
|
||||
export * from "./pki-subscribers";
|
||||
export * from "./pki-syncs";
|
||||
export * from "./project-bots";
|
||||
|
||||
@@ -25,8 +25,8 @@ export enum TableName {
|
||||
CertificateTemplate = "certificate_templates",
|
||||
CertificateTemplateV2 = "certificate_templates_v2",
|
||||
CertificateProfile = "certificate_profiles",
|
||||
EstEnrollmentConfig = "est_enrollment_configs",
|
||||
ApiEnrollmentConfig = "api_enrollment_configs",
|
||||
PkiEstEnrollmentConfig = "pki_est_enrollment_configs",
|
||||
PkiApiEnrollmentConfig = "pki_api_enrollment_configs",
|
||||
PkiSubscriber = "pki_subscribers",
|
||||
PkiAlert = "pki_alerts",
|
||||
PkiCollection = "pki_collections",
|
||||
|
||||
+6
-4
@@ -7,7 +7,7 @@ import { z } from "zod";
|
||||
|
||||
import { TImmutableDBKeys } from "./models";
|
||||
|
||||
export const ApiEnrollmentConfigsSchema = z.object({
|
||||
export const PkiApiEnrollmentConfigsSchema = z.object({
|
||||
id: z.string().uuid(),
|
||||
autoRenew: z.boolean().default(false).nullable().optional(),
|
||||
autoRenewDays: z.number().nullable().optional(),
|
||||
@@ -15,6 +15,8 @@ export const ApiEnrollmentConfigsSchema = z.object({
|
||||
updatedAt: z.date()
|
||||
});
|
||||
|
||||
export type TApiEnrollmentConfigs = z.infer<typeof ApiEnrollmentConfigsSchema>;
|
||||
export type TApiEnrollmentConfigsInsert = Omit<z.input<typeof ApiEnrollmentConfigsSchema>, TImmutableDBKeys>;
|
||||
export type TApiEnrollmentConfigsUpdate = Partial<Omit<z.input<typeof ApiEnrollmentConfigsSchema>, TImmutableDBKeys>>;
|
||||
export type TPkiApiEnrollmentConfigs = z.infer<typeof PkiApiEnrollmentConfigsSchema>;
|
||||
export type TPkiApiEnrollmentConfigsInsert = Omit<z.input<typeof PkiApiEnrollmentConfigsSchema>, TImmutableDBKeys>;
|
||||
export type TPkiApiEnrollmentConfigsUpdate = Partial<
|
||||
Omit<z.input<typeof PkiApiEnrollmentConfigsSchema>, TImmutableDBKeys>
|
||||
>;
|
||||
+6
-4
@@ -9,7 +9,7 @@ import { zodBuffer } from "@app/lib/zod";
|
||||
|
||||
import { TImmutableDBKeys } from "./models";
|
||||
|
||||
export const EstEnrollmentConfigsSchema = z.object({
|
||||
export const PkiEstEnrollmentConfigsSchema = z.object({
|
||||
id: z.string().uuid(),
|
||||
disableBootstrapCaValidation: z.boolean().default(false).nullable().optional(),
|
||||
hashedPassphrase: z.string(),
|
||||
@@ -18,6 +18,8 @@ export const EstEnrollmentConfigsSchema = z.object({
|
||||
updatedAt: z.date()
|
||||
});
|
||||
|
||||
export type TEstEnrollmentConfigs = z.infer<typeof EstEnrollmentConfigsSchema>;
|
||||
export type TEstEnrollmentConfigsInsert = Omit<z.input<typeof EstEnrollmentConfigsSchema>, TImmutableDBKeys>;
|
||||
export type TEstEnrollmentConfigsUpdate = Partial<Omit<z.input<typeof EstEnrollmentConfigsSchema>, TImmutableDBKeys>>;
|
||||
export type TPkiEstEnrollmentConfigs = z.infer<typeof PkiEstEnrollmentConfigsSchema>;
|
||||
export type TPkiEstEnrollmentConfigsInsert = Omit<z.input<typeof PkiEstEnrollmentConfigsSchema>, TImmutableDBKeys>;
|
||||
export type TPkiEstEnrollmentConfigsUpdate = Partial<
|
||||
Omit<z.input<typeof PkiEstEnrollmentConfigsSchema>, TImmutableDBKeys>
|
||||
>;
|
||||
Reference in New Issue
Block a user