mirror of
https://github.com/logto-io/logto.git
synced 2024-12-16 20:26:19 -05:00
ec8eb85d79
add user tenantId foreign key constraint to the organizatino_user_relations table
48 lines
1.8 KiB
SQL
48 lines
1.8 KiB
SQL
/* init_order = 1 */
|
|
|
|
create type users_password_encryption_method as enum ('Argon2i', 'Argon2id', 'Argon2d', 'SHA1', 'SHA256', 'MD5', 'Bcrypt');
|
|
|
|
create table users (
|
|
tenant_id varchar(21) not null
|
|
references tenants (id) on update cascade on delete cascade,
|
|
id varchar(12) not null,
|
|
username varchar(128),
|
|
primary_email varchar(128),
|
|
primary_phone varchar(128),
|
|
password_encrypted varchar(128),
|
|
password_encryption_method users_password_encryption_method,
|
|
name varchar(128),
|
|
/** The URL that points to the user's profile picture. Mapped to OpenID Connect's `picture` claim. */
|
|
avatar varchar(2048),
|
|
/** Additional OpenID Connect standard claims that are not included in user's properties. */
|
|
profile jsonb /* @use UserProfile */ not null default '{}'::jsonb,
|
|
application_id varchar(21),
|
|
identities jsonb /* @use Identities */ not null default '{}'::jsonb,
|
|
custom_data jsonb /* @use JsonObject */ not null default '{}'::jsonb,
|
|
logto_config jsonb /* @use JsonObject */ not null default '{}'::jsonb,
|
|
mfa_verifications jsonb /* @use MfaVerifications */ not null default '[]'::jsonb,
|
|
is_suspended boolean not null default false,
|
|
last_sign_in_at timestamptz,
|
|
created_at timestamptz not null default (now()),
|
|
updated_at timestamptz not null default (now()),
|
|
primary key (id),
|
|
constraint users__username
|
|
unique (tenant_id, username),
|
|
constraint users__primary_email
|
|
unique (tenant_id, primary_email),
|
|
constraint users__primary_phone
|
|
unique (tenant_id, primary_phone),
|
|
constraint users__tenant_id__id
|
|
unique (tenant_id, id)
|
|
);
|
|
|
|
create index users__id
|
|
on users (tenant_id, id);
|
|
|
|
create index users__name
|
|
on users (tenant_id, name);
|
|
|
|
create trigger set_updated_at
|
|
before update on users
|
|
for each row
|
|
execute procedure set_updated_at();
|