mirror of
https://github.com/hanzoai/sign.git
synced 2026-10-21 01:21:51 +00:00
The IAM callback at /auth/callback reads IAM's userinfo answer and refuses an address IAM has not verified. An account is found by its linked IAM identity alone (provider hanzo, the IAM subject); an existing account that only shares the address is refused, never merged. A first sign-in makes an account only for an admin of the org the application serves or for someone an organisation invited at that verified address. Every refusal returns to /signin with a sentence saying what to do. Accepting an organisation invitation joins the signed-in person, and only when their verified address is the invited one; opening the link no longer adds whoever holds the address. The local email/password sign-up, sign-in, reset, verify-email and update routes, pages, jobs and mail are gone, as are passkey sign-in, the Google, Microsoft and generic OIDC providers, the per-organisation SSO portal and its account-link flow. Passkeys and two-factor stay for confirming a signature. The e2e suite starts sessions the way a finished IAM sign-in leaves them. Co-authored-by: Hanzo Dev <[email protected]>
45 lines
2.7 KiB
TypeScript
45 lines
2.7 KiB
TypeScript
import { JobClient } from './client/client';
|
|
import { SEND_DOCUMENT_CANCELLED_EMAILS_JOB_DEFINITION } from './definitions/emails/send-document-cancelled-emails';
|
|
import { SEND_ORGANISATION_MEMBER_JOINED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-organisation-member-joined-email';
|
|
import { SEND_ORGANISATION_MEMBER_LEFT_EMAIL_JOB_DEFINITION } from './definitions/emails/send-organisation-member-left-email';
|
|
import { SEND_OWNER_RECIPIENT_EXPIRED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-owner-recipient-expired-email';
|
|
import { SEND_RECIPIENT_SIGNED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-recipient-signed-email';
|
|
import { SEND_SIGNING_REJECTION_EMAILS_JOB_DEFINITION } from './definitions/emails/send-rejection-emails';
|
|
import { SEND_SIGNING_EMAIL_JOB_DEFINITION } from './definitions/emails/send-signing-email';
|
|
import { SEND_TEAM_DELETED_EMAIL_JOB_DEFINITION } from './definitions/emails/send-team-deleted-email';
|
|
import { BACKPORT_SUBSCRIPTION_CLAIM_JOB_DEFINITION } from './definitions/internal/backport-subscription-claims';
|
|
import { BULK_SEND_TEMPLATE_JOB_DEFINITION } from './definitions/internal/bulk-send-template';
|
|
import { CLEANUP_RATE_LIMITS_JOB_DEFINITION } from './definitions/internal/cleanup-rate-limits';
|
|
import { EXECUTE_WEBHOOK_JOB_DEFINITION } from './definitions/internal/execute-webhook';
|
|
import { EXPIRE_RECIPIENTS_SWEEP_JOB_DEFINITION } from './definitions/internal/expire-recipients-sweep';
|
|
import { PROCESS_RECIPIENT_EXPIRED_JOB_DEFINITION } from './definitions/internal/process-recipient-expired';
|
|
import { SEAL_DOCUMENT_JOB_DEFINITION } from './definitions/internal/seal-document';
|
|
import { SEAL_DOCUMENT_SWEEP_JOB_DEFINITION } from './definitions/internal/seal-document-sweep';
|
|
import { SYNC_EMAIL_DOMAINS_JOB_DEFINITION } from './definitions/internal/sync-email-domains';
|
|
|
|
/**
|
|
* The `as const` assertion is load bearing as it provides the correct level of type inference for
|
|
* triggering jobs.
|
|
*/
|
|
export const jobsClient = new JobClient([
|
|
SEND_SIGNING_EMAIL_JOB_DEFINITION,
|
|
SEND_ORGANISATION_MEMBER_JOINED_EMAIL_JOB_DEFINITION,
|
|
SEND_ORGANISATION_MEMBER_LEFT_EMAIL_JOB_DEFINITION,
|
|
SEND_TEAM_DELETED_EMAIL_JOB_DEFINITION,
|
|
SEAL_DOCUMENT_JOB_DEFINITION,
|
|
SEAL_DOCUMENT_SWEEP_JOB_DEFINITION,
|
|
SEND_SIGNING_REJECTION_EMAILS_JOB_DEFINITION,
|
|
SEND_RECIPIENT_SIGNED_EMAIL_JOB_DEFINITION,
|
|
SEND_DOCUMENT_CANCELLED_EMAILS_JOB_DEFINITION,
|
|
SEND_OWNER_RECIPIENT_EXPIRED_EMAIL_JOB_DEFINITION,
|
|
BACKPORT_SUBSCRIPTION_CLAIM_JOB_DEFINITION,
|
|
BULK_SEND_TEMPLATE_JOB_DEFINITION,
|
|
EXECUTE_WEBHOOK_JOB_DEFINITION,
|
|
EXPIRE_RECIPIENTS_SWEEP_JOB_DEFINITION,
|
|
PROCESS_RECIPIENT_EXPIRED_JOB_DEFINITION,
|
|
CLEANUP_RATE_LIMITS_JOB_DEFINITION,
|
|
SYNC_EMAIL_DOMAINS_JOB_DEFINITION,
|
|
] as const);
|
|
|
|
export const jobs = jobsClient;
|