initial commit

This commit is contained in:
2026-04-21 06:25:33 +07:00
commit 85efdb7714
214 changed files with 6821 additions and 0 deletions

View File

@ -0,0 +1,172 @@
-- Optional reference schema for PostgreSQL (JPA ddl-auto=update is enabled by default)
create table if not exists sys_tenants (
id uuid primary key,
tenant_id varchar(100) not null unique,
name varchar(255) not null,
active boolean not null,
created_at timestamp with time zone not null
);
create table if not exists sec_permissions (
id uuid primary key,
tenant_id varchar(100) not null,
code varchar(100) not null,
name varchar(255) not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255),
constraint sec_uk_permissions_tenant_code unique (tenant_id, code)
);
create table if not exists sec_roles (
id uuid primary key,
tenant_id varchar(100) not null,
code varchar(100) not null,
name varchar(255) not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255),
constraint sec_uk_roles_tenant_code unique (tenant_id, code)
);
create table if not exists sec_users (
id uuid primary key,
tenant_id varchar(100) not null,
username varchar(100) not null,
password varchar(255),
auth_source varchar(20) not null default 'LOCAL',
ldap_dn varchar(512),
enabled boolean not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255),
constraint sec_uk_users_tenant_username unique (tenant_id, username)
);
create table if not exists sec_user_roles (
user_id uuid not null references sec_users(id),
role_id uuid not null references sec_roles(id),
primary key (user_id, role_id)
);
create table if not exists sec_role_permissions (
role_id uuid not null references sec_roles(id),
permission_id uuid not null references sec_permissions(id),
primary key (role_id, permission_id)
);
create table if not exists sec_user_ui_preferences (
id uuid primary key,
tenant_id varchar(100) not null,
user_id uuid not null references sec_users(id),
preference_key varchar(255) not null,
value_json text not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255),
constraint sec_uk_user_ui_preferences unique (tenant_id, user_id, preference_key)
);
create index if not exists sec_idx_user_ui_preferences_tenant_user_updated on sec_user_ui_preferences (tenant_id, user_id, updated_at);
create index if not exists sec_idx_user_ui_preferences_tenant_user on sec_user_ui_preferences (tenant_id, user_id);
create index if not exists sec_idx_user_ui_preferences_user on sec_user_ui_preferences (user_id);
create table if not exists sec_refresh_tokens (
id uuid primary key,
tenant_id varchar(100) not null,
user_id uuid not null references sec_users(id),
token varchar(512) not null unique,
expires_at timestamp with time zone not null,
revoked boolean not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255)
);
create table if not exists sys_system_modules (
id uuid primary key,
tenant_id varchar(100) not null,
code varchar(100) not null,
name varchar(255) not null,
enabled boolean not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255),
constraint sys_uk_system_modules_tenant_code unique (tenant_id, code)
);
create table if not exists sys_approval_requests (
id uuid primary key,
tenant_id varchar(100) not null,
resource_type varchar(255) not null,
resource_id varchar(255) not null,
payload text,
status varchar(50) not null,
required_steps integer not null,
current_step integer not null,
maker_username varchar(255) not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255)
);
create table if not exists sys_approval_steps (
id uuid primary key,
tenant_id varchar(100) not null,
request_id uuid not null references sys_approval_requests(id),
step_order integer not null,
checker_role varchar(255) not null,
status varchar(50) not null,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255)
);
create table if not exists sys_approval_history (
id uuid primary key,
tenant_id varchar(100) not null,
request_id uuid not null references sys_approval_requests(id),
action varchar(50) not null,
actor_username varchar(255) not null,
notes text,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255)
);
create table if not exists sys_audit_trails (
id uuid primary key,
tenant_id varchar(100) not null,
correlation_id varchar(100),
actor varchar(255) not null,
action varchar(100) not null,
domain varchar(100),
resource_type varchar(100),
resource_id varchar(255),
outcome varchar(20) not null,
http_method varchar(20),
request_path varchar(500),
client_ip varchar(80),
error_message varchar(1000),
details text,
before_state text,
after_state text,
created_at timestamp with time zone,
updated_at timestamp with time zone,
created_by varchar(255),
updated_by varchar(255)
);
create index if not exists sys_idx_audit_tenant_created_on on sys_audit_trails (tenant_id, created_at);
create index if not exists sys_idx_audit_correlation on sys_audit_trails (correlation_id);
create index if not exists sys_idx_audit_actor on sys_audit_trails (actor);
create index if not exists sys_idx_audit_action on sys_audit_trails (action);