Skip to main content
Version: 0.14.0 (Latest)

๐Ÿ“ Invitation schemas

Invitation schemas validate invitation objects and the inputs accepted by the four public Invitation routes.

Inventoryโ€‹

ExportRequest locationContract
invitationSchemaN/AStrict reusable invitation object.
createInvitationSchemaBodyRequired JSON invitation creation body.
getInvitationSchemaPathRequired invitation ID.
deleteInvitationSchemaPathRequired invitation ID.
findInvitationsSchemaQueryOptional filters and pagination.

Detailsโ€‹

invitationSchemaโ€‹

Definition

Reusable strict invitation input shape, not a complete stored-entity schema. It has additionalProperties: false; only the fields below are accepted when it is spread by createInvitationSchema. createInvitation adds the configured pending status and base-entity fields such as id, createdAt, and updatedAt after validation; the read terminators later remove database _id. Used by route: none directly. Used by feature: none directly.

LocationFieldTypeRequiredConstraints
N/AemailstringNoemail format.
N/AfromIdentityIdstringNoInviter identity ID.
N/AorgIdstringNoOrganization ID.
N/ArolestringNoInvitation role.
View complete source
export const invitationSchema: SchemaDefinition = {
$schema: 'http://json-schema.org/draft-07/schema#',
additionalProperties: false,
properties: {
email: {format: 'email', type: 'string'},
fromIdentityId: {type: 'string'},
orgId: {type: 'string'},
role: {type: 'string'},
},
type: 'object',
};

createInvitationSchemaโ€‹

Definition

The required OpenAPI application/json body spreads invitationSchema, preserving additionalProperties: false, then requires email and fromIdentityId. The current body validator selects this schema directly and does not inspect the incoming HTTP Content-Type; it validates the parsed body and reports 400 Validation Error on a schema failure. Used by route: createInvitationRoute. Used by feature: createInvitationFeature.

LocationFieldTypeRequiredConstraints
BodyemailstringYesemail format.
BodyfromIdentityIdstringYesInviter identity ID.
BodyorgIdstringNoOrganization ID.
BodyrolestringNoInvitation role.
View complete source
export const createInvitationSchema = withSchema({
requestBody: {
content: {
'application/json': {
schema: {
...invitationSchema,
required: ['email', 'fromIdentityId'],
},
},
},
required: true,
},
});

getInvitationSchemaโ€‹

Definition

Validates the invitationId path parameter. Used by route: getInvitationByIdRoute. Used by feature: getInvitationFeature.

LocationFieldTypeRequiredConstraints
PathinvitationIdstringYesNo format or pattern is imposed.
View complete source
export const getInvitationSchema = withSchema({
parameters: [{...invitationIdPathParameter}],
});

deleteInvitationSchemaโ€‹

Definition

Validates the invitationId path parameter. Used by route: deleteInvitationRoute. Used by feature: deleteInvitationFeature.

LocationFieldTypeRequiredConstraints
PathinvitationIdstringYesNo format or pattern is imposed.
View complete source
export const deleteInvitationSchema = withSchema({
parameters: [{...invitationIdPathParameter}],
});

findInvitationsSchemaโ€‹

Definition

Validates optional invitation filters and spreads the shared pagination parameters. Used by route: findInvitationsRoute. Used by feature: findInvitationsFeature.

LocationFieldTypeRequiredConstraints
QueryemailstringNoemail format.
QueryfromIdentityIdstringNoInviter identity filter.
QueryorgIdstringNoOrganization filter.
QueryrolestringNoRole filter.
QuerypageintegerNoShared pagination, 1โ€“1000.
QuerylimitintegerNoShared pagination, 1โ€“50.

page and limit come from paginationQueryParametersSchema; the routeโ€™s pagination wrapper consumes them and the list terminator exposes pagination metadata.

View complete source
export const findInvitationsSchema = withSchema({
parameters: [
{
in: 'query',
name: 'email',
required: false,
schema: {
format: 'email',
type: 'string',
},
},
{
in: 'query',
name: 'fromIdentityId',
required: false,
schema: {
type: 'string',
},
},
{
in: 'query',
name: 'orgId',
required: false,
schema: {
type: 'string',
},
},
{
in: 'query',
name: 'role',
required: false,
schema: {
type: 'string',
},
},
...paginationQueryParametersSchema,
],
});