summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/i/2fa
diff options
context:
space:
mode:
authorMarie <Marie@kaifa.ch>2023-12-23 02:09:23 +0100
committerMarie <Marie@kaifa.ch>2023-12-23 02:09:23 +0100
commit5db583a3eb61d50de14d875ebf7ecef20490e313 (patch)
tree783dd43d2ac660c32e745a4485d499e9ddc43324 /packages/backend/src/server/api/endpoints/i/2fa
parentadd: Custom MOTDs (diff)
parentUpdate CHANGELOG.md (diff)
downloadsharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.tar.gz
sharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.tar.bz2
sharkey-5db583a3eb61d50de14d875ebf7ecef20490e313.zip
merge: upstream
Diffstat (limited to 'packages/backend/src/server/api/endpoints/i/2fa')
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/key-done.ts10
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/register-key.ts134
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/register.ts13
3 files changed, 157 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
index 6033ce5dd4..4161553d28 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/key-done.ts
@@ -33,6 +33,16 @@ export const meta = {
id: '798d6847-b1ed-4f9c-b1f9-163c42655995',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ id: { type: 'string' },
+ name: { type: 'string' },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
index a6d05507ed..325d54d196 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
@@ -37,6 +37,140 @@ export const meta = {
id: 'bf32b864-449b-47b8-974e-f9a5468546f1',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ rp: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ nullable: true,
+ },
+ },
+ },
+ user: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ },
+ name: {
+ type: 'string',
+ },
+ displayName: {
+ type: 'string',
+ },
+ },
+ },
+ challenge: {
+ type: 'string',
+ },
+ pubKeyCredParams: {
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ type: {
+ type: 'string',
+ },
+ alg: {
+ type: 'number',
+ },
+ },
+ },
+ },
+ timeout: {
+ type: 'number',
+ nullable: true,
+ },
+ excludeCredentials: {
+ type: 'array',
+ nullable: true,
+ items: {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ },
+ type: {
+ type: 'string',
+ },
+ transports: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: [
+ "ble",
+ "cable",
+ "hybrid",
+ "internal",
+ "nfc",
+ "smart-card",
+ "usb",
+ ],
+ },
+ },
+ },
+ },
+ },
+ authenticatorSelection: {
+ type: 'object',
+ nullable: true,
+ properties: {
+ authenticatorAttachment: {
+ type: 'string',
+ enum: [
+ "cross-platform",
+ "platform",
+ ],
+ },
+ requireResidentKey: {
+ type: 'boolean',
+ },
+ userVerification: {
+ type: 'string',
+ enum: [
+ "discouraged",
+ "preferred",
+ "required",
+ ],
+ },
+ },
+ },
+ attestation: {
+ type: 'string',
+ nullable: true,
+ enum: [
+ "direct",
+ "enterprise",
+ "indirect",
+ "none",
+ ],
+ },
+ extensions: {
+ type: 'object',
+ nullable: true,
+ properties: {
+ appid: {
+ type: 'string',
+ nullable: true,
+ },
+ credProps: {
+ type: 'boolean',
+ nullable: true,
+ },
+ hmacCreateSecret: {
+ type: 'boolean',
+ nullable: true,
+ },
+ },
+ },
+ },
+ },
} as const;
export const paramDef = {
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register.ts b/packages/backend/src/server/api/endpoints/i/2fa/register.ts
index 9b3ae74f86..15e50c49f3 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/register.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/register.ts
@@ -27,6 +27,19 @@ export const meta = {
id: '78d6c839-20c9-4c66-b90a-fc0542168b48',
},
},
+
+ res: {
+ type: 'object',
+ nullable: false,
+ optional: false,
+ properties: {
+ qr: { type: 'string' },
+ url: { type: 'string' },
+ secret: { type: 'string' },
+ label: { type: 'string' },
+ issuer: { type: 'string' },
+ },
+ },
} as const;
export const paramDef = {