removed further class files

This commit is contained in:
2026-07-26 23:42:25 +05:30
parent 6f1fb56670
commit b3836639bf
18 changed files with 1 additions and 1234 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
.gitignore vendored
View File

@@ -32,3 +32,4 @@
/cygnus-cloud-client/target /cygnus-cloud-client/target
/cygnus-installer/src/test /cygnus-installer/src/test
/cygnus-cloud-client/target /cygnus-cloud-client/target
/cygnus-cloud-service/target

View File

@@ -1,79 +0,0 @@
spring:
application:
name: cygnus-cloud-service
mail:
host: ${CYGNUS_MAIL_HOST:}
port: ${CYGNUS_MAIL_PORT:587}
username: ${CYGNUS_MAIL_USERNAME:}
password: ${CYGNUS_MAIL_PASSWORD:}
properties:
mail:
smtp:
auth: ${CYGNUS_MAIL_SMTP_AUTH:true}
starttls:
enable: ${CYGNUS_MAIL_STARTTLS:true}
data:
redis:
host: ${REDIS_HOST:192.168.0.111}
port: ${REDIS_PORT:7901}
password: ${REDIS_PASSWORD:}
connect-timeout: ${REDIS_CONNECT_TIMEOUT:3s}
timeout: ${REDIS_COMMAND_TIMEOUT:3s}
lettuce:
pool:
max-active: ${REDIS_MAX_ACTIVE:20}
max-idle: ${REDIS_MAX_IDLE:10}
min-idle: ${REDIS_MIN_IDLE:1}
max-wait: ${REDIS_MAX_WAIT:2s}
cygnus:
database:
host: ${DB_HOST:192.168.0.111}
port: ${DB_PORT:5432}
database: ${DB_NAME:matrix}
username: ${DB_USER:postgres}
password: ${DB_PASSWORD:}
ssl: ${DB_SSL:false}
connect-timeout: ${DB_CONNECT_TIMEOUT:3s}
pool-size: ${DB_POOL_SIZE:20}
pool-wait-queue-size: ${DB_POOL_WAIT_QUEUE_SIZE:100}
security:
enabled: ${CYGNUS_SECURITY_ENABLED:false}
issuer-uri: ${CYGNUS_JWT_ISSUER_URI:http://localhost:8090}
audience: ${CYGNUS_JWT_AUDIENCE:cygnus-cloud-api}
token-audience: ${CYGNUS_TOKEN_AUDIENCE:http://localhost:8090/oauth2/token}
assertion-ttl: ${CYGNUS_ASSERTION_TTL:370d}
access-token-ttl: ${CYGNUS_ACCESS_TOKEN_TTL:20m}
assertion-decryption-private-key: ${CYGNUS_ASSERTION_DECRYPTION_PRIVATE_KEY:file:./config/keys/assertion-decryption-private.pem}
access-token-private-key: ${CYGNUS_ACCESS_TOKEN_PRIVATE_KEY:file:./config/keys/access-token-private.pem}
access-token-public-key: ${CYGNUS_ACCESS_TOKEN_PUBLIC_KEY:file:./config/keys/access-token-public.pem}
login-encryption:
key-id: ${CYGNUS_LOGIN_KEY_ID:cygnus-login-2026-01}
private-key-location: ${CYGNUS_LOGIN_PRIVATE_KEY:file:./config/keys/login-private.pem}
payload-ttl: ${CYGNUS_LOGIN_PAYLOAD_TTL:5m}
cache:
key-prefix: ${CYGNUS_CACHE_PREFIX:cygnus}
default-ttl: ${CYGNUS_CACHE_TTL:10m}
registration-email:
from: ${CYGNUS_REGISTRATION_EMAIL_FROM:noreply@cygnus.invalid}
activation-rate-limit:
maximum-attempts: ${CYGNUS_ACTIVATION_MAX_ATTEMPTS:10}
window: ${CYGNUS_ACTIVATION_RATE_WINDOW:10m}
server:
port: ${CYGNUS_CLOUD_PORT:8090}
shutdown: graceful
management:
endpoints:
web:
exposure:
include: health,info
endpoint:
health:
show-details: never
info:
app:
name: ${spring.application.name}
version: 1.0.0-SNAPSHOT

View File

@@ -1,217 +0,0 @@
BEGIN;
CREATE SCHEMA IF NOT EXISTS identity;
CREATE TABLE IF NOT EXISTS identity.company
(LIKE public.company INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.company_branch
(LIKE public.company_branch INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.user_group
(LIKE public.user_group INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.app_user
(LIKE public.app_user INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.pages
(LIKE public.pages INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.permission
(LIKE public.permission INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.denied_pages
(LIKE public.denied_pages INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.user_loginhistory
(LIKE public.user_loginhistory INCLUDING ALL);
CREATE SEQUENCE IF NOT EXISTS identity.app_user_user_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.company_company_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.company_branch_branch_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.user_group_group_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.pages_page_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.permission_permission_id_seq
AS integer;
CREATE SEQUENCE IF NOT EXISTS identity.denied_pages_uid_seq
AS integer;
CREATE SEQUENCE IF NOT EXISTS identity.user_loginhistory_uid_seq
AS bigint;
ALTER TABLE identity.app_user
ALTER COLUMN user_id SET DEFAULT nextval('identity.app_user_user_id_seq');
ALTER TABLE identity.company
ALTER COLUMN company_id SET DEFAULT nextval('identity.company_company_id_seq');
ALTER TABLE identity.company_branch
ALTER COLUMN branch_id SET DEFAULT nextval('identity.company_branch_branch_id_seq');
ALTER TABLE identity.user_group
ALTER COLUMN group_id SET DEFAULT nextval('identity.user_group_group_id_seq');
ALTER TABLE identity.pages
ALTER COLUMN page_id SET DEFAULT nextval('identity.pages_page_id_seq');
ALTER TABLE identity.permission
ALTER COLUMN permission_id SET DEFAULT nextval('identity.permission_permission_id_seq');
ALTER TABLE identity.denied_pages
ALTER COLUMN uid SET DEFAULT nextval('identity.denied_pages_uid_seq');
ALTER TABLE identity.user_loginhistory
ALTER COLUMN uid SET DEFAULT nextval('identity.user_loginhistory_uid_seq');
ALTER TABLE identity.user_loginhistory
ALTER COLUMN ipaddr TYPE character varying(45);
INSERT INTO identity.company
SELECT * FROM public.company
ON CONFLICT (company_id) DO UPDATE SET
companyname = EXCLUDED.companyname,
companycode = EXCLUDED.companycode,
servicetaxno = EXCLUDED.servicetaxno,
panno = EXCLUDED.panno,
createdon = EXCLUDED.createdon,
isactive = EXCLUDED.isactive,
cinno = EXCLUDED.cinno;
INSERT INTO identity.company_branch
SELECT * FROM public.company_branch
ON CONFLICT (branch_id) DO UPDATE SET
company_id = EXCLUDED.company_id,
branchname = EXCLUDED.branchname,
branchcode = EXCLUDED.branchcode,
address1 = EXCLUDED.address1,
address2 = EXCLUDED.address2,
address3 = EXCLUDED.address3,
city = EXCLUDED.city,
pincode = EXCLUDED.pincode,
landlineno = EXCLUDED.landlineno,
faxno = EXCLUDED.faxno,
emailid = EXCLUDED.emailid,
contactperson1 = EXCLUDED.contactperson1,
contactno1 = EXCLUDED.contactno1,
emailid1 = EXCLUDED.emailid1,
contactperson2 = EXCLUDED.contactperson2,
contactno2 = EXCLUDED.contactno2,
emailid2 = EXCLUDED.emailid2,
isactive = EXCLUDED.isactive,
createdon = EXCLUDED.createdon,
gstin = EXCLUDED.gstin,
cgst = EXCLUDED.cgst,
sgst = EXCLUDED.sgst,
igst = EXCLUDED.igst;
INSERT INTO identity.user_group
SELECT * FROM public.user_group
ON CONFLICT (group_id) DO UPDATE SET
name = EXCLUDED.name,
department_id = EXCLUDED.department_id,
createdon = EXCLUDED.createdon,
createdby = EXCLUDED.createdby,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
isactive = EXCLUDED.isactive;
INSERT INTO identity.app_user
SELECT * FROM public.app_user
ON CONFLICT (user_id) DO UPDATE SET
loginid = EXCLUDED.loginid,
displayname = EXCLUDED.displayname,
loginpassword = EXCLUDED.loginpassword,
group_id = EXCLUDED.group_id,
createdon = EXCLUDED.createdon,
createdby = EXCLUDED.createdby,
activatedon = EXCLUDED.activatedon,
activatedby = EXCLUDED.activatedby,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
branch_id = EXCLUDED.branch_id,
company_id = EXCLUDED.company_id,
isactive = EXCLUDED.isactive,
team_id = EXCLUDED.team_id,
emailid = EXCLUDED.emailid,
entry_time = EXCLUDED.entry_time;
INSERT INTO identity.pages
SELECT * FROM public.pages
ON CONFLICT (page_id) DO UPDATE SET
menulabel = EXCLUDED.menulabel,
targeturl = EXCLUDED.targeturl,
parentpage = EXCLUDED.parentpage,
targetwindow = EXCLUDED.targetwindow,
pageorder = EXCLUDED.pageorder,
isvisible = EXCLUDED.isvisible;
INSERT INTO identity.permission
SELECT * FROM public.permission
ON CONFLICT (permission_id) DO UPDATE SET
page_id = EXCLUDED.page_id,
group_id = EXCLUDED.group_id,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
permission = EXCLUDED.permission,
requestval = EXCLUDED.requestval;
INSERT INTO identity.denied_pages
SELECT * FROM public.denied_pages
ON CONFLICT (uid) DO UPDATE SET
page_id = EXCLUDED.page_id,
user_id = EXCLUDED.user_id,
isdenied = EXCLUDED.isdenied;
INSERT INTO identity.user_loginhistory
SELECT * FROM public.user_loginhistory
ON CONFLICT (uid) DO UPDATE SET
loginid = EXCLUDED.loginid,
logintime = EXCLUDED.logintime,
logouttime = EXCLUDED.logouttime,
ipaddr = EXCLUDED.ipaddr,
user_id = EXCLUDED.user_id;
CREATE INDEX IF NOT EXISTS ix_identity_app_user_loginid_ci
ON identity.app_user (upper(loginid));
CREATE INDEX IF NOT EXISTS ix_identity_permission_group_page
ON identity.permission (group_id, page_id)
WHERE permission <> '000';
CREATE INDEX IF NOT EXISTS ix_identity_pages_menu
ON identity.pages (parentpage, pageorder DESC)
WHERE isvisible = 1;
CREATE INDEX IF NOT EXISTS ix_identity_denied_pages_user_page
ON identity.denied_pages (user_id, page_id)
WHERE isdenied = 1;
CREATE INDEX IF NOT EXISTS ix_identity_login_history_user_time
ON identity.user_loginhistory (user_id, logintime DESC);
SELECT setval(
'identity.app_user_user_id_seq',
GREATEST(COALESCE((SELECT max(user_id) FROM identity.app_user), 1), 1),
EXISTS (SELECT 1 FROM identity.app_user));
SELECT setval(
'identity.company_company_id_seq',
GREATEST(COALESCE((SELECT max(company_id) FROM identity.company), 1), 1),
EXISTS (SELECT 1 FROM identity.company));
SELECT setval(
'identity.company_branch_branch_id_seq',
GREATEST(COALESCE((SELECT max(branch_id) FROM identity.company_branch), 1), 1),
EXISTS (SELECT 1 FROM identity.company_branch));
SELECT setval(
'identity.user_group_group_id_seq',
GREATEST(COALESCE((SELECT max(group_id) FROM identity.user_group), 1), 1),
EXISTS (SELECT 1 FROM identity.user_group));
SELECT setval(
'identity.pages_page_id_seq',
GREATEST(COALESCE((SELECT max(page_id) FROM identity.pages), 1), 1),
EXISTS (SELECT 1 FROM identity.pages));
SELECT setval(
'identity.permission_permission_id_seq',
GREATEST(COALESCE((SELECT max(permission_id) FROM identity.permission), 1), 1),
EXISTS (SELECT 1 FROM identity.permission));
SELECT setval(
'identity.denied_pages_uid_seq',
GREATEST(COALESCE((SELECT max(uid) FROM identity.denied_pages), 1), 1),
EXISTS (SELECT 1 FROM identity.denied_pages));
SELECT setval(
'identity.user_loginhistory_uid_seq',
GREATEST(COALESCE((SELECT max(uid) FROM identity.user_loginhistory), 1), 1),
EXISTS (SELECT 1 FROM identity.user_loginhistory));
COMMIT;

View File

@@ -1,153 +0,0 @@
BEGIN;
-- DMLP phase 2: introduce the tenant, installation and license source of truth.
-- The fixed legacy tenant is a migration bridge for the identity data copied by
-- 001_identity_login_schema.sql. Replace its migration license through the
-- administration workflow before commercial enforcement is enabled.
CREATE TABLE IF NOT EXISTS identity.client_account (
tenant_id uuid PRIMARY KEY,
client_slug character varying(80) NOT NULL,
client_name character varying(200) NOT NULL,
status character varying(20) NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT uq_identity_client_account_slug UNIQUE (client_slug),
CONSTRAINT ck_identity_client_account_slug
CHECK (client_slug ~ '^[a-z0-9]+(?:-[a-z0-9]+)*$'),
CONSTRAINT ck_identity_client_account_status
CHECK (status IN ('ACTIVE', 'SUSPENDED', 'CANCELLED'))
);
CREATE TABLE IF NOT EXISTS identity.client_installation (
installation_id uuid PRIMARY KEY,
tenant_id uuid NOT NULL,
client_id character varying(80) NOT NULL,
installation_code character varying(100) NOT NULL,
assertion_public_key text NOT NULL,
allowed_scopes text[] NOT NULL DEFAULT ARRAY[]::text[],
enabled boolean NOT NULL DEFAULT true,
security_version integer NOT NULL DEFAULT 1,
last_authenticated_at timestamp with time zone,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT fk_identity_installation_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id),
CONSTRAINT uq_identity_installation_client_code
UNIQUE (client_id, installation_code),
CONSTRAINT ck_identity_installation_client_id
CHECK (client_id ~ '^[A-Za-z0-9][A-Za-z0-9_-]*$'),
CONSTRAINT ck_identity_installation_code
CHECK (installation_code ~ '^[A-Za-z0-9][A-Za-z0-9_-]*$'),
CONSTRAINT ck_identity_installation_security_version
CHECK (security_version > 0)
);
CREATE TABLE IF NOT EXISTS identity.client_license (
license_id uuid PRIMARY KEY,
tenant_id uuid NOT NULL,
license_type character varying(30) NOT NULL,
package_code character varying(50) NOT NULL,
valid_from timestamp with time zone NOT NULL,
valid_until timestamp with time zone NOT NULL,
status character varying(20) NOT NULL,
max_users integer,
max_installations integer,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT fk_identity_license_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id),
CONSTRAINT ck_identity_license_period
CHECK (valid_until > valid_from),
CONSTRAINT ck_identity_license_status
CHECK (status IN ('ACTIVE', 'SUSPENDED', 'EXPIRED', 'CANCELLED')),
CONSTRAINT ck_identity_license_limits
CHECK ((max_users IS NULL OR max_users > 0)
AND (max_installations IS NULL OR max_installations > 0))
);
CREATE INDEX IF NOT EXISTS ix_identity_installation_tenant_enabled
ON identity.client_installation (tenant_id, enabled);
CREATE INDEX IF NOT EXISTS ix_identity_installation_lookup
ON identity.client_installation (client_id, installation_code, enabled);
CREATE INDEX IF NOT EXISTS ix_identity_license_tenant_period
ON identity.client_license (tenant_id, status, valid_from, valid_until);
-- Add tenant ownership without changing any legacy primary-key values.
ALTER TABLE identity.company
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.company_branch
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.user_group
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.app_user
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.permission
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.denied_pages
ADD COLUMN IF NOT EXISTS tenant_id uuid;
ALTER TABLE identity.user_loginhistory
ADD COLUMN IF NOT EXISTS tenant_id uuid;
-- Seed a stable bridge tenant for all identity data that already exists.
INSERT INTO identity.client_account
(tenant_id, client_slug, client_name, status)
VALUES ('00000000-0000-4000-8000-000000000001', 'matrix', 'Matrix', 'ACTIVE')
ON CONFLICT (tenant_id) DO UPDATE SET
client_slug = EXCLUDED.client_slug,
client_name = EXCLUDED.client_name,
updated_at = now();
-- A non-expiring migration bridge keeps current users operational. It must be
-- replaced by a commercial license before license administration goes live.
INSERT INTO identity.client_license
(license_id, tenant_id, license_type, package_code,
valid_from, valid_until, status)
VALUES ('00000000-0000-4000-8000-000000000002',
'00000000-0000-4000-8000-000000000001',
'MIGRATION', 'LEGACY_FULL',
'2020-01-01 00:00:00+00', '2099-12-31 23:59:59+00', 'ACTIVE')
ON CONFLICT (license_id) DO NOTHING;
UPDATE identity.company
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.company_branch
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.user_group
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.app_user
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.permission
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.denied_pages
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
UPDATE identity.user_loginhistory
SET tenant_id = '00000000-0000-4000-8000-000000000001'
WHERE tenant_id IS NULL;
CREATE INDEX IF NOT EXISTS ix_identity_company_tenant
ON identity.company (tenant_id, company_id);
CREATE INDEX IF NOT EXISTS ix_identity_branch_tenant
ON identity.company_branch (tenant_id, company_id, branch_id);
CREATE INDEX IF NOT EXISTS ix_identity_group_tenant
ON identity.user_group (tenant_id, group_id);
CREATE INDEX IF NOT EXISTS ix_identity_user_tenant_login
ON identity.app_user (tenant_id, upper(loginid));
CREATE INDEX IF NOT EXISTS ix_identity_permission_tenant_group_page
ON identity.permission (tenant_id, group_id, page_id)
WHERE permission <> '000';
CREATE INDEX IF NOT EXISTS ix_identity_denied_tenant_user_page
ON identity.denied_pages (tenant_id, user_id, page_id)
WHERE isdenied = 1;
CREATE INDEX IF NOT EXISTS ix_identity_login_history_tenant_user_time
ON identity.user_loginhistory (tenant_id, user_id, logintime DESC);
COMMIT;

View File

@@ -1,231 +0,0 @@
BEGIN;
-- DMLP phase 3: make tenant ownership mandatory and enforce same-tenant
-- relationships without changing any legacy primary keys.
ALTER TABLE identity.company
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.company_branch
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.user_group
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.app_user
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.permission
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.denied_pages
ALTER COLUMN tenant_id SET NOT NULL;
ALTER TABLE identity.user_loginhistory
ALTER COLUMN tenant_id SET NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_company_tenant_id
ON identity.company (tenant_id, company_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_branch_tenant_id
ON identity.company_branch (tenant_id, branch_id, company_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_group_tenant_id
ON identity.user_group (tenant_id, group_id);
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_user_tenant_id
ON identity.app_user (tenant_id, user_id);
DO $migration$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_company_tenant'
AND conrelid = 'identity.company'::regclass) THEN
ALTER TABLE identity.company
ADD CONSTRAINT fk_identity_company_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_branch_tenant'
AND conrelid = 'identity.company_branch'::regclass) THEN
ALTER TABLE identity.company_branch
ADD CONSTRAINT fk_identity_branch_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_branch_company_tenant'
AND conrelid = 'identity.company_branch'::regclass) THEN
ALTER TABLE identity.company_branch
ADD CONSTRAINT fk_identity_branch_company_tenant
FOREIGN KEY (tenant_id, company_id)
REFERENCES identity.company (tenant_id, company_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_group_tenant'
AND conrelid = 'identity.user_group'::regclass) THEN
ALTER TABLE identity.user_group
ADD CONSTRAINT fk_identity_group_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_user_tenant'
AND conrelid = 'identity.app_user'::regclass) THEN
ALTER TABLE identity.app_user
ADD CONSTRAINT fk_identity_user_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_user_group_tenant'
AND conrelid = 'identity.app_user'::regclass) THEN
ALTER TABLE identity.app_user
ADD CONSTRAINT fk_identity_user_group_tenant
FOREIGN KEY (tenant_id, group_id)
REFERENCES identity.user_group (tenant_id, group_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_user_company_tenant'
AND conrelid = 'identity.app_user'::regclass) THEN
ALTER TABLE identity.app_user
ADD CONSTRAINT fk_identity_user_company_tenant
FOREIGN KEY (tenant_id, company_id)
REFERENCES identity.company (tenant_id, company_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_user_branch_tenant'
AND conrelid = 'identity.app_user'::regclass) THEN
ALTER TABLE identity.app_user
ADD CONSTRAINT fk_identity_user_branch_tenant
FOREIGN KEY (tenant_id, branch_id, company_id)
REFERENCES identity.company_branch (tenant_id, branch_id, company_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_permission_tenant'
AND conrelid = 'identity.permission'::regclass) THEN
ALTER TABLE identity.permission
ADD CONSTRAINT fk_identity_permission_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_permission_group_tenant'
AND conrelid = 'identity.permission'::regclass) THEN
ALTER TABLE identity.permission
ADD CONSTRAINT fk_identity_permission_group_tenant
FOREIGN KEY (tenant_id, group_id)
REFERENCES identity.user_group (tenant_id, group_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_permission_page'
AND conrelid = 'identity.permission'::regclass) THEN
ALTER TABLE identity.permission
ADD CONSTRAINT fk_identity_permission_page
FOREIGN KEY (page_id)
REFERENCES identity.pages (page_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_denied_tenant'
AND conrelid = 'identity.denied_pages'::regclass) THEN
ALTER TABLE identity.denied_pages
ADD CONSTRAINT fk_identity_denied_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_denied_user_tenant'
AND conrelid = 'identity.denied_pages'::regclass) THEN
ALTER TABLE identity.denied_pages
ADD CONSTRAINT fk_identity_denied_user_tenant
FOREIGN KEY (tenant_id, user_id)
REFERENCES identity.app_user (tenant_id, user_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_denied_page'
AND conrelid = 'identity.denied_pages'::regclass) THEN
ALTER TABLE identity.denied_pages
ADD CONSTRAINT fk_identity_denied_page
FOREIGN KEY (page_id)
REFERENCES identity.pages (page_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_login_history_tenant'
AND conrelid = 'identity.user_loginhistory'::regclass) THEN
ALTER TABLE identity.user_loginhistory
ADD CONSTRAINT fk_identity_login_history_tenant
FOREIGN KEY (tenant_id)
REFERENCES identity.client_account (tenant_id)
NOT VALID;
END IF;
END
$migration$;
ALTER TABLE identity.company
VALIDATE CONSTRAINT fk_identity_company_tenant;
ALTER TABLE identity.company_branch
VALIDATE CONSTRAINT fk_identity_branch_tenant;
ALTER TABLE identity.company_branch
VALIDATE CONSTRAINT fk_identity_branch_company_tenant;
ALTER TABLE identity.user_group
VALIDATE CONSTRAINT fk_identity_group_tenant;
ALTER TABLE identity.app_user
VALIDATE CONSTRAINT fk_identity_user_tenant;
ALTER TABLE identity.app_user
VALIDATE CONSTRAINT fk_identity_user_group_tenant;
ALTER TABLE identity.app_user
VALIDATE CONSTRAINT fk_identity_user_company_tenant;
ALTER TABLE identity.app_user
VALIDATE CONSTRAINT fk_identity_user_branch_tenant;
ALTER TABLE identity.permission
VALIDATE CONSTRAINT fk_identity_permission_tenant;
ALTER TABLE identity.permission
VALIDATE CONSTRAINT fk_identity_permission_group_tenant;
ALTER TABLE identity.permission
VALIDATE CONSTRAINT fk_identity_permission_page;
ALTER TABLE identity.denied_pages
VALIDATE CONSTRAINT fk_identity_denied_tenant;
ALTER TABLE identity.denied_pages
VALIDATE CONSTRAINT fk_identity_denied_user_tenant;
ALTER TABLE identity.denied_pages
VALIDATE CONSTRAINT fk_identity_denied_page;
ALTER TABLE identity.user_loginhistory
VALIDATE CONSTRAINT fk_identity_login_history_tenant;
COMMIT;

View File

@@ -1,369 +0,0 @@
BEGIN;
-- Client registration and controlled installation activation.
-- This migration is additive and preserves all existing tenant, license, and
-- installation identifiers. Plaintext license/activation keys must never be
-- stored in these tables.
CREATE TABLE IF NOT EXISTS identity.client_registration_details (
registration_id uuid PRIMARY KEY,
client_code character varying(40) NOT NULL,
legal_company_name character varying(240) NOT NULL,
trade_name character varying(240),
pan character varying(20),
cin character varying(30),
gst_number character varying(30),
billing_address_line1 character varying(300),
billing_address_line2 character varying(300),
billing_city character varying(120),
billing_state character varying(120),
billing_postal_code character varying(20),
billing_country character varying(2) NOT NULL DEFAULT 'IN',
billing_email character varying(254),
primary_contact_name character varying(160),
primary_contact_email character varying(254),
primary_contact_number character varying(30),
alternate_contact_name character varying(160),
alternate_contact_email character varying(254),
alternate_contact_number character varying(30),
contract_start_date date,
contract_end_date date,
status character varying(20) NOT NULL DEFAULT 'DRAFT',
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
created_by character varying(120) NOT NULL,
version integer NOT NULL DEFAULT 1,
CONSTRAINT ck_identity_registration_code
CHECK (client_code ~ '^[A-Z0-9]+(?:-[A-Z0-9]+)*$'),
CONSTRAINT ck_identity_registration_country
CHECK (billing_country ~ '^[A-Z]{2}$'),
CONSTRAINT ck_identity_registration_period
CHECK (contract_end_date IS NULL
OR contract_start_date IS NULL
OR contract_end_date >= contract_start_date),
CONSTRAINT ck_identity_registration_status
CHECK (status IN ('DRAFT', 'ACTIVE', 'SUSPENDED', 'TERMINATED')),
CONSTRAINT ck_identity_registration_version
CHECK (version > 0)
);
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_registration_client_code_ci
ON identity.client_registration_details (upper(client_code));
CREATE INDEX IF NOT EXISTS ix_identity_registration_status_contract
ON identity.client_registration_details (status, contract_end_date);
ALTER TABLE identity.client_account
ADD COLUMN IF NOT EXISTS registration_id uuid;
ALTER TABLE identity.client_account
ADD COLUMN IF NOT EXISTS security_version integer NOT NULL DEFAULT 1;
-- Stable bridge registration for the tenant introduced by migration 002.
INSERT INTO identity.client_registration_details (
registration_id, client_code, legal_company_name, trade_name,
status, contract_start_date, created_by)
VALUES ('00000000-0000-4000-8000-000000000010',
'MATRIX', 'Matrix', 'Matrix', 'ACTIVE', DATE '2020-01-01', 'migration-004')
ON CONFLICT (registration_id) DO UPDATE SET
legal_company_name = EXCLUDED.legal_company_name,
updated_at = now();
UPDATE identity.client_account
SET registration_id = '00000000-0000-4000-8000-000000000010'
WHERE registration_id IS NULL;
ALTER TABLE identity.client_account
ALTER COLUMN registration_id SET NOT NULL;
DO $migration$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_client_account_registration'
AND conrelid = 'identity.client_account'::regclass) THEN
ALTER TABLE identity.client_account
ADD CONSTRAINT fk_identity_client_account_registration
FOREIGN KEY (registration_id)
REFERENCES identity.client_registration_details (registration_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'ck_identity_client_account_security_version'
AND conrelid = 'identity.client_account'::regclass) THEN
ALTER TABLE identity.client_account
ADD CONSTRAINT ck_identity_client_account_security_version
CHECK (security_version > 0) NOT VALID;
END IF;
END
$migration$;
ALTER TABLE identity.client_account
VALIDATE CONSTRAINT fk_identity_client_account_registration;
ALTER TABLE identity.client_account
VALIDATE CONSTRAINT ck_identity_client_account_security_version;
CREATE INDEX IF NOT EXISTS ix_identity_client_account_registration
ON identity.client_account (registration_id, status);
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_client_account_registration_tenant
ON identity.client_account (registration_id, tenant_id);
UPDATE identity.client_license
SET max_installations = 1
WHERE max_installations IS NULL;
ALTER TABLE identity.client_license
ALTER COLUMN max_installations SET DEFAULT 1;
ALTER TABLE identity.client_license
ALTER COLUMN max_installations SET NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_license_tenant_id
ON identity.client_license (tenant_id, license_id);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS license_id uuid;
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS installation_uuid uuid;
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS installation_name character varying(160);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS status character varying(24);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS registered_at timestamp with time zone;
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS last_seen_at timestamp with time zone;
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS software_version character varying(40);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS environment character varying(30);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS retired_at timestamp with time zone;
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS retired_by character varying(120);
ALTER TABLE identity.client_installation
ADD COLUMN IF NOT EXISTS retirement_reason character varying(500);
UPDATE identity.client_installation installation
SET license_id = (
SELECT license.license_id
FROM identity.client_license license
WHERE license.tenant_id = installation.tenant_id
ORDER BY CASE license.status WHEN 'ACTIVE' THEN 0 ELSE 1 END,
license.valid_until DESC
LIMIT 1)
WHERE installation.license_id IS NULL;
DO $migration$
BEGIN
IF EXISTS (
SELECT 1
FROM identity.client_installation
WHERE license_id IS NULL) THEN
RAISE EXCEPTION
'Migration 004 cannot associate every existing installation with a license';
END IF;
END
$migration$;
UPDATE identity.client_installation
SET installation_uuid = installation_id
WHERE installation_uuid IS NULL;
UPDATE identity.client_installation
SET installation_name = installation_code
WHERE installation_name IS NULL;
UPDATE identity.client_installation
SET status = CASE WHEN enabled THEN 'ACTIVE' ELSE 'SUSPENDED' END
WHERE status IS NULL;
UPDATE identity.client_installation
SET registered_at = created_at
WHERE registered_at IS NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN license_id SET NOT NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN installation_uuid SET NOT NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN installation_name SET NOT NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN status SET NOT NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN status SET DEFAULT 'PENDING';
ALTER TABLE identity.client_installation
ALTER COLUMN registered_at SET NOT NULL;
ALTER TABLE identity.client_installation
ALTER COLUMN registered_at SET DEFAULT now();
DO $migration$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'fk_identity_installation_tenant_license'
AND conrelid = 'identity.client_installation'::regclass) THEN
ALTER TABLE identity.client_installation
ADD CONSTRAINT fk_identity_installation_tenant_license
FOREIGN KEY (tenant_id, license_id)
REFERENCES identity.client_license (tenant_id, license_id)
NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'ck_identity_installation_status'
AND conrelid = 'identity.client_installation'::regclass) THEN
ALTER TABLE identity.client_installation
ADD CONSTRAINT ck_identity_installation_status
CHECK (status IN (
'PENDING', 'ACTIVE', 'SUSPENDED', 'DECOMMISSIONED', 'REVOKED', 'FAILED'
)) NOT VALID;
END IF;
IF NOT EXISTS (
SELECT 1 FROM pg_constraint
WHERE conname = 'ck_identity_installation_retirement'
AND conrelid = 'identity.client_installation'::regclass) THEN
ALTER TABLE identity.client_installation
ADD CONSTRAINT ck_identity_installation_retirement
CHECK (
(status NOT IN ('DECOMMISSIONED', 'REVOKED')
AND retired_at IS NULL)
OR
(status IN ('DECOMMISSIONED', 'REVOKED')
AND retired_at IS NOT NULL
AND retirement_reason IS NOT NULL)
) NOT VALID;
END IF;
END
$migration$;
ALTER TABLE identity.client_installation
VALIDATE CONSTRAINT fk_identity_installation_tenant_license;
ALTER TABLE identity.client_installation
VALIDATE CONSTRAINT ck_identity_installation_status;
ALTER TABLE identity.client_installation
VALIDATE CONSTRAINT ck_identity_installation_retirement;
CREATE UNIQUE INDEX IF NOT EXISTS uq_identity_installation_uuid
ON identity.client_installation (installation_uuid);
CREATE INDEX IF NOT EXISTS ix_identity_installation_capacity
ON identity.client_installation (tenant_id, license_id, status)
WHERE status IN ('PENDING', 'ACTIVE', 'SUSPENDED');
CREATE TABLE IF NOT EXISTS identity.license_activation_key (
activation_key_id uuid PRIMARY KEY,
registration_id uuid NOT NULL,
tenant_id uuid NOT NULL,
license_id uuid NOT NULL,
key_hash character varying(255) NOT NULL,
key_hint character varying(16) NOT NULL,
status character varying(20) NOT NULL DEFAULT 'ACTIVE',
expires_at timestamp with time zone,
failed_attempts integer NOT NULL DEFAULT 0,
maximum_attempts integer NOT NULL DEFAULT 10,
locked_until timestamp with time zone,
created_at timestamp with time zone NOT NULL DEFAULT now(),
last_used_at timestamp with time zone,
created_by character varying(120) NOT NULL,
revoked_at timestamp with time zone,
revoked_by character varying(120),
revocation_reason character varying(500),
CONSTRAINT fk_identity_activation_key_registration
FOREIGN KEY (registration_id)
REFERENCES identity.client_registration_details (registration_id),
CONSTRAINT fk_identity_activation_key_registration_tenant
FOREIGN KEY (registration_id, tenant_id)
REFERENCES identity.client_account (registration_id, tenant_id),
CONSTRAINT fk_identity_activation_key_tenant_license
FOREIGN KEY (tenant_id, license_id)
REFERENCES identity.client_license (tenant_id, license_id),
CONSTRAINT uq_identity_activation_key_hash UNIQUE (key_hash),
CONSTRAINT ck_identity_activation_key_status
CHECK (status IN ('ACTIVE', 'LOCKED', 'REVOKED', 'EXPIRED')),
CONSTRAINT ck_identity_activation_key_attempts
CHECK (failed_attempts >= 0
AND maximum_attempts > 0
AND failed_attempts <= maximum_attempts),
CONSTRAINT ck_identity_activation_key_revocation
CHECK ((status <> 'REVOKED' AND revoked_at IS NULL)
OR (status = 'REVOKED'
AND revoked_at IS NOT NULL
AND revocation_reason IS NOT NULL))
);
CREATE INDEX IF NOT EXISTS ix_identity_activation_key_validation
ON identity.license_activation_key
(registration_id, tenant_id, license_id, status, expires_at);
CREATE TABLE IF NOT EXISTS identity.installation_activation_session (
activation_session_id uuid PRIMARY KEY,
activation_key_id uuid NOT NULL,
registration_id uuid NOT NULL,
tenant_id uuid NOT NULL,
license_id uuid NOT NULL,
installation_uuid uuid NOT NULL,
token_hash character varying(255) NOT NULL,
status character varying(20) NOT NULL DEFAULT 'PENDING',
expires_at timestamp with time zone NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT now(),
consumed_at timestamp with time zone,
source_ip inet,
installer_version character varying(40),
CONSTRAINT fk_identity_activation_session_key
FOREIGN KEY (activation_key_id)
REFERENCES identity.license_activation_key (activation_key_id),
CONSTRAINT fk_identity_activation_session_registration
FOREIGN KEY (registration_id)
REFERENCES identity.client_registration_details (registration_id),
CONSTRAINT fk_identity_activation_session_registration_tenant
FOREIGN KEY (registration_id, tenant_id)
REFERENCES identity.client_account (registration_id, tenant_id),
CONSTRAINT fk_identity_activation_session_tenant_license
FOREIGN KEY (tenant_id, license_id)
REFERENCES identity.client_license (tenant_id, license_id),
CONSTRAINT uq_identity_activation_session_token UNIQUE (token_hash),
CONSTRAINT uq_identity_activation_session_uuid UNIQUE (installation_uuid),
CONSTRAINT ck_identity_activation_session_status
CHECK (status IN ('PENDING', 'CONSUMED', 'EXPIRED', 'REVOKED')),
CONSTRAINT ck_identity_activation_session_period
CHECK (expires_at > created_at),
CONSTRAINT ck_identity_activation_session_consumed
CHECK ((status <> 'CONSUMED' AND consumed_at IS NULL)
OR (status = 'CONSUMED' AND consumed_at IS NOT NULL))
);
CREATE INDEX IF NOT EXISTS ix_identity_activation_session_pending
ON identity.installation_activation_session (tenant_id, expires_at)
WHERE status = 'PENDING';
CREATE TABLE IF NOT EXISTS identity.installation_audit_event (
audit_event_id uuid PRIMARY KEY,
registration_id uuid NOT NULL,
tenant_id uuid NOT NULL,
license_id uuid,
installation_id uuid,
event_type character varying(50) NOT NULL,
actor_type character varying(30) NOT NULL,
actor_id character varying(160) NOT NULL,
reason character varying(500),
event_data jsonb NOT NULL DEFAULT '{}'::jsonb,
occurred_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT fk_identity_installation_audit_registration
FOREIGN KEY (registration_id)
REFERENCES identity.client_registration_details (registration_id),
CONSTRAINT fk_identity_installation_audit_registration_tenant
FOREIGN KEY (registration_id, tenant_id)
REFERENCES identity.client_account (registration_id, tenant_id),
CONSTRAINT fk_identity_installation_audit_tenant_license
FOREIGN KEY (tenant_id, license_id)
REFERENCES identity.client_license (tenant_id, license_id),
CONSTRAINT fk_identity_installation_audit_installation
FOREIGN KEY (installation_id)
REFERENCES identity.client_installation (installation_id),
CONSTRAINT ck_identity_installation_audit_actor
CHECK (actor_type IN ('ADMIN', 'INSTALLER', 'SYSTEM', 'CLIENT'))
);
CREATE INDEX IF NOT EXISTS ix_identity_installation_audit_tenant_time
ON identity.installation_audit_event (tenant_id, occurred_at DESC);
CREATE INDEX IF NOT EXISTS ix_identity_installation_audit_installation_time
ON identity.installation_audit_event (installation_id, occurred_at DESC)
WHERE installation_id IS NOT NULL;
COMMIT;

View File

@@ -1,3 +0,0 @@
artifactId=cygnus-cloud-service
groupId=com.cygnus
version=1.0.0-SNAPSHOT

View File

@@ -1,79 +0,0 @@
com/cygnus/cloud/tenant/repository/InstallationActivationRepository.class
com/cygnus/cloud/security/JwtReplayProtectionService.class
com/cygnus/cloud/tenant/service/LicenseKeyException.class
com/cygnus/cloud/security/TokenResponse.class
com/cygnus/cloud/identity/api/IdentityErrorHandler.class
com/cygnus/cloud/security/MachineTokenController.class
com/cygnus/cloud/tenant/api/InstallationRegistrationRequest.class
com/cygnus/cloud/database/ReactiveDatabaseClient.class
com/cygnus/cloud/tenant/repository/TenantRegistrationRepository.class
com/cygnus/cloud/tenant/service/InstallationActivationException.class
com/cygnus/cloud/tenant/api/IssueLicenseKeyRequest.class
com/cygnus/cloud/tenant/repository/InstallationLifecycleRepository.class
com/cygnus/cloud/identity/api/EncryptedLoginRequest.class
com/cygnus/cloud/security/AccessTokenIssuer.class
com/cygnus/cloud/tenant/model/IssuedLicenseKey.class
com/cygnus/cloud/tenant/api/ActivationValidationRequest.class
com/cygnus/cloud/security/MachineTokenErrorHandler.class
com/cygnus/cloud/tenant/api/InstallationActivationController.class
com/cygnus/cloud/tenant/service/ActivationRateLimiter.class
com/cygnus/cloud/security/MachineClientPrincipal.class
com/cygnus/cloud/security/CommunicationSecurityProperties.class
com/cygnus/cloud/tenant/api/RetireInstallationRequest.class
com/cygnus/cloud/tenant/model/ClientStatus.class
com/cygnus/cloud/system/SystemConfiguration.class
com/cygnus/cloud/tenant/service/InstallationActivationService.class
com/cygnus/cloud/security/MachineAuthenticationException.class
com/cygnus/cloud/tenant/service/ActivationRateLimitException.class
com/cygnus/cloud/tenant/model/RegisteredInstallation.class
com/cygnus/cloud/tenant/repository/ClientAdministrationRepository.class
com/cygnus/cloud/database/VertxDatabaseConfiguration.class
com/cygnus/cloud/identity/repository/IdentityRepository.class
com/cygnus/cloud/tenant/model/ActivationKeyStatus.class
com/cygnus/cloud/identity/service/LegacyPasswordVerifier.class
com/cygnus/cloud/tenant/api/CreateTenantRequest.class
com/cygnus/cloud/tenant/repository/InstallationActivationRepository$RegistrationContext.class
com/cygnus/cloud/tenant/model/LicenseActivationContext.class
com/cygnus/cloud/identity/model/MenuItem.class
com/cygnus/cloud/identity/model/AuthenticatedIdentity.class
com/cygnus/cloud/identity/api/CloudLoginController.class
com/cygnus/cloud/security/ClientAssertionValidator.class
com/cygnus/cloud/tenant/api/ClientAdministrationController.class
com/cygnus/cloud/identity/model/IdentityUser.class
com/cygnus/cloud/identity/repository/IdentityRowMapper.class
com/cygnus/cloud/tenant/repository/LicenseActivationRepository.class
com/cygnus/cloud/cache/CacheProperties.class
com/cygnus/cloud/tenant/api/InstallationActivationErrorHandler.class
com/cygnus/cloud/identity/service/AuthenticationException.class
com/cygnus/cloud/security/AudienceValidator.class
com/cygnus/cloud/tenant/model/LicenseStatus.class
com/cygnus/cloud/security/MachineSecurityConfigurationValidator.class
com/cygnus/cloud/tenant/service/LicenseKeyService.class
com/cygnus/cloud/tenant/model/ClientAccount.class
com/cygnus/cloud/tenant/service/RegistrationEmailService.class
com/cygnus/cloud/identity/api/LoginEncryptionProperties.class
com/cygnus/cloud/identity/service/LoginRequestReplayService.class
com/cygnus/cloud/tenant/service/TenantRegistrationService.class
com/cygnus/cloud/identity/service/IdentityAuthenticationService.class
com/cygnus/cloud/tenant/model/ClientInstallation.class
com/cygnus/cloud/tenant/api/ActivationValidationResponse.class
com/cygnus/cloud/tenant/model/ClientLicense.class
com/cygnus/cloud/tenant/model/ClientRegistration.class
com/cygnus/cloud/system/SystemInfoResponse.class
com/cygnus/cloud/tenant/api/CreateLicenseRequest.class
com/cygnus/cloud/identity/api/LoginPayload.class
com/cygnus/cloud/tenant/service/InstallationCodeConflictException.class
com/cygnus/cloud/tenant/model/LicenseDeliveryDetails.class
com/cygnus/cloud/security/PemKeyLoader.class
com/cygnus/cloud/tenant/model/LicenseActivationKey.class
com/cygnus/cloud/security/CloudSecurityConfiguration.class
com/cygnus/cloud/tenant/model/ActivationSession.class
com/cygnus/cloud/tenant/model/RegistrationStatus.class
com/cygnus/cloud/system/SystemInfoController.class
com/cygnus/cloud/CygnusCloudServiceApplication.class
com/cygnus/cloud/cache/ReactiveCacheService.class
com/cygnus/cloud/tenant/model/InstallationLifecycleResult.class
com/cygnus/cloud/tenant/service/InstallationLifecycleService.class
com/cygnus/cloud/tenant/api/CreateClientRegistrationRequest.class
com/cygnus/cloud/identity/api/RsaLoginPayloadDecryptor.class
com/cygnus/cloud/database/DatabaseProperties.class

View File

@@ -1,78 +0,0 @@
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/CygnusCloudServiceApplication.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/cache/CacheProperties.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/cache/ReactiveCacheService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/database/DatabaseProperties.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/database/ReactiveDatabaseClient.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/database/VertxDatabaseConfiguration.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/CloudLoginController.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/EncryptedLoginRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/IdentityErrorHandler.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/LoginEncryptionProperties.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/LoginPayload.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/api/RsaLoginPayloadDecryptor.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/model/AuthenticatedIdentity.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/model/IdentityUser.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/model/MenuItem.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/repository/IdentityRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/repository/IdentityRowMapper.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/service/AuthenticationException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/service/IdentityAuthenticationService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/service/LegacyPasswordVerifier.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/identity/service/LoginRequestReplayService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/AccessTokenIssuer.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/AudienceValidator.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/ClientAssertionValidator.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/CloudSecurityConfiguration.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/CommunicationSecurityProperties.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/JwtReplayProtectionService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/MachineAuthenticationException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/MachineClientPrincipal.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/MachineSecurityConfigurationValidator.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/MachineTokenController.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/MachineTokenErrorHandler.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/PemKeyLoader.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/security/TokenResponse.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/system/SystemConfiguration.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/system/SystemInfoController.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/system/SystemInfoResponse.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/ActivationValidationRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/ActivationValidationResponse.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/ClientAdministrationController.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/CreateClientRegistrationRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/CreateLicenseRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/CreateTenantRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/InstallationActivationController.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/InstallationActivationErrorHandler.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/InstallationRegistrationRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/IssueLicenseKeyRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/api/RetireInstallationRequest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ActivationKeyStatus.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ActivationSession.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ClientAccount.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ClientInstallation.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ClientLicense.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ClientRegistration.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/ClientStatus.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/InstallationLifecycleResult.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/IssuedLicenseKey.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/LicenseActivationContext.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/LicenseActivationKey.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/LicenseDeliveryDetails.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/LicenseStatus.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/RegisteredInstallation.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/model/RegistrationStatus.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/repository/ClientAdministrationRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/repository/InstallationActivationRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/repository/InstallationLifecycleRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/repository/LicenseActivationRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/repository/TenantRegistrationRepository.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/ActivationRateLimitException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/ActivationRateLimiter.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/InstallationActivationException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/InstallationActivationService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/InstallationCodeConflictException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/InstallationLifecycleService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/LicenseKeyException.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/LicenseKeyService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/RegistrationEmailService.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/main/java/com/cygnus/cloud/tenant/service/TenantRegistrationService.java

View File

@@ -1,13 +0,0 @@
com/cygnus/cloud/tenant/repository/InstallationActivationRepositoryTest.class
com/cygnus/cloud/tenant/service/TenantRegistrationServiceTest.class
com/cygnus/cloud/tenant/repository/LicenseActivationRepositoryTest.class
com/cygnus/cloud/tenant/service/RegistrationEmailServiceTest.class
com/cygnus/cloud/tenant/service/LicenseKeyServiceTest.class
com/cygnus/cloud/InfrastructureConfigurationTest.class
com/cygnus/cloud/tenant/model/ClientLicenseTest.class
com/cygnus/cloud/system/SystemInfoControllerTest$FixedClockConfiguration.class
com/cygnus/cloud/tenant/service/ActivationRateLimiterTest.class
com/cygnus/cloud/identity/service/IdentityAuthenticationServiceTest.class
com/cygnus/cloud/system/SystemInfoControllerTest.class
com/cygnus/cloud/identity/service/LegacyPasswordVerifierTest.class
com/cygnus/cloud/security/MachineTokenFlowTest.class

View File

@@ -1,12 +0,0 @@
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/InfrastructureConfigurationTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/identity/service/IdentityAuthenticationServiceTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/identity/service/LegacyPasswordVerifierTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/security/MachineTokenFlowTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/system/SystemInfoControllerTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/model/ClientLicenseTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/repository/InstallationActivationRepositoryTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/repository/LicenseActivationRepositoryTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/service/ActivationRateLimiterTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/service/LicenseKeyServiceTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/service/RegistrationEmailServiceTest.java
/Users/maddy/Projects/cygnus/matrix/cygnus-cloud-service/src/test/java/com/cygnus/cloud/tenant/service/TenantRegistrationServiceTest.java