From f563eb7cb7be314c59e228379e8a0812ff41464c Mon Sep 17 00:00:00 2001 From: CybAtax <62847599+CybAtax@users.noreply.github.com> Date: Sun, 17 Nov 2024 20:46:08 +0100 Subject: [PATCH 1/6] wip: first draft cert request --- frontend/src/components/Home.vue | 1 + frontend/src/pages/cert-request.vue | 95 +++++++++++++++++++++++++++++ frontend/src/types/certificate.d.ts | 24 ++++++++ frontend/src/types/util.d.ts | 5 ++ frontend/tsconfig.json | 1 + frontend/typed-router.d.ts | 1 + 6 files changed, 127 insertions(+) create mode 100644 frontend/src/pages/cert-request.vue create mode 100644 frontend/src/types/certificate.d.ts create mode 100644 frontend/src/types/util.d.ts diff --git a/frontend/src/components/Home.vue b/frontend/src/components/Home.vue index 6af172d..0982a85 100644 --- a/frontend/src/components/Home.vue +++ b/frontend/src/components/Home.vue @@ -39,6 +39,7 @@ rounded="lg" title="Manage your certificates" variant="text" + to="/cert-request" /> diff --git a/frontend/src/pages/cert-request.vue b/frontend/src/pages/cert-request.vue new file mode 100644 index 0000000..1689c10 --- /dev/null +++ b/frontend/src/pages/cert-request.vue @@ -0,0 +1,95 @@ + + + diff --git a/frontend/src/types/certificate.d.ts b/frontend/src/types/certificate.d.ts new file mode 100644 index 0000000..1fbaf20 --- /dev/null +++ b/frontend/src/types/certificate.d.ts @@ -0,0 +1,24 @@ +export interface Subject { + commonName: string; + organization: string; + orgUnit: string; + country: string; + state: string; + city: string +} + +export interface Validity { + from: Date; + to: Date; +} + +export interface Extensions { + +} + +export interface Certificate { + issuer: Subject; + validity: Validity; + subject: Subject; + extensions: Extensions; +} diff --git a/frontend/src/types/util.d.ts b/frontend/src/types/util.d.ts new file mode 100644 index 0000000..eefe08e --- /dev/null +++ b/frontend/src/types/util.d.ts @@ -0,0 +1,5 @@ +export type Valid = { + [K in keyof T as `${K}Rules`]: ((val: string) => true | string)[] +} & { + valid: boolean; +} & T; diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 66b5e57..416e35a 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -1,5 +1,6 @@ { "files": [], + "include": ["./typed-router.d.ts"], "references": [ { "path": "./tsconfig.node.json" diff --git a/frontend/typed-router.d.ts b/frontend/typed-router.d.ts index 331ee51..8d7445f 100644 --- a/frontend/typed-router.d.ts +++ b/frontend/typed-router.d.ts @@ -19,5 +19,6 @@ declare module 'vue-router/auto-routes' { */ export interface RouteNamedMap { '/': RouteRecordInfo<'/', '/', Record, Record>, + '/cert-request': RouteRecordInfo<'/cert-request', '/cert-request', Record, Record>, } } -- 2.45.3 From 92b39998e86dcdd251950a9394930716e347bfd2 Mon Sep 17 00:00:00 2001 From: CybAtax <62847599+CybAtax@users.noreply.github.com> Date: Sun, 17 Nov 2024 20:59:47 +0100 Subject: [PATCH 2/6] feat: form for cert request --- frontend/src/pages/cert-request.vue | 131 ++++++++++++++++------------ 1 file changed, 73 insertions(+), 58 deletions(-) diff --git a/frontend/src/pages/cert-request.vue b/frontend/src/pages/cert-request.vue index 1689c10..3efd277 100644 --- a/frontend/src/pages/cert-request.vue +++ b/frontend/src/pages/cert-request.vue @@ -1,66 +1,77 @@ -- 2.45.3 From 9af14d26a752a5200a5f5f97c7ec80537b437276 Mon Sep 17 00:00:00 2001 From: CybAtax <62847599+CybAtax@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:11:35 +0100 Subject: [PATCH 3/6] fix: add missing fields --- frontend/src/pages/cert-request.vue | 128 +++++++++++++++++++--------- frontend/src/types/certificate.d.ts | 1 + frontend/src/types/util.d.ts | 4 +- 3 files changed, 92 insertions(+), 41 deletions(-) diff --git a/frontend/src/pages/cert-request.vue b/frontend/src/pages/cert-request.vue index 3efd277..78c2f04 100644 --- a/frontend/src/pages/cert-request.vue +++ b/frontend/src/pages/cert-request.vue @@ -7,17 +7,17 @@ @@ -25,8 +25,8 @@ @@ -35,53 +35,81 @@ + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/frontend/src/types/certificate.d.ts b/frontend/src/types/certificate.d.ts index 1fbaf20..5e576da 100644 --- a/frontend/src/types/certificate.d.ts +++ b/frontend/src/types/certificate.d.ts @@ -5,6 +5,7 @@ export interface Subject { country: string; state: string; city: string + altNames: string[]; } export interface Validity { diff --git a/frontend/src/types/util.d.ts b/frontend/src/types/util.d.ts index eefe08e..8599ffa 100644 --- a/frontend/src/types/util.d.ts +++ b/frontend/src/types/util.d.ts @@ -1,5 +1,3 @@ -export type Valid = { +export type Validated = { [K in keyof T as `${K}Rules`]: ((val: string) => true | string)[] -} & { - valid: boolean; } & T; -- 2.45.3 From 5ca3b5e9c60596c9dd04439d1ce110e5bfaec45a Mon Sep 17 00:00:00 2001 From: CybAtax <62847599+CybAtax@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:34:27 +0100 Subject: [PATCH 4/6] add app bar --- frontend/src/App.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 6ceb9da..2bda13a 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,5 +1,8 @@