Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
05c7942
DB-changes:
Imat00 Nov 4, 2025
6afb595
changes DB2 - ToDo Hasura metadata Relationship bypass
Imat00 Nov 4, 2025
40882dd
update: Permissions in metadata for mgm_id in rule_metadata
Imat00 Nov 5, 2025
db5b115
Merge remote-tracking branch 'Cactus/importer-rework' into feature/im…
Imat00 Nov 5, 2025
943770f
update foreign key on mgm_id
Imat00 Nov 5, 2025
30e3a71
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 5, 2025
23b558f
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 6, 2025
e57a0f0
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 6, 2025
cd5aa61
rule_metadata fk for mgm_id on management.mgm_id ON DELETE CASCADE
Imat00 Nov 6, 2025
34706af
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 6, 2025
c4d62a9
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 10, 2025
89acd60
Fix check: ensure rule_uid does not exist across multiple mgm_id
Imat00 Nov 10, 2025
825ce57
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 10, 2025
fc9c699
wop
Imat00 Nov 11, 2025
af258b3
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 11, 2025
935ead3
update - upgrade script 9.0 - mgm_id check do not import
Imat00 Nov 11, 2025
5d4b1db
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 11, 2025
903a622
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 11, 2025
b3d600f
add Exceptions with list:
Imat00 Nov 12, 2025
98bcb31
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 12, 2025
be9a76f
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 12, 2025
3401877
removed one closing if - mistake
Imat00 Nov 12, 2025
b082891
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 12, 2025
00cd52f
now ALL multi mgm_id(s) with do_not_import=true (or other missmatches…
Imat00 Nov 12, 2025
e866e5b
Merge branch 'importer-rework' into feature/importer-rework-rule_meta…
Imat00 Nov 12, 2025
1e4eed9
Merge branch 'feature/importer-rework-rule_metadataEnhance' of https:…
Imat00 Nov 12, 2025
c741718
Exception type compare wrong
Imat00 Nov 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions roles/api/files/replace_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -8836,6 +8836,18 @@
}
}
},
{
"name": "rule_metadata",
"using": {
"foreign_key_constraint_on": {
"column": "mgm_id",
"table": {
"name": "rule_metadata",
"schema": "public"
}
}
}
},
{
"name": "rule_nwobj_resolveds",
"using": {
Expand Down Expand Up @@ -15849,6 +15861,12 @@
"schema": "public"
},
"object_relationships": [
{
"name": "management",
"using": {
"foreign_key_constraint_on": "mgm_id"
}
},
{
"name": "uiuser",
"using": {
Expand Down Expand Up @@ -15907,6 +15925,7 @@
"check": {},
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -15932,6 +15951,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -15957,6 +15977,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -15982,6 +16003,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -16007,6 +16029,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -16032,6 +16055,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -16057,6 +16081,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -16082,6 +16107,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand All @@ -16107,6 +16133,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand Down Expand Up @@ -16134,6 +16161,7 @@
"permission": {
"columns": [
"last_change_admin",
"mgm_id",
"rule_created",
"rule_decert_date",
"rule_first_hit",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Alter Table "rule" ADD Constraint "rule_unique_mgm_id_rule_uid_rule_create_xlate
-- Alter Table "rule_metadata" add Constraint "rule_metadata_alt_key" UNIQUE ("rule_uid","dev_id");
-- Alter Table "rule_metadata" add Constraint "rule_metadata_alt_key" UNIQUE ("rule_uid","dev_id","rulebase_id");
ALTER TABLE rule_metadata ADD Constraint "rule_metadata_rule_uid_unique" unique ("rule_uid");
ALTER TABLE rule_metadata ADD CONSTRAINT rule_metadata_mgm_id_rule_uid_unique UNIQUE (mgm_id, rule_uid);
Alter table "rulebase" add CONSTRAINT unique_rulebase_mgm_id_uid UNIQUE ("mgm_id", "uid");
Alter table "rulebase_link" add CONSTRAINT unique_rulebase_link
UNIQUE (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@ Alter table "rule_metadata" add constraint "rule_metadata_rule_last_certifier_ui
foreign key ("rule_last_certifier") references "uiuser" ("uiuser_id") on update restrict on delete cascade;
Alter table "rule_metadata" add constraint "rule_metadata_rule_owner_uiuser_uiuser_id_f_key"
foreign key ("rule_owner") references "uiuser" ("uiuser_id") on update restrict on delete cascade;
ALTER TABLE rule_metadata ADD CONSTRAINT rule_metadata_mgm_id_management_id_fk FOREIGN KEY (mgm_id) REFERENCES management(mgm_id)
ON update restrict on delete cascade;

Alter table "rule_enforced_on_gateway" add CONSTRAINT fk_rule_enforced_on_gateway_rule_rule_id foreign key ("rule_id") references "rule" ("rule_id") on update restrict on delete cascade;
Alter table "rule_enforced_on_gateway" add CONSTRAINT fk_rule_enforced_on_gateway_device_dev_id foreign key ("dev_id") references "device" ("dev_id") on update restrict on delete cascade;
Expand Down
1 change: 1 addition & 0 deletions roles/database/files/sql/creation/fworch-create-tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ Create table "rule_metadata"
(
"rule_metadata_id" BIGSERIAL,
"rule_uid" Text NOT NULL,
"mgm_id" Integer NOT NULL,
"rule_created" Timestamp NOT NULL Default now(),
"rule_last_modified" Timestamp NOT NULL Default now(),
"rule_first_hit" Timestamp,
Expand Down
77 changes: 76 additions & 1 deletion roles/database/files/upgrade/9.0.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1652,4 +1652,79 @@ insert into stm_dev_typ (dev_typ_id,dev_typ_name,dev_typ_version,dev_typ_manufac

insert into stm_dev_typ (dev_typ_id,dev_typ_name,dev_typ_version,dev_typ_manufacturer,dev_typ_predef_svc,dev_typ_is_multi_mgmt,dev_typ_is_mgmt,is_pure_routing_device)
VALUES (29,'Cisco Asa on FirePower','9','Cisco','',false,true,false)
ON CONFLICT (dev_typ_id) DO NOTHING;
ON CONFLICT (dev_typ_id) DO NOTHING;



-- rule_metadata add mgm_id + fk, drop constraint
ALTER TABLE rule_metadata ADD COLUMN IF NOT EXISTS mgm_id Integer;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'rule_metadata_mgm_id_management_id_fk'
) THEN
ALTER TABLE rule_metadata
ADD CONSTRAINT rule_metadata_mgm_id_management_id_fk
FOREIGN KEY (mgm_id) REFERENCES management(mgm_id)
ON UPDATE RESTRICT; --ON DELETE CASCADE;
END IF;
END$$;



-- mgm_id in rule_metadata updaten - from rule.rule_uid == rule_metadata.rule_uid
DO $$
BEGIN
-- Check for duplicate combinations of mgm_id + rule_uid
IF EXISTS (
SELECT 1
FROM rule_metadata rm
JOIN rule r ON rm.rule_uid = r.rule_uid
GROUP BY r.mgm_id, rm.rule_uid
HAVING COUNT(*) > 1
) THEN
RAISE EXCEPTION 'Duplicate mgm_id + rule_uid combinations detected!';
ELSE
-- Check whether all rule_metadata.rule_uid have a matching entry in rule.
IF EXISTS (
SELECT 1
FROM rule_metadata rm
LEFT JOIN rule r ON rm.rule_uid = r.rule_uid
WHERE r.rule_uid IS NULL
) THEN
RAISE EXCEPTION 'Some rule_metadata.rule_uid have no matching rule!';
ELSE
ALTER TABLE rule DROP CONSTRAINT IF EXISTS rule_metadatum;
ALTER TABLE rule DROP CONSTRAINT IF EXISTS rule_rule_metadata_rule_uid_f_key; -- blocks drop unique from rule_metadata.rule_uid
ALTER TABLE rule_metadata DROP CONSTRAINT IF EXISTS rule_metadata_rule_uid_unique;

-- Update mgm_id in rule_medata from rule.mgm_id if rule_metadata. rule_uid == rule.rule_uid
UPDATE rule_metadata rm
SET mgm_id = r.mgm_id
FROM rule r
WHERE rm.rule_uid = r.rule_uid
AND rm.mgm_id IS NULL;

ALTER TABLE rule_metadata ALTER COLUMN mgm_id SET NOT NULL;
ALTER TABLE rule_metadata ADD CONSTRAINT rule_metadata_rule_uid_unique UNIQUE(rule_uid);
ALTER TABLE rule ADD CONSTRAINT rule_rule_metadata_rule_uid_f_key
FOREIGN KEY (rule_uid) REFERENCES rule_metadata (rule_uid);

-- combination (mgm_id + rule_uid) unique

IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'rule_metadata_mgm_id_rule_uid_unique'
) THEN
ALTER TABLE rule_metadata ADD CONSTRAINT rule_metadata_mgm_id_rule_uid_unique UNIQUE (mgm_id, rule_uid);
END IF;

END IF;
END IF;
END$$;



Loading