@supertokens-plugins/tenants-nodejs
Classes
DefaultPluginEmailService
Defined in: supertokens-plugins/packages/tenants-nodejs/src/defaultEmailService.ts:7
Default email service that provides template generation but throws on send
Implements
- EmailDeliveryInterface<PluginEmailDeliveryInput>
Constructors
Constructor
new DefaultPluginEmailService(): DefaultPluginEmailService;
Returns
Methods
generateEmailContent()
generateEmailContent(input: PluginEmailDeliveryInput): {
html: string;
subject: string;
text: string;
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/defaultEmailService.ts:9
Public method to generate email content - can be used in overrides
Parameters
Returns
{
html: string;
subject: string;
text: string;
}
sendEmail()
sendEmail(input: PluginEmailDeliveryInput & {
userContext: UserContext;
}): Promise<never>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/defaultEmailService.ts:76
eslint-disable-next-line @typescript-eslint/no-unused-vars
Parameters
Returns
Promise<never>
Implementation of
EmailDeliveryInterface.sendEmail
PluginSMTPService
Defined in: supertokens-plugins/packages/tenants-nodejs/src/emailServices.ts:7
Implements
- EmailDeliveryInterface<PluginEmailDeliveryInput>
Constructors
Constructor
new PluginSMTPService(config: {
smtpSettings: {
authUsername?: string;
from: {
email: string;
name: string;
};
host: string;
password: string;
port: number;
secure?: boolean;
};
}): PluginSMTPService;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/emailServices.ts:11
Parameters
Returns
Methods
sendEmail()
sendEmail(input: PluginEmailDeliveryInput & {
userContext: UserContext;
}): Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/emailServices.ts:33
Parameters
Returns
Promise<void>
Implementation of
EmailDeliveryInterface.sendEmail
Type Aliases
AssociateAllLoginMethodsOfUserWithTenant()
type AssociateAllLoginMethodsOfUserWithTenant = (tenantId: string, userId: string, loginMethodFilter?: (loginMethod: LoginMethod) => boolean) => Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:77
Parameters
Returns
Promise<void>
ErrorResponse
type ErrorResponse = {
message: string;
status: "ERROR";
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:16
Properties
GetAppUrl()
type GetAppUrl = (appInfo: NormalisedAppinfo, request: BaseRequest | undefined, userContext: UserContext) => string;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:85
Parameters
Returns
string
GetUserIdsInTenantWithRole()
type GetUserIdsInTenantWithRole = (tenantId: string, role: string) => Promise<string[]>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:83
Parameters
Returns
Promise<string[]>
MetadataType
type MetadataType = ReturnType<typeof BaseFormSection>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:21
OverrideableTenantFunctionImplementation
type OverrideableTenantFunctionImplementation = {
acceptInvitation: (code: string, tenantId: string, session: SessionContainerInterface, metadata: MetadataType) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
acceptTenantCreationRequest: (requestId: string, session: SessionContainerInterface, metadata: TenantCreationRequestMetadataType) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
addInvitation: (email: string, tenantId: string, role: string, metadata: MetadataType) => Promise<
| {
code: string;
status: "OK";
}
| ErrorResponse>;
addTenantCreationRequest: (session: SessionContainerInterface, tenantDetails: {
firstFactors?: string[] | null;
name: string;
}, metadata: TenantCreationRequestMetadataType, appUrl: string, userContext: UserContext, sendEmail: SendPluginEmail) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
assignRoleToUserInTenant: (tenantId: string, userId: string, role: string) => Promise<void>;
associateAllLoginMethodsOfUserWithTenant: AssociateAllLoginMethodsOfUserWithTenant;
canApproveJoinRequest: (targetUser: User, tenantId: string, session: SessionContainerInterface) => Promise<boolean>;
canApproveTenantCreationRequest: (targetUser: User, creationRequest: BaseFormSection, session: SessionContainerInterface) => Promise<boolean>;
canCreateInvitation: (email: string, role: string, tenantId: string, session: SessionContainerInterface) => Promise<boolean>;
canRemoveTargetUserFromTenant: (targetUser: User, tenantId: string, session: SessionContainerInterface) => Promise<boolean>;
createTenantAndAssignAdmin: (tenantDetails: {
firstFactors?: string[] | null;
name: string;
}, userId: string) => Promise<
| {
createdNew: boolean;
status: "OK";
}
| ErrorResponse>;
doesTenantCreationRequireApproval: (session: SessionContainerInterface) => Promise<boolean>;
doesUserHaveTenantCreationRequest: (userId: string, metadata: TenantCreationRequestMetadataType) => Promise<boolean>;
getAppUrl: GetAppUrl;
getInvitations: (tenantId: string, metadata: MetadataType) => Promise<
| {
invitees: BaseFormSection[];
status: "OK";
}
| ErrorResponse>;
getPreferredTenantId: (tenantIds: string[], inputTenantId: string) => string | undefined;
getTenantCreationRequests: (metadata: TenantCreationRequestMetadataType, userContext: UserContext) => Promise<
| {
status: "OK";
} & {
requests: BaseFormSection[];
}
| ErrorResponse>;
getTenants: (session: SessionContainerInterface | string) => Promise<
| {
status: "OK";
} & BaseFormSection
| ErrorResponse>;
getTenantUsers: (tenantId: string) => Promise<
| {
status: "OK";
users: User & {
roles?: string[];
}[];
}
| ErrorResponse>;
isAllowedToCreateTenant: (session: SessionContainerInterface) => Promise<boolean>;
isAllowedToJoinTenant: (targetUser: User, session: SessionContainerInterface) => Promise<boolean>;
rejectRequestToJoinTenant: (tenantId: string, userId: string) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
rejectTenantCreationRequest: (requestId: string, session: SessionContainerInterface, metadata: TenantCreationRequestMetadataType) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
removeInvitation: (email: string, tenantId: string, metadata: MetadataType) => Promise<
| {
status: "OK";
}
| ErrorResponse>;
sendTenantCreationRequestEmail: (tenantId: string, creatorEmail: string, appUrl: string, userContext: UserContext, sendEmail: SendPluginEmail) => Promise<void>;
shouldHaveTenantAccess: (userId: string, tenantId: string, userContext: UserContext) => Promise<{
canAccess: boolean;
reason?: string;
}>;
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:91
Properties
PluginEmailDeliveryInput
type PluginEmailDeliveryInput =
| {
appUrl: string;
customData?: Record<string, any>;
email: string;
senderEmail: string;
tenantId: string;
type: "TENANT_REQUEST_APPROVAL";
}
| {
appUrl: string;
creatorEmail: string;
customData?: Record<string, any>;
email: string;
tenantId: string;
type: "TENANT_CREATE_APPROVAL";
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:25
Define custom email input type for the plugin
SendPluginEmail()
type SendPluginEmail = (input: PluginEmailDeliveryInput, userContext: UserContext) => Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:75
Parameters
Returns
Promise<void>
SuperTokensPluginTenantPluginConfig
type SuperTokensPluginTenantPluginConfig = {
allowPublicTenantAccess?: boolean;
createRolesOnInit?: boolean;
emailDelivery?: {
override?: (originalImplementation: EmailDeliveryInterface<PluginEmailDeliveryInput>) => EmailDeliveryInterface<PluginEmailDeliveryInput>;
service?: EmailDeliveryInterface<PluginEmailDeliveryInput>;
};
enableTenantListAPI?: boolean;
requireNonPublicTenantAssociation?: boolean;
requireTenantCreationRequestApproval?: boolean;
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:43
Properties
SuperTokensPluginTenantPluginNormalisedConfig
type SuperTokensPluginTenantPluginNormalisedConfig = {
allowPublicTenantAccess: boolean;
createRolesOnInit: boolean;
emailDelivery?: {
override?: (originalImplementation: EmailDeliveryInterface<PluginEmailDeliveryInput>) => EmailDeliveryInterface<PluginEmailDeliveryInput>;
service?: EmailDeliveryInterface<PluginEmailDeliveryInput>;
};
enableTenantListAPI: boolean;
requireNonPublicTenantAssociation: boolean;
requireTenantCreationRequestApproval: boolean;
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:59
Properties
TenantCreationRequestMetadataType
type TenantCreationRequestMetadataType = ReturnType<typeof BaseFormSection>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/types.ts:22
Variables
default
default: {
init: any;
SMTPService: typeof PluginSMTPService;
};
Defined in: supertokens-plugins/packages/tenants-nodejs/src/index.ts:19
Type Declaration
getUserIdsInTenantWithRole
const getUserIdsInTenantWithRole: GetUserIdsInTenantWithRole;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/roles.ts:64
HANDLE_BASE_PATH
const HANDLE_BASE_PATH: "/plugin/supertokens-plugin-tenants";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:6
init
const init: any;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/plugin.ts:36
METADATA_KEY
const METADATA_KEY: "supertokens-plugin-tenants";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:10
PLUGIN_ERROR_NAME
const PLUGIN_ERROR_NAME: "supertokens-plugin-tenants-error";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:8
PLUGIN_ID
const PLUGIN_ID: "supertokens-plugin-tenants" = "supertokens-plugin-tenants";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:1
PLUGIN_SDK_VERSION
const PLUGIN_SDK_VERSION: string[];
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:4
PLUGIN_VERSION
const PLUGIN_VERSION: "0.0.1" = "0.0.1";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:2
TENANT_CREATE_METADATA_KEY
const TENANT_CREATE_METADATA_KEY: "supertokens-plugin-tenants-tenant-create-requests";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:11
TENANT_CREATE_METADATA_REQUESTS_KEY
const TENANT_CREATE_METADATA_REQUESTS_KEY: "requests" = "requests";
Defined in: supertokens-plugins/packages/tenants-nodejs/src/constants.ts:12
Functions
assignAdminToUserInTenant()
function assignAdminToUserInTenant(tenantId: string, userId: string): Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/roles.ts:51
Parameters
Returns
Promise<void>
assignRoleToUserInTenant()
function assignRoleToUserInTenant(
tenantId: string,
userId: string,
role: string): Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/roles.ts:31
Default definition of assignRoleToUserInTenant to be exported to be usable without having to initialize the plugin.
Parameters
Returns
Promise<void>
createRoles()
function createRoles(): Promise<void>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/roles.ts:7
Returns
Promise<void>
extractInvitationCodeAndTenantId()
function extractInvitationCodeAndTenantId(req: BaseRequest): Promise<{
code: any;
shouldAcceptInvite: boolean;
tenantId: any;
}>;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/util.ts:19
Parameters
Returns
Promise<{ code: any; shouldAcceptInvite: boolean; tenantId: any; }>
getOverrideableTenantFunctionImplementation()
function getOverrideableTenantFunctionImplementation(pluginConfig: SuperTokensPluginTenantPluginConfig): OverrideableTenantFunctionImplementation;
Defined in: supertokens-plugins/packages/tenants-nodejs/src/pluginImplementation.ts:32
Parameters
Returns
OverrideableTenantFunctionImplementation
hasPermissions()
function hasPermissions(permissions: string[]): (globalValidators: SessionClaimValidator[]) => SessionClaimValidator[];
Defined in: supertokens-plugins/packages/tenants-nodejs/src/util.ts:12
Parameters
Returns
(globalValidators: SessionClaimValidator[]): SessionClaimValidator[];
Parameters
Returns
SessionClaimValidator[]
validateWithoutClaims()
function validateWithoutClaims(keys: string[]): (existingValidators: SessionClaimValidator[]) => SessionClaimValidator[];
Defined in: supertokens-plugins/packages/tenants-nodejs/src/util.ts:5
Parameters
Returns
(existingValidators: SessionClaimValidator[]): SessionClaimValidator[];
Parameters
Returns
SessionClaimValidator[]