Tweak schemas for entryway createAccount (#1797)

* tweak scheams

* require email & password
This commit is contained in:
Daniel Holmgren 2023-11-01 14:56:57 -05:00 committed by GitHub
parent a161f815de
commit cf848e87ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 87 additions and 16 deletions

View File

@ -9,7 +9,7 @@
"encoding": "application/json", "encoding": "application/json",
"schema": { "schema": {
"type": "object", "type": "object",
"required": ["handle", "email", "password"], "required": ["handle"],
"properties": { "properties": {
"email": { "type": "string" }, "email": { "type": "string" },
"handle": { "type": "string", "format": "handle" }, "handle": { "type": "string", "format": "handle" },

View File

@ -5,6 +5,18 @@
"main": { "main": {
"type": "procedure", "type": "procedure",
"description": "Reserve a repo signing key for account creation.", "description": "Reserve a repo signing key for account creation.",
"input": {
"encoding": "application/json",
"schema": {
"type": "object",
"properties": {
"did": {
"type": "string",
"description": "The did to reserve a new did:key for"
}
}
}
},
"output": { "output": {
"encoding": "application/json", "encoding": "application/json",
"schema": { "schema": {

View File

@ -2489,7 +2489,7 @@ export const schemaDict = {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {
type: 'object', type: 'object',
required: ['handle', 'email', 'password'], required: ['handle'],
properties: { properties: {
email: { email: {
type: 'string', type: 'string',
@ -3170,6 +3170,18 @@ export const schemaDict = {
main: { main: {
type: 'procedure', type: 'procedure',
description: 'Reserve a repo signing key for account creation.', description: 'Reserve a repo signing key for account creation.',
input: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
did: {
type: 'string',
description: 'The did to reserve a new did:key for',
},
},
},
},
output: { output: {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {

View File

@ -10,11 +10,11 @@ import { CID } from 'multiformats/cid'
export interface QueryParams {} export interface QueryParams {}
export interface InputSchema { export interface InputSchema {
email: string email?: string
handle: string handle: string
did?: string did?: string
inviteCode?: string inviteCode?: string
password: string password?: string
recoveryKey?: string recoveryKey?: string
plcOp?: {} plcOp?: {}
[k: string]: unknown [k: string]: unknown

View File

@ -9,7 +9,11 @@ import { CID } from 'multiformats/cid'
export interface QueryParams {} export interface QueryParams {}
export type InputSchema = undefined export interface InputSchema {
/** The did to reserve a new did:key for */
did?: string
[k: string]: unknown
}
export interface OutputSchema { export interface OutputSchema {
/** Public signing key in the form of a did:key. */ /** Public signing key in the form of a did:key. */
@ -20,6 +24,7 @@ export interface OutputSchema {
export interface CallOptions { export interface CallOptions {
headers?: Headers headers?: Headers
qp?: QueryParams qp?: QueryParams
encoding: 'application/json'
} }
export interface Response { export interface Response {

View File

@ -2489,7 +2489,7 @@ export const schemaDict = {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {
type: 'object', type: 'object',
required: ['handle', 'email', 'password'], required: ['handle'],
properties: { properties: {
email: { email: {
type: 'string', type: 'string',
@ -3170,6 +3170,18 @@ export const schemaDict = {
main: { main: {
type: 'procedure', type: 'procedure',
description: 'Reserve a repo signing key for account creation.', description: 'Reserve a repo signing key for account creation.',
input: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
did: {
type: 'string',
description: 'The did to reserve a new did:key for',
},
},
},
},
output: { output: {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {

View File

@ -11,11 +11,11 @@ import { HandlerAuth } from '@atproto/xrpc-server'
export interface QueryParams {} export interface QueryParams {}
export interface InputSchema { export interface InputSchema {
email: string email?: string
handle: string handle: string
did?: string did?: string
inviteCode?: string inviteCode?: string
password: string password?: string
recoveryKey?: string recoveryKey?: string
plcOp?: {} plcOp?: {}
[k: string]: unknown [k: string]: unknown

View File

@ -10,7 +10,11 @@ import { HandlerAuth } from '@atproto/xrpc-server'
export interface QueryParams {} export interface QueryParams {}
export type InputSchema = undefined export interface InputSchema {
/** The did to reserve a new did:key for */
did?: string
[k: string]: unknown
}
export interface OutputSchema { export interface OutputSchema {
/** Public signing key in the form of a did:key. */ /** Public signing key in the form of a did:key. */
@ -18,7 +22,10 @@ export interface OutputSchema {
[k: string]: unknown [k: string]: unknown
} }
export type HandlerInput = undefined export interface HandlerInput {
encoding: 'application/json'
body: InputSchema
}
export interface HandlerSuccess { export interface HandlerSuccess {
encoding: 'application/json' encoding: 'application/json'

View File

@ -21,7 +21,11 @@ export default function (server: Server, ctx: AppContext) {
}, },
handler: async ({ input, req }) => { handler: async ({ input, req }) => {
const { email, password, inviteCode } = input.body const { email, password, inviteCode } = input.body
if (input.body.plcOp) { if (!email) {
throw new InvalidRequestError('Missing input: "email"')
} else if (!password) {
throw new InvalidRequestError('Missing input: "password"')
} else if (input.body.plcOp) {
throw new InvalidRequestError('Unsupported input: "plcOp"') throw new InvalidRequestError('Unsupported input: "plcOp"')
} }

View File

@ -2489,7 +2489,7 @@ export const schemaDict = {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {
type: 'object', type: 'object',
required: ['handle', 'email', 'password'], required: ['handle'],
properties: { properties: {
email: { email: {
type: 'string', type: 'string',
@ -3170,6 +3170,18 @@ export const schemaDict = {
main: { main: {
type: 'procedure', type: 'procedure',
description: 'Reserve a repo signing key for account creation.', description: 'Reserve a repo signing key for account creation.',
input: {
encoding: 'application/json',
schema: {
type: 'object',
properties: {
did: {
type: 'string',
description: 'The did to reserve a new did:key for',
},
},
},
},
output: { output: {
encoding: 'application/json', encoding: 'application/json',
schema: { schema: {

View File

@ -11,11 +11,11 @@ import { HandlerAuth } from '@atproto/xrpc-server'
export interface QueryParams {} export interface QueryParams {}
export interface InputSchema { export interface InputSchema {
email: string email?: string
handle: string handle: string
did?: string did?: string
inviteCode?: string inviteCode?: string
password: string password?: string
recoveryKey?: string recoveryKey?: string
plcOp?: {} plcOp?: {}
[k: string]: unknown [k: string]: unknown

View File

@ -10,7 +10,11 @@ import { HandlerAuth } from '@atproto/xrpc-server'
export interface QueryParams {} export interface QueryParams {}
export type InputSchema = undefined export interface InputSchema {
/** The did to reserve a new did:key for */
did?: string
[k: string]: unknown
}
export interface OutputSchema { export interface OutputSchema {
/** Public signing key in the form of a did:key. */ /** Public signing key in the form of a did:key. */
@ -18,7 +22,10 @@ export interface OutputSchema {
[k: string]: unknown [k: string]: unknown
} }
export type HandlerInput = undefined export interface HandlerInput {
encoding: 'application/json'
body: InputSchema
}
export interface HandlerSuccess { export interface HandlerSuccess {
encoding: 'application/json' encoding: 'application/json'