diff --git a/.artifacts/resources-global-operating-systems-closure/closure-results.json b/.artifacts/resources-global-operating-systems-closure/closure-results.json new file mode 100644 index 00000000..eb7be142 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/closure-results.json @@ -0,0 +1,225 @@ +{ + "results": [ + { + "id": "B3", + "result": "pass: two persisted evolutions; legacy root and two revisions unchanged" + }, + { + "id": "DB-SO-01", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-02", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-03", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-04", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-05", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-06", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-07", + "result": "pass", + "http": [ + 201, + 200 + ] + }, + { + "id": "DB-SO-08", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-09", + "result": "pass", + "http": [ + 404 + ] + }, + { + "id": "DB-SO-10", + "result": "pass", + "http": [ + 404 + ] + }, + { + "id": "DB-SO-11", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-12", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-13", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-14", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-15", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-16", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-17", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-18", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-19", + "result": "pass: stock accepted; copied/support/SMB/access/certificate/license rejected", + "http": [ + 201, + 409 + ] + }, + { + "id": "DB-SO-20", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "C1", + "result": "pass: observed InnoDB catalog wait; one equivalent persisted", + "http": [ + 201, + 409 + ] + }, + { + "id": "C2", + "result": "pass: deactivation first, waiting installation rejected", + "http": [ + 200, + 409 + ] + }, + { + "id": "C3", + "result": "pass: commercial identity fixed; exactly one optimistic admin update", + "http": [ + 409, + 201, + 200, + 409 + ] + }, + { + "id": "C4a", + "result": "pass: rollback of root/values/revisions, same creation UUID retry succeeds", + "http": [ + 500, + 201 + ] + }, + { + "id": "C4b", + "result": "pass: no partial installation or orphan revision; Resource unchanged", + "http": [ + 500 + ] + }, + { + "id": "D", + "result": "pass: exact capabilities v2, v3 OS, incompatible reads and unauthorized writes rejected", + "http": [ + 200, + 409, + 400, + 403 + ] + }, + { + "id": "F", + "result": "pass: all six gates closed; read/history/removal preserved", + "http": [ + 200, + 409 + ] + } + ], + "databaseCases": 20, + "companies": 15, + "principal": { + "people": 50, + "assets": 50, + "workstations": 50, + "profiles": 50, + "resourcesAtLeast": 53 + }, + "orphanRevisions": 0, + "semanticSqlUnique": false, + "productionActivated": false +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-closure/commands.json b/.artifacts/resources-global-operating-systems-closure/commands.json new file mode 100644 index 00000000..e6ea2b03 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/commands.json @@ -0,0 +1,4 @@ +{ + "integration": 0, + "regressions": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/integration.log b/.artifacts/resources-global-operating-systems-closure/integration.log new file mode 100644 index 00000000..2d1a2959 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/integration.log @@ -0,0 +1,38 @@ +▶ Cierre SO: matriz DB-SO, evolución, integridad y concurrencia real + ✔ B3 — evolución SQL doble conserva campos, valores, personalizaciones y revisiones (0.701606ms) + ✔ DB-SO-01 crear SO global (42.871762ms) + ✔ DB-SO-02 crear aplicación global mantiene su tipo (42.436359ms) + ✔ DB-SO-03 licencia global rechazada sin raíz persistida (21.908985ms) + ✔ DB-SO-04 instalación válida desde A (121.539228ms) + ✔ DB-SO-05 mismo producto desde B, instalación y licencia independientes (162.366074ms) + ✔ DB-SO-06 dos activos de A usan el mismo SO global (315.915072ms) + ✔ DB-SO-07 particulares y globales equivalentes conservan UUID e instalaciones (137.643465ms) + ✔ DB-SO-08 licencia de A válida y particular (117.865997ms) + ✔ DB-SO-09 licencia de A no puede vincularse desde B (157.376231ms) + ✔ DB-SO-10 SO excluido de ApplicationConfiguration (126.53987ms) + ✔ DB-SO-11 desactivar conserva instalaciones usadas (50.935631ms) + ✔ DB-SO-12 inactivo bloquea nueva instalación (108.274915ms) + ✔ DB-SO-13 historial y resolver conservan SO inactivo (29.59105ms) + ✔ DB-SO-14 versión instalada genera revisión sin cambiar producto (365.216789ms) + ✔ DB-SO-15 destino de instalación inmutable (223.936693ms) + ✔ DB-SO-16 retirada de instalación de producto inactivo (570.283255ms) + ✔ DB-SO-17 replay de creación no duplica ni reactiva (33.73864ms) + ✔ DB-SO-18 activar/desactivar preserva UUID, historial y referencias (177.183762ms) + ✔ DB-SO-19 solo stock: copia y otros tipos no adquieren globalidad (315.072142ms) + ✔ DB-SO-20 particular anterior incompleto sigue siendo editable y local (145.260533ms) + ✔ C1 — equivalentes concurrentes esperan el lock de catálogo y solo uno persiste (230.848842ms) + ✔ C2 — desactivación confirma primero y asociación revalida después de esperar (468.860536ms) + ✔ C3 — identidad, instalación, metadatos y desactivación concurrentes (288.411751ms) + ✔ C4a — fallo tras escribir raíz global revierte raíz, características y revisiones (76.707246ms) + ✔ C4b — fallo en revisión de instalación revierte instalación completa (146.788844ms) + ✔ D — contratos v2/v3, propósito, capabilities y autorización (248.643069ms) + ✔ F — cerrar gates conserva lectura, historial y retirada legítima (1726.083172ms) +✔ Cierre SO: matriz DB-SO, evolución, integridad y concurrencia real (47759.450137ms) +ℹ tests 29 +ℹ suites 0 +ℹ pass 29 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 49098.971929 diff --git a/.artifacts/resources-global-operating-systems-closure/legacy-evolution.json b/.artifacts/resources-global-operating-systems-closure/legacy-evolution.json new file mode 100644 index 00000000..f8bab7b9 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/legacy-evolution.json @@ -0,0 +1,101 @@ +{ + "resourceId": "01a174ef-6735-710e-91a9-8bca64fef0dc", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "originalBindings": [ + { + "id": "01a174ee-f269-72eb-9e8e-de87e373415b", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f266-714f-ab98-ef87f8982b5f", + "required": 0, + "position": 0, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-ee01d44d287d", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-91610b309fd2", + "required": 0, + "position": 1, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-f37d9579e79c", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-6fbf417e65f2", + "required": 0, + "position": 2, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-66ee-7763-8065-815a5c68b2cf", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-66ae-77ec-8d19-1ef89cb4745c", + "required": 0, + "position": 3, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + } + ], + "evolvedBindings": [ + { + "id": "01a174ee-f269-72eb-9e8e-de87e373415b", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f266-714f-ab98-ef87f8982b5f", + "required": 0, + "position": 0, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-ee01d44d287d", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-91610b309fd2", + "required": 0, + "position": 1, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-f37d9579e79c", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-6fbf417e65f2", + "required": 0, + "position": 2, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-66ee-7763-8065-815a5c68b2cf", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-66ae-77ec-8d19-1ef89cb4745c", + "required": 0, + "position": 3, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-6805-739a-8977-95d3221286d2", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-b10560610789", + "required": 0, + "position": 4, + "sectionId": null + }, + { + "id": "01a174ef-6805-739a-8977-99e426769780", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-b4deee355760", + "required": 0, + "position": 5, + "sectionId": null + }, + { + "id": "01a174ef-6805-739a-8977-9d7c602e1672", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-bb5123934ce6", + "required": 0, + "position": 6, + "sectionId": null + } + ], + "originalResourcesUnchanged": true, + "revisionsPreserved": 2, + "evolutionRuns": 2, + "customizationPreserved": true, + "availabilityPreserved": true +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-closure/manifest.json b/.artifacts/resources-global-operating-systems-closure/manifest.json new file mode 100644 index 00000000..5abdf32f --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/manifest.json @@ -0,0 +1,202 @@ +{ + "date": "2026-10-25T20:00:24.598547+00:00", + "head": "d2bf856c973419277f0b30f6437242cd82f7d720", + "node": "v24.20.0", + "pnpm": "11.25.0", + "technical": [ + { + "command": "pnpm --filter @metis/resources test (loopback permitido)", + "exitCode": 0, + "log": "technical/resources-test.log" + }, + { + "command": "script test Companies con --test-isolation=none", + "exitCode": 1, + "log": "technical/companies-detailed.log" + }, + { + "command": "pnpm --filter @metis/assets test", + "exitCode": 0, + "log": "technical/assets-test.log" + }, + { + "command": "pnpm --filter @metis/web test", + "exitCode": 0, + "log": "technical/web-test.log" + }, + { + "command": "pnpm build", + "exitCode": 0, + "log": "technical/build.log" + }, + { + "command": "pnpm typecheck", + "exitCode": 2, + "log": "technical/root-typecheck.log" + }, + { + "command": "pnpm lint", + "exitCode": 1, + "log": "technical/lint.log" + }, + { + "command": "pnpm check", + "exitCode": 1, + "log": "technical/check.log" + }, + { + "command": "Biome de dos TS nuevos y package.json", + "exitCode": 0, + "log": "technical/own-biome.log" + }, + { + "command": "ESLint de dos TS nuevos", + "exitCode": 0, + "log": "technical/own-eslint.log" + }, + { + "command": "pnpm --filter @metis/resources typecheck", + "exitCode": 0, + "log": "technical/resources-types.log" + }, + { + "command": "pnpm --filter @metis/companies typecheck", + "exitCode": 0, + "log": "technical/companies-types.log" + }, + { + "command": "pnpm --filter @metis/assets typecheck", + "exitCode": 0, + "log": "technical/assets-types.log" + }, + { + "command": "pnpm --filter @metis/web typecheck", + "exitCode": 0, + "log": "technical/web-types.log" + }, + { + "command": "pnpm --filter @metis/server typecheck", + "exitCode": 0, + "log": "technical/server-types.log" + } + ], + "verdict": "NO-GO: current software panel regression; concurrent UI not visually verified; general baseline failures recorded separately", + "productionInspected": false, + "productionActivated": false, + "integration": { + "integration": 0, + "regressions": 0 + }, + "files": { + "closure-results.json": "cc1bf4d8d95066d2d26a3a311c2faa47ca1708e740a81b3f5add4885334d1ab0", + "commands.json": "3be89d419e1522940dca425372f8819cdccb2b105b51f52b47c3853f2b679797", + "integration.log": "4a52945c8c985e66a61ad1fc09f4326bf11f990b78e5a30975110562029309ee", + "legacy-evolution.json": "b42063be117206f78ecf52337ad51713f141c6a8483fc3b1e77004b7aa63e5f8", + "migration-cli.log": "00b8b6468d8f1f12accbd3bda2ffb89b19026a4b79c54e2368e2f3e4b29e1511", + "previous-ui/global-os-asset-current-os.png": "04d91e8ac9d5c63e88825316722810c2c591590542217f7fa4634c2264b97f2d", + "previous-ui/global-os-create-review.png": "fa4a1819372f0cb9357448dbe997464197fe875efd8125bd65137d57811199e5", + "previous-ui/global-os-created-detail.png": "63cdbdabbee8250c4b12a9db2bc4af6514edc3e5af2c749d1ced508f15b6422f", + "previous-ui/global-os-empty.png": "4728d22812a5a35e869ec9d28e65411f8863686f9f2b9457b584bd7af7d749f1", + "previous-ui/global-os-english-form.png": "49739898c7d44891eaadf1bed78f3900c4f114b8bfbf82dba2e4b78edde5178c", + "previous-ui/global-os-identity-error.png": "861e3f4e75853c31d42cf29f363051fa3488ddb84f5fb90150d076f073b26370", + "previous-ui/global-os-installation-history-global-link.png": "b6ccad18e28276e2f2039ab424e90812b0fe2cdf4742842ad6ad6af536c174b7", + "previous-ui/global-os-list-dark-1024.png": "5246d3cde105d8922dd4e0bb8b677f7f24704864dffd6c0fa07bbcc0bd68dc62", + "previous-ui/global-os-list-dark-1280.png": "011defd978d3525a93664f795c9d3ececd0809eea62038d4e47e7435a372e1c9", + "previous-ui/global-os-list-dark-1600.png": "f67e198bb5af48beaaebd43f63c6daa9210befd69506b2be496e1a1d455fbb98", + "previous-ui/global-os-list-dark-320.png": "fc6c5f6f89914a863200082079e2af563ab9537fdf87201082d5ef4e5d14c101", + "previous-ui/global-os-list-dark-390.png": "3090626d0526ccaaa4b8b80ea0868dfe2451ee8644d498922e6ca11562609f38", + "previous-ui/global-os-list-dark-768.png": "02ce9944bdd51afd79aa8c98f82d4e718fd3ea488e41fc2d376cb219d2d5e0fa", + "previous-ui/global-os-list-error.png": "d9cf753aa3b8860682a384ce49cef16447df2e2e9201fe34e596e9d90a3e0c8f", + "previous-ui/global-os-list-light-1024.png": "73a89add6661dd90c360dce567cb23d088e132c4fce396648f272435903d60c6", + "previous-ui/global-os-list-light-1280.png": "7727d4a0339da4b2122a35f1fff5ac4814e16fcafc4485ddbca1a98a76ac2f40", + "previous-ui/global-os-list-light-1600.png": "36f901f92df98cb4c9b612c29c3a773a7144c439d79e7975294507f3d81ee153", + "previous-ui/global-os-list-light-320.png": "891cdc1875a12ed6275a2b4e69cdcd2a2a4aaf92a5922df9b17aa2ae6895412a", + "previous-ui/global-os-list-light-390.png": "42a0a2f27df0f17b2d117ef5709344bc0cba2cfc40fc6a04652673bac0d175d3", + "previous-ui/global-os-list-light-768.png": "54cee20c8cac78ef32e20ada33552829e3ea738b7f7791900ca013afeb97bf49", + "previous-ui/global-os-list-loading.png": "36a4f535a36e594587470d50b6c06a9eccf2bb937f49ff0ea329cd98f519f55a", + "previous-ui/global-os-mixed-picker.png": "1c4ac0eca0418d66934e44f21e383ddbdac26905857dbb666eb2bbe02cfdbd55", + "previous-ui/global-os-mobile-form.png": "a031175d5e23ecf7dffa3972a13f4b0341df633d481889d52a9ca3c0f6e1f130", + "previous-ui/global-os-no-results.png": "4c6169565fc8713e9dc2502c1d06c2f9cc7abf62d8495a8976fdcd3533c76049", + "previous-ui/global-os-ordinary-detail.png": "8c0aaed14ee140cc92d60163f93c7a8eb470209db3c016b44ebf8e8312008583", + "previous-ui/global-os-workplace-map-global-os.png": "88980eb4a4b94262b39b3c4a69b4775ccd9387b9159fe0a6ef191697125e2909", + "previous-ui/global-os-workstation-current-os.png": "e596d8f2a71ba738de182ff20caa7e2e454d2cb462be8ab64a1bd0a589b6c04e", + "previous-ui/report.json": "2def22f53cce8bc5ddb992326212862e52fd7247f489d249e3dbb03ca67376f2", + "previous-ui/verification.json": "42d9505c605ca1e4cd4ad489c08443080e572db21004a35a520a0d354ae52d17", + "regression-suites/operating-systems/commands.json": "e9ffa10814d008d45a9a071714ed0b1d7ce823e45eba51e4c1cf46c2fa4a9069", + "regression-suites/operating-systems/integration.log": "84ddf07ec6983a5597d405c63d87383c0230a5f7933beb78234d0c8e0a79cfb2", + "regression-suites/r2-3/commands.json": "e9ffa10814d008d45a9a071714ed0b1d7ce823e45eba51e4c1cf46c2fa4a9069", + "regression-suites/r2-3/integration.log": "88d3c5ab276672c6a61b8345b63fb79b4706400d8c30af2307364b7c8d912c7c", + "regression-suites/r2-4/commands.json": "e9ffa10814d008d45a9a071714ed0b1d7ce823e45eba51e4c1cf46c2fa4a9069", + "regression-suites/r2-4/integration.log": "41fefc09235f2f9a601e4ffc5ae08c6683963b527693b28b25d1ef572b0b128e", + "regression-suites/r2-5/commands.json": "e9ffa10814d008d45a9a071714ed0b1d7ce823e45eba51e4c1cf46c2fa4a9069", + "regression-suites/r2-5/integration.log": "8c464be40411fa321fb1347fef4883eace08eeced9249d53115a584d3f832d61", + "regression-suites/r2-6/commands.json": "e9ffa10814d008d45a9a071714ed0b1d7ce823e45eba51e4c1cf46c2fa4a9069", + "regression-suites/r2-6/integration.log": "11d069bcf8d6e4eabfba4dfe2994cc6f8dc4a1f4e8ada1b33b13a3a700400d6c", + "regressions.log": "d3b164d02c1fc7071f90217cd9ed3ab1de06ec4cb993a89ac7543f1862718bfc", + "schema.json": "00a5a6e6bdd2fc21d4a59b8113785ee9c7d193a840667690343c5c5fcd647296", + "technical/assets-test.log": "a927f4a908440e0e34f21989204f5cd304a089ee57322bcbf993066731a15786", + "technical/assets-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/build.log": "39e30833028fbeeb06ae6c8112ca1911b67d7abd297037b921a1af6f512fcddd", + "technical/catalog.log": "ad948787e9d0f4e695ef48bc905347d0eec64d0af9977688b608f92a9bf0f232", + "technical/check.log": "fb2d51a910873b8e65683a209859a656a692faa2b02f086b369b2d38c4c031bd", + "technical/coincidences.log": "80156ede41737decab73fa335d0cc71dbf320635a7ef52d9224423d4a001e43f", + "technical/companies-detailed.log": "f240c595ccd1644ec23498642b3bbbbd4c6d52a32aa938de653a65b575b4d8ea", + "technical/companies-test.log": "e76f8daf8260a806dc0156f9ecbffb0c89d8defbd1cddcd898f34defd37a6f11", + "technical/companies-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/format.log": "6384edeeb7751d4254d1ab27f266e7e8ceac4e0a9ffb3ca24991afd8befd1bf1", + "technical/integration-command.log": "f9cf09b1fcc7504596980256bb2212f868cc280ccaa32ecd3c992d5a2dfed978", + "technical/lint.log": "526cd60a21c4b920d57e42e87290ee571b7593ad38f761510c3af364996db83f", + "technical/operating-systems.log": "4b300dac9e217497dee2b8997daf579a09ecda2c0989c20b5a04cb12e6646238", + "technical/own-biome.log": "f6094bf816e08645c4872b737ea97d1ba6305444d3ec69d644bc57aefd365694", + "technical/own-eslint.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "technical/profiles.log": "405a6721a62e4269940fcf152c61f041ea98242bc7814f73ba55683a81cf6985", + "technical/resources-test.log": "af55b1421bab3a23bcacfe980bddcac0c209918570d49e60848d956dd9269fab", + "technical/resources-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/root-typecheck.log": "02e53ca53ee6f872901bf9445730fedf6b96633922faf92340295aef48978dbf", + "technical/server-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/software-component.log": "31569d75b6d29ff963a93b6c0147f38e548a7bcf2994258e532911642bd33362", + "technical/software.log": "a444d81ceb6565ac6db7f4c26f7946c4c48f07a5f999c7c3d9219ca0d830e9fa", + "technical/tests.log": "1822508b22736b1ae30036c2603829fba954429baba102758fe56ba5a9f09e07", + "technical/types.log": "e94314bb64c72174bcf3e71c89cb0fc5dff3584f5a3994e7f842628b34456348", + "technical/web-test.log": "885f89448030a9261d3ead27adc6d9e717efdbad2992ba6ae5e137c4d585b1a0", + "technical/web-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "working-tree-status.txt": "f0240942bcfd661a05b12384fb06b7369bc0fde11f9bedc7c4c3171684f04de3" + }, + "sourceFiles": { + "apps/server/src/global-operating-systems-closure.integration.test.ts": "771ccf735641dbd257569b4366f0ac70eb81d63cc729db2d5f4ed5e30358669a", + "apps/server/src/global-operating-systems-legacy.fixture.ts": "45f10913233b328f157bd1d0d098f04dc8176aa263f368f9d3a80de98f537a19", + "docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md": "5ad72a64a197220084ca4a792ff31c2a08d0c40c4d608c681a42712d24fb290d", + "docs/auditorias/workplace-node-actions/01-inventario-entidades-acciones.md": "e7b8bfa8902b16ff22bd18598d48bcdf9cafcf53298f48b8ada631c0f006a36b", + "docs/auditorias/workplace-node-actions/02-matriz-acciones.md": "5bfaf864392130853424363d1c8f8544ddfa06bc8ee7c8bef7fc67a1c1a6edbb", + "docs/auditorias/workplace-node-actions/03-contrato-ui.md": "7f0bfc95e6ec5e3a948a8cfe98e7ed733d2172d7e47138850974ecb78b84616f", + "docs/auditorias/workplace-node-actions/04-trazabilidad.md": "4ca33335e808103d36fa4990fc3a23cda3a1ce8fa9d1c7ae61dc8f1548f7a4d1", + "modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx": "757b575359249cb6ee3191449430e8087fbaeb118f46e3456486e530e691b65e", + "modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts": "71fef135cf5b273d38ae23372d4d81e06ea0586f11d75148af195d9eeef5732d", + "modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts": "12d0dab60c1aed5650e4f955273d4ec5d8f69478d5b5456b31b289b52f9e4449", + "modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts": "5311b5048bdba80cb616f048b570204f32c411b99d7c34246db3af337b43db34", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx": "301b38bfbaed11b6e25761751c276c4772b961d1c00fd4910a409e33eb057198", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts": "360617bc875971ddee5928405627866a0f37b2f8672555a8448a943d55961cc7", + "modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx": "76548ae75d060bf0556eb37cec8aa6984b8e976a93457311bb34e901a06c1b61", + "modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx": "6dcd900dad363eb354811c94b1b2851cfb11bc7014e05bb12912c8899535b0fd", + "modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx": "5212e4b69914b655219740feeae1ddbf2bb557a75211cf087c09142886df65a6", + "modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx": "de9356258ac418eb81d1b79a75cc91f465eb700341093f159c1b379bfca6a6f0", + "modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx": "d1653c1ea696c8ee371de56b11d96b087d0600f678098731cfd4d6a1cecf73a8", + "modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx": "004e54a1cc1386c4ca4a24773cd27fa867994e7a9348b249089a21b004de582c", + "docs/architecture/implementacion-catalogo-global-sistemas-operativos.md": "af1e11f352f954eaa4ff32825ff02f6852b99d47adc62403bb5725edc511a1cb", + "modules/assets/src/common/locales/en.json": "ea4529d517d5e64202a572eb812c68ac8f2a88816630793d6bc7bf1e9b0c27f6", + "modules/assets/src/common/locales/es.json": "0a36b2693a5cc69d7f5ae12d8b814b34d3d59e921678522f87b98317185b5aac", + "modules/assets/src/web/index.ts": "30a8c78828a2bad2707b129bb8c96c059915680a3e075618250fd0a2dcaf2332", + "modules/companies/package.json": "4ec1fae0055094934c42e4e72c21488094e7da124e2bcc73729eebaba88dc146", + "modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx": "2fed9ead7fceaddc4c4a17252ac43b3623b6a79af4ade3c9ca3c45aa1cc991df", + "modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx": "c5395ac32b2b1f8c63cd9eafceac04d7f595d4a36de681bcb7f1c3df1dc0db32", + "modules/companies/src/web/software-installations/shared/software.test.tsx": "d2c6b0430966a8d1ecc57ee47c5258815482e27136aa7510870f09ba6704c64a", + "modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx": "d89d4a6f793b4d615538e8d0bf3db7a23a63bafaaf52b7514414f8184d381620", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts": "bf25c7e88b8c8bf318c398986dbc08f3ec2f77eb739588555e711fe1e123cb4c", + "modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx": "e0eda9c6a7c39d731a172d776bafdbb47f33cdcdfc86e9eba01271742b146194", + "modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx": "034a1069c6f01104fc1c81f999ea06e16fab1a9b5633a355c0bea8afcad9a65b", + "modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx": "aee738391e04ff12444fc0f02fdc0307cd9d34b8357a96628368951c911de1c6", + "modules/companies/src/web/workstations/detail/ui/workstation-software-dialog.tsx": "9ec3268fd9b7ffbc4e092a131e37f6a7a3f6948a437f97b77e677c3b97daeea9", + "package.json": "c86cf84959bf2c01e6cda2e7c85c03db48b535ab0b2f47432fb28e173ad5b30a", + "scripts/resource-scope-test.py": "b4c06cf30ee7b8d6695119e32d2c3460af9b92a915aa366ea5ad22bdde36f0c7" + } +} diff --git a/.artifacts/resources-global-operating-systems-closure/migration-cli.log b/.artifacts/resources-global-operating-systems-closure/migration-cli.log new file mode 100644 index 00000000..b25d5f44 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/migration-cli.log @@ -0,0 +1 @@ +Resource scope: scoped; pasos aplicados: ninguno. diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-asset-current-os.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-asset-current-os.png new file mode 100644 index 00000000..c1fe5827 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-asset-current-os.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-create-review.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-create-review.png new file mode 100644 index 00000000..c6ebdeff Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-create-review.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-created-detail.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-created-detail.png new file mode 100644 index 00000000..f172f4bd Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-created-detail.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-empty.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-empty.png new file mode 100644 index 00000000..45c51a42 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-empty.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-english-form.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-english-form.png new file mode 100644 index 00000000..5a6db7ee Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-english-form.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-identity-error.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-identity-error.png new file mode 100644 index 00000000..86bfbc03 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-identity-error.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-installation-history-global-link.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-installation-history-global-link.png new file mode 100644 index 00000000..6fc9d97e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-installation-history-global-link.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1024.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1024.png new file mode 100644 index 00000000..f336f0c1 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1024.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1280.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1280.png new file mode 100644 index 00000000..3c485429 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1600.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1600.png new file mode 100644 index 00000000..8a25f90c Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-320.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-320.png new file mode 100644 index 00000000..e1d3edc7 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-390.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-390.png new file mode 100644 index 00000000..247886c2 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-768.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-768.png new file mode 100644 index 00000000..ab677aac Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-error.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-error.png new file mode 100644 index 00000000..8ae9b9eb Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-error.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1024.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1024.png new file mode 100644 index 00000000..8db4e307 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1024.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1280.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1280.png new file mode 100644 index 00000000..d95c3cfe Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1600.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1600.png new file mode 100644 index 00000000..b1e529a8 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-320.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-320.png new file mode 100644 index 00000000..5e59f665 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-390.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-390.png new file mode 100644 index 00000000..a69815d9 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-768.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-768.png new file mode 100644 index 00000000..8e0a4855 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-loading.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-loading.png new file mode 100644 index 00000000..0e28f165 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-list-loading.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mixed-picker.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mixed-picker.png new file mode 100644 index 00000000..390605db Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mixed-picker.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mobile-form.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mobile-form.png new file mode 100644 index 00000000..aee39c87 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-mobile-form.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-no-results.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-no-results.png new file mode 100644 index 00000000..79802ff0 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-no-results.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-ordinary-detail.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-ordinary-detail.png new file mode 100644 index 00000000..f73319e1 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-ordinary-detail.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workplace-map-global-os.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workplace-map-global-os.png new file mode 100644 index 00000000..9557ebdb Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workplace-map-global-os.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workstation-current-os.png b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workstation-current-os.png new file mode 100644 index 00000000..0b734084 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-closure/previous-ui/global-os-workstation-current-os.png differ diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/report.json b/.artifacts/resources-global-operating-systems-closure/previous-ui/report.json new file mode 100644 index 00000000..3ac28377 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/previous-ui/report.json @@ -0,0 +1,429 @@ +{ + "checks": [ + "empty-catalog", + "identity-fields", + "known-edition", + "review-required", + "identity-review-invalidation", + "create-in-browser", + "history", + "server-rejects-product-transformation-form-preserved", + "dialog-focus-return", + "51-global-products", + "cursor-pagination", + "search-empty-recovery", + "computed-text-contrast-light", + "list-light-320-390-768-1024-1280-1600", + "computed-text-contrast-dark", + "list-dark-320-390-768-1024-1280-1600", + "mobile-form-keyboard-close", + "transport-error-retry", + "initial-loading", + "inactive-draft-in-browser", + "english-form-labels-edition-options", + "ordinary-public-projection", + "asset-global-os-navigation", + "installation-panel-and-history-global-os-navigation", + "workstation-global-os-navigation", + "map-click-opens-global-os-detail", + "map-equipment-pointer-navigation", + "mixed-picker-global-local-no-replacement" + ], + "screenshots": [ + { + "file": "global-os-empty.png", + "sha256": "4728d22812a5a35e869ec9d28e65411f8863686f9f2b9457b584bd7af7d749f1" + }, + { + "file": "global-os-create-review.png", + "sha256": "fa4a1819372f0cb9357448dbe997464197fe875efd8125bd65137d57811199e5" + }, + { + "file": "global-os-created-detail.png", + "sha256": "63cdbdabbee8250c4b12a9db2bc4af6514edc3e5af2c749d1ced508f15b6422f" + }, + { + "file": "global-os-identity-error.png", + "sha256": "861e3f4e75853c31d42cf29f363051fa3488ddb84f5fb90150d076f073b26370" + }, + { + "file": "global-os-no-results.png", + "sha256": "4c6169565fc8713e9dc2502c1d06c2f9cc7abf62d8495a8976fdcd3533c76049" + }, + { + "file": "global-os-list-light-320.png", + "sha256": "891cdc1875a12ed6275a2b4e69cdcd2a2a4aaf92a5922df9b17aa2ae6895412a" + }, + { + "file": "global-os-list-light-390.png", + "sha256": "42a0a2f27df0f17b2d117ef5709344bc0cba2cfc40fc6a04652673bac0d175d3" + }, + { + "file": "global-os-list-light-768.png", + "sha256": "54cee20c8cac78ef32e20ada33552829e3ea738b7f7791900ca013afeb97bf49" + }, + { + "file": "global-os-list-light-1024.png", + "sha256": "73a89add6661dd90c360dce567cb23d088e132c4fce396648f272435903d60c6" + }, + { + "file": "global-os-list-light-1280.png", + "sha256": "7727d4a0339da4b2122a35f1fff5ac4814e16fcafc4485ddbca1a98a76ac2f40" + }, + { + "file": "global-os-list-light-1600.png", + "sha256": "36f901f92df98cb4c9b612c29c3a773a7144c439d79e7975294507f3d81ee153" + }, + { + "file": "global-os-list-dark-320.png", + "sha256": "fc6c5f6f89914a863200082079e2af563ab9537fdf87201082d5ef4e5d14c101" + }, + { + "file": "global-os-list-dark-390.png", + "sha256": "3090626d0526ccaaa4b8b80ea0868dfe2451ee8644d498922e6ca11562609f38" + }, + { + "file": "global-os-list-dark-768.png", + "sha256": "02ce9944bdd51afd79aa8c98f82d4e718fd3ea488e41fc2d376cb219d2d5e0fa" + }, + { + "file": "global-os-list-dark-1024.png", + "sha256": "5246d3cde105d8922dd4e0bb8b677f7f24704864dffd6c0fa07bbcc0bd68dc62" + }, + { + "file": "global-os-list-dark-1280.png", + "sha256": "011defd978d3525a93664f795c9d3ececd0809eea62038d4e47e7435a372e1c9" + }, + { + "file": "global-os-list-dark-1600.png", + "sha256": "f67e198bb5af48beaaebd43f63c6daa9210befd69506b2be496e1a1d455fbb98" + }, + { + "file": "global-os-mobile-form.png", + "sha256": "a031175d5e23ecf7dffa3972a13f4b0341df633d481889d52a9ca3c0f6e1f130" + }, + { + "file": "global-os-list-error.png", + "sha256": "d9cf753aa3b8860682a384ce49cef16447df2e2e9201fe34e596e9d90a3e0c8f" + }, + { + "file": "global-os-list-loading.png", + "sha256": "36a4f535a36e594587470d50b6c06a9eccf2bb937f49ff0ea329cd98f519f55a" + }, + { + "file": "global-os-english-form.png", + "sha256": "49739898c7d44891eaadf1bed78f3900c4f114b8bfbf82dba2e4b78edde5178c" + }, + { + "file": "global-os-ordinary-detail.png", + "sha256": "8c0aaed14ee140cc92d60163f93c7a8eb470209db3c016b44ebf8e8312008583" + }, + { + "file": "global-os-asset-current-os.png", + "sha256": "04d91e8ac9d5c63e88825316722810c2c591590542217f7fa4634c2264b97f2d" + }, + { + "file": "global-os-installation-history-global-link.png", + "sha256": "b6ccad18e28276e2f2039ab424e90812b0fe2cdf4742842ad6ad6af536c174b7" + }, + { + "file": "global-os-workstation-current-os.png", + "sha256": "e596d8f2a71ba738de182ff20caa7e2e454d2cb462be8ab64a1bd0a589b6c04e" + }, + { + "file": "global-os-workplace-map-global-os.png", + "sha256": "88980eb4a4b94262b39b3c4a69b4775ccd9387b9159fe0a6ef191697125e2909" + }, + { + "file": "global-os-mixed-picker.png", + "sha256": "1c4ac0eca0418d66934e44f21e383ddbdac26905857dbb666eb2bbe02cfdbd55" + } + ], + "measurements": [ + { + "theme": "light", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 4.710670667667247 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.44602285960225 + }, + { + "text": "Identidad comercial", + "ratio": 18.44602285960225 + }, + { + "text": "Proveedor", + "ratio": 18.44602285960225 + }, + { + "text": "Estado", + "ratio": 18.44602285960225 + }, + { + "text": "Acciones", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 17.982567698070397 + }, + { + "text": "Windows 11 Pro", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + } + ] + }, + { + "theme": "dark", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 7.5264967258525335 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.801878630570016 + }, + { + "text": "Identidad comercial", + "ratio": 18.801878630570016 + }, + { + "text": "Proveedor", + "ratio": 18.801878630570016 + }, + { + "text": "Estado", + "ratio": 18.801878630570016 + }, + { + "text": "Acciones", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 15.760664563314249 + }, + { + "text": "Windows 11 Pro", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + } + ] + } + ], + "database": "metis_desk_test", + "companies": 15, + "principal": { + "people": 50, + "assetsAtLeast": 50, + "resourcesAtLeast": 50, + "profiles": 50, + "workstations": 50 + }, + "mcp": "Docker stdio de .codex/config.toml", + "productionEnabled": false +} diff --git a/.artifacts/resources-global-operating-systems-closure/previous-ui/verification.json b/.artifacts/resources-global-operating-systems-closure/previous-ui/verification.json new file mode 100644 index 00000000..1ee69c94 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/previous-ui/verification.json @@ -0,0 +1,448 @@ +{ + "source": ".artifacts/playwright/authenticated-al820anx/global-operating-systems-report.json", + "execution": "previous intervention; not rerun in closure", + "checks": [ + "empty-catalog", + "identity-fields", + "known-edition", + "review-required", + "identity-review-invalidation", + "create-in-browser", + "history", + "server-rejects-product-transformation-form-preserved", + "dialog-focus-return", + "51-global-products", + "cursor-pagination", + "search-empty-recovery", + "computed-text-contrast-light", + "list-light-320-390-768-1024-1280-1600", + "computed-text-contrast-dark", + "list-dark-320-390-768-1024-1280-1600", + "mobile-form-keyboard-close", + "transport-error-retry", + "initial-loading", + "inactive-draft-in-browser", + "english-form-labels-edition-options", + "ordinary-public-projection", + "asset-global-os-navigation", + "installation-panel-and-history-global-os-navigation", + "workstation-global-os-navigation", + "map-click-opens-global-os-detail", + "map-equipment-pointer-navigation", + "mixed-picker-global-local-no-replacement" + ], + "screenshots": [ + { + "file": "global-os-empty.png", + "sha256": "4728d22812a5a35e869ec9d28e65411f8863686f9f2b9457b584bd7af7d749f1", + "exists": true + }, + { + "file": "global-os-create-review.png", + "sha256": "fa4a1819372f0cb9357448dbe997464197fe875efd8125bd65137d57811199e5", + "exists": true + }, + { + "file": "global-os-created-detail.png", + "sha256": "63cdbdabbee8250c4b12a9db2bc4af6514edc3e5af2c749d1ced508f15b6422f", + "exists": true + }, + { + "file": "global-os-identity-error.png", + "sha256": "861e3f4e75853c31d42cf29f363051fa3488ddb84f5fb90150d076f073b26370", + "exists": true + }, + { + "file": "global-os-no-results.png", + "sha256": "4c6169565fc8713e9dc2502c1d06c2f9cc7abf62d8495a8976fdcd3533c76049", + "exists": true + }, + { + "file": "global-os-list-light-320.png", + "sha256": "891cdc1875a12ed6275a2b4e69cdcd2a2a4aaf92a5922df9b17aa2ae6895412a", + "exists": true + }, + { + "file": "global-os-list-light-390.png", + "sha256": "42a0a2f27df0f17b2d117ef5709344bc0cba2cfc40fc6a04652673bac0d175d3", + "exists": true + }, + { + "file": "global-os-list-light-768.png", + "sha256": "54cee20c8cac78ef32e20ada33552829e3ea738b7f7791900ca013afeb97bf49", + "exists": true + }, + { + "file": "global-os-list-light-1024.png", + "sha256": "73a89add6661dd90c360dce567cb23d088e132c4fce396648f272435903d60c6", + "exists": true + }, + { + "file": "global-os-list-light-1280.png", + "sha256": "7727d4a0339da4b2122a35f1fff5ac4814e16fcafc4485ddbca1a98a76ac2f40", + "exists": true + }, + { + "file": "global-os-list-light-1600.png", + "sha256": "36f901f92df98cb4c9b612c29c3a773a7144c439d79e7975294507f3d81ee153", + "exists": true + }, + { + "file": "global-os-list-dark-320.png", + "sha256": "fc6c5f6f89914a863200082079e2af563ab9537fdf87201082d5ef4e5d14c101", + "exists": true + }, + { + "file": "global-os-list-dark-390.png", + "sha256": "3090626d0526ccaaa4b8b80ea0868dfe2451ee8644d498922e6ca11562609f38", + "exists": true + }, + { + "file": "global-os-list-dark-768.png", + "sha256": "02ce9944bdd51afd79aa8c98f82d4e718fd3ea488e41fc2d376cb219d2d5e0fa", + "exists": true + }, + { + "file": "global-os-list-dark-1024.png", + "sha256": "5246d3cde105d8922dd4e0bb8b677f7f24704864dffd6c0fa07bbcc0bd68dc62", + "exists": true + }, + { + "file": "global-os-list-dark-1280.png", + "sha256": "011defd978d3525a93664f795c9d3ececd0809eea62038d4e47e7435a372e1c9", + "exists": true + }, + { + "file": "global-os-list-dark-1600.png", + "sha256": "f67e198bb5af48beaaebd43f63c6daa9210befd69506b2be496e1a1d455fbb98", + "exists": true + }, + { + "file": "global-os-mobile-form.png", + "sha256": "a031175d5e23ecf7dffa3972a13f4b0341df633d481889d52a9ca3c0f6e1f130", + "exists": true + }, + { + "file": "global-os-list-error.png", + "sha256": "d9cf753aa3b8860682a384ce49cef16447df2e2e9201fe34e596e9d90a3e0c8f", + "exists": true + }, + { + "file": "global-os-list-loading.png", + "sha256": "36a4f535a36e594587470d50b6c06a9eccf2bb937f49ff0ea329cd98f519f55a", + "exists": true + }, + { + "file": "global-os-english-form.png", + "sha256": "49739898c7d44891eaadf1bed78f3900c4f114b8bfbf82dba2e4b78edde5178c", + "exists": true + }, + { + "file": "global-os-ordinary-detail.png", + "sha256": "8c0aaed14ee140cc92d60163f93c7a8eb470209db3c016b44ebf8e8312008583", + "exists": true + }, + { + "file": "global-os-asset-current-os.png", + "sha256": "04d91e8ac9d5c63e88825316722810c2c591590542217f7fa4634c2264b97f2d", + "exists": true + }, + { + "file": "global-os-installation-history-global-link.png", + "sha256": "b6ccad18e28276e2f2039ab424e90812b0fe2cdf4742842ad6ad6af536c174b7", + "exists": true + }, + { + "file": "global-os-workstation-current-os.png", + "sha256": "e596d8f2a71ba738de182ff20caa7e2e454d2cb462be8ab64a1bd0a589b6c04e", + "exists": true + }, + { + "file": "global-os-workplace-map-global-os.png", + "sha256": "88980eb4a4b94262b39b3c4a69b4775ccd9387b9159fe0a6ef191697125e2909", + "exists": true + }, + { + "file": "global-os-mixed-picker.png", + "sha256": "1c4ac0eca0418d66934e44f21e383ddbdac26905857dbb666eb2bbe02cfdbd55", + "exists": true + } + ], + "contrast": [ + { + "theme": "light", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 4.710670667667247 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.44602285960225 + }, + { + "text": "Identidad comercial", + "ratio": 18.44602285960225 + }, + { + "text": "Proveedor", + "ratio": 18.44602285960225 + }, + { + "text": "Estado", + "ratio": 18.44602285960225 + }, + { + "text": "Acciones", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 17.982567698070397 + }, + { + "text": "Windows 11 Pro", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + } + ] + }, + { + "theme": "dark", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 7.5264967258525335 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.801878630570016 + }, + { + "text": "Identidad comercial", + "ratio": 18.801878630570016 + }, + { + "text": "Proveedor", + "ratio": 18.801878630570016 + }, + { + "text": "Estado", + "ratio": 18.801878630570016 + }, + { + "text": "Acciones", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 15.760664563314249 + }, + { + "text": "Windows 11 Pro", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + } + ] + } + ], + "allHashesVerified": true +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/commands.json b/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/commands.json new file mode 100644 index 00000000..bfd04b9d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/commands.json @@ -0,0 +1,3 @@ +{ + "integration": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/integration.log b/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/integration.log new file mode 100644 index 00000000..ba99bf3d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/operating-systems/integration.log @@ -0,0 +1,21 @@ +▶ SO global: identidad, contratos, administración e instalaciones HTTP/MariaDB + ✔ autorización, CSRF, idempotencia y revisión vinculada a identidad (114.708375ms) + ✔ identidad incompleta, edición contradictoria, duplicado normalizado y concurrencia (235.662191ms) + ✔ borrador desconocido, edición no aplicable explícita y activación revisada (174.718577ms) + ✔ aplicaciones y licencias no contaminan el catálogo SO; lecturas públicas sin notas (97.842759ms) + ✔ mismo SO entre compañías, versiones y licencias aisladas, contrato anterior (551.383077ms) + ✔ candidatos mixtos, negociación y propósito de perfiles (198.028101ms) + ✔ metadatos e historial, identidad publicada fija y propagación protegida (175.523127ms) + ✔ versión instalada cambia sin modificar producto y conserva historial (155.329974ms) + ✔ desactivación conserva resolución histórica, edición instalada y retirada (381.160081ms) + ✔ carrera SO: instalación confirma antes de desactivar, catálogo coordinado (561.221238ms) + ✔ rollback de gates conserva referencias, historial y retirada (4828.319087ms) +✔ SO global: identidad, contratos, administración e instalaciones HTTP/MariaDB (84010.06887ms) +ℹ tests 12 +ℹ suites 0 +ℹ pass 12 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 90093.26907 diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/commands.json b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/commands.json new file mode 100644 index 00000000..bfd04b9d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/commands.json @@ -0,0 +1,3 @@ +{ + "integration": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/integration.log b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/integration.log new file mode 100644 index 00000000..de0f003e --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-3/integration.log @@ -0,0 +1,21 @@ +▶ R2.3: catálogo global autorizado, historia, idempotencia, privacidad y consumidores cerrados + ✔ catálogo de compañía combina ámbitos, pagina y permite altas locales aisladas (465.702236ms) + ✔ scope y plantilla persistidos, autorización real y proyección mínima (108.833026ms) + ✔ idempotencia de creationId y concurrencia sin duplicar historia (178.698854ms) + ✔ límites de plantilla, propietario y UUID; sin borrado global (116.027079ms) + ✔ edición y optimistic concurrency, snapshot original e idempotencia semántica (258.943962ms) + ✔ desactivar/reactivar conserva UUID e historia y excluye candidatos (165.175852ms) + ✔ colección paginada, homónimos y búsqueda literal sin N+1 de cliente (1219.637125ms) + ✔ rollback por error de infraestructura y recuperación por el mismo creationId (84.204436ms) + ✔ propagación autorizada global/local y campos nuevos sin reescribir snapshots (1542.964828ms) + ✔ CRUD local y consumidores continúan locales tras existir catálogo (381.32227ms) + ✔ reinicio HTTP: replay persistido y cierre de altas/edición/reactivación con lectura conservada (4389.71498ms) +✔ R2.3: catálogo global autorizado, historia, idempotencia, privacidad y consumidores cerrados (86043.106669ms) +ℹ tests 12 +ℹ suites 0 +ℹ pass 12 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 92135.435256 diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/commands.json b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/commands.json new file mode 100644 index 00000000..bfd04b9d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/commands.json @@ -0,0 +1,3 @@ +{ + "integration": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/integration.log b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/integration.log new file mode 100644 index 00000000..b15d8fd7 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-4/integration.log @@ -0,0 +1,22 @@ +▶ R2.4: software global, licencia local, negociación y serialización HTTP/MariaDB + ✔ mismo producto, instalaciones, versiones, estados, activos y licencias independientes (172.711315ms) + ✔ matriz negativa, destino inmutable, CSRF y autenticación reales (1182.867487ms) + ✔ compatibilidad v2: locales legacy y respuesta completa global sin downgrade silencioso (866.827969ms) + ✔ instalación local de SO mantiene contrato y validación de licencia (134.67442ms) + ✔ candidatos mixtos paginados, proyección mínima, búsqueda, homónimos y perfiles cerrados (1714.606052ms) + ✔ edición idempotente, licencia propia, renombrado e inactivo histórico con needsReview derivado (770.805307ms) + ✔ carrera: instalación primero, desactivación espera el commit y deriva revisión (641.682428ms) + ✔ carrera: desactivación primero, instalación espera y se rechaza al releer (450.102029ms) + ✔ dos compañías instalan a la vez sin lock exclusivo de catálogo (240.964152ms) + ✔ volumen operativo: cincuenta instalaciones particulares con productos locales distintos (8314.236632ms) + ✔ gates independientes de candidatos y asociación, sin abrir perfil (5108.787193ms) + ✔ gate cerrado tras reinicio: lectura, notas y retirada siguen; nuevas dependencias no (1381.595352ms) +✔ R2.4: software global, licencia local, negociación y serialización HTTP/MariaDB (98362.487369ms) +ℹ tests 13 +ℹ suites 0 +ℹ pass 13 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 103447.064487 diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/commands.json b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/commands.json new file mode 100644 index 00000000..bfd04b9d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/commands.json @@ -0,0 +1,3 @@ +{ + "integration": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/integration.log b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/integration.log new file mode 100644 index 00000000..2c94532c --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-5/integration.log @@ -0,0 +1,20 @@ +▶ R2.5: configuraciones globales locales al perfil, HTTP y concurrencia MariaDB + ✔ mismo UUID en varios perfiles y compañías, delivery/versión/estado propios, sin instalaciones (336.190847ms) + ✔ matriz negativa, recurso/perfil inmutables, autorización, CSRF y contrato estricto (1762.934516ms) + ✔ locales de serie y plantilla propia application, legacy y negociación global v2 (1360.327541ms) + ✔ candidatos de perfil mixtos sin SO/licencias, proyección privada y cursor por propósito (1387.27243ms) + ✔ edición semántica, historial y UUID preservados tras renombrar/desactivar; notas y retirada (1667.5848ms) + ✔ carrera: configuración primero, desactivación espera el commit (883.304512ms) + ✔ carrera: desactivación primero, revalidación posterior rechaza sin crear revisión (539.384189ms) + ✔ concurrencia de la pareja: un único registro abierto y revisiones propias (469.031255ms) + ✔ volumen de cincuenta configuraciones preserva aislamiento por perfil (8010.486866ms) + ✔ gates independientes y apagado: lectores, notas, retirada y locales siguen funcionando (4951.537395ms) +✔ R2.5: configuraciones globales locales al perfil, HTTP y concurrencia MariaDB (102145.083007ms) +ℹ tests 11 +ℹ suites 0 +ℹ pass 11 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 106247.428378 diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/commands.json b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/commands.json new file mode 100644 index 00000000..bfd04b9d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/commands.json @@ -0,0 +1,3 @@ +{ + "integration": 0 +} diff --git a/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/integration.log b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/integration.log new file mode 100644 index 00000000..93e580c6 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regression-suites/r2-6/integration.log @@ -0,0 +1,15 @@ +▶ R2.6: coincidencias contextuales acotadas sin mutaciones + ✔ volumen 10/100/1000/10000: recorrido acotado y consultas medidas (5900.569896ms) + ✔ paginación determinista, inactivos y proyección mínima sin escribir (1678.282967ms) + ✔ contexto, elegibilidad, validación, autenticación y cursores (304.452911ms) + ✔ uso local conserva producto, licencia, versión, configuración e historial (911.088407ms) + ✔ catálogo cerrado no permite detección ni altera referencias existentes (792.884598ms) +✔ R2.6: coincidencias contextuales acotadas sin mutaciones (89475.784755ms) +ℹ tests 6 +ℹ suites 0 +ℹ pass 6 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 93921.300192 diff --git a/.artifacts/resources-global-operating-systems-closure/regressions.log b/.artifacts/resources-global-operating-systems-closure/regressions.log new file mode 100644 index 00000000..c869cd34 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/regressions.log @@ -0,0 +1,70 @@ +✔ HTTP real: estado, contrato, errores y trazas sin datos sensibles (64.878761ms) +✔ HTTP real: entrada JSON inválida y errores internos conservan un contrato seguro (27.548096ms) +✔ MariaDB y HTTP: pertenencias, controladores, transiciones, aislamiento e integridad (2213.707827ms) +✔ el puerto usa un valor local por defecto y acepta los límites válidos (0.364602ms) +✔ el arranque rechaza puertos inválidos sin revelar el valor recibido (0.816006ms) +✔ MariaDB: dominios, contexto atómico, concurrencia, integridad y ciclo de vida (792.630633ms) +✔ HTTP infraestructura: sesión, pertenencia, validación, identidad e idempotencia (30.063319ms) +✔ diagnóstico: causas de Sequelize, ciclos y valores lanzados que no son Error (0.571405ms) +✔ diagnóstico: mensajes multilínea, propiedades y cadenas largas no se vuelcan (0.524903ms) +✔ contextos de servidor: sesión vigente, ámbito existente, copias y revocación (0.955607ms) +▶ MariaDB: publicaciones SMB, historial, proveedor y HTTP autenticado + ✔ registro y cardinalidad; publicador desconocido y distintos tipos sin AD (356.392903ms) + ✔ traslado atómico, replay estable y finalización identificada sin tocar accesos (111.981018ms) + ✔ concurrencia: altas iguales, publicadores distintos, traslados y finalización (148.241983ms) + ✔ restricciones SQL y protección de borrado también después de finalizar (119.178071ms) + ✔ fallo al insertar sucesor revierte el cierre anterior (118.745467ms) + ✔ proveedor: SQL keyset, orientación, historial y cursores ligados a consulta (28.355508ms) + ✔ resolución SMB por lotes: no confunde dominios, recursos ordinarios o compañías (165.029105ms) + ✔ estados y desactivación concurrente conservan publicaciones documentadas (514.990061ms) + ✔ UI 3.5: selector remoto filtra en SQL y pagina sin hidratar el inventario (1436.471586ms) + ✔ HTTP: sesión, CSRF, validación, idempotencia y consultas paginadas (123.198399ms) +✔ MariaDB: publicaciones SMB, historial, proveedor y HTTP autenticado (4756.605138ms) +▶ MariaDB: SMB, unicidad vigente, historial, diagnóstico e integridad + ✔ alta, presentación, lector público y aislamiento (38.900183ms) + ✔ conflicto funcional, rollback, alias e inactivos (142.198937ms) + ✔ edición atómica, UUID estable, idempotencia y revisión de UNC (95.592397ms) + ✔ desactivación libera dirección y reactivación conflictiva conserva estado (163.774395ms) + ✔ concurrencia: una sola alta y ninguna raíz huérfana (82.283001ms) + ✔ restricciones SQL: compañía, 1:1, protocolo y unicidad (47.664648ms) + ✔ legado: ausente, inválido, válido, duplicado y candidato access; diagnóstico sin escritura (439.420705ms) + ✔ integración access existente y cambio de UNC conservan contexto y referencias (175.55068ms) + ✔ FolderMapping conserva UNC, letra e historial y detecta dirección desactualizada (409.768588ms) + ✔ HTTP autenticado: contrato SMB y diagnóstico acotado sin aceptar parámetros (65.420477ms) + ✔ borrado sin referencias limpia proyección; una FK externa impide borrado (261.540007ms) +✔ MariaDB: SMB, unicidad vigente, historial, diagnóstico e integridad (2639.933755ms) +▶ MariaDB: nuevas carpetas SMB integradas con accesos sin adoptar históricos + ✔ alta automática: misma identidad, ninguna dependencia de dominio o publicador (12.60939ms) + ✔ renombrar el tipo de acceso conserva su UUID para las siguientes altas (55.298894ms) + ✔ el cliente no puede imponer buzón, otro tipo ni contexto; se revierte el tipo preparado (74.970834ms) + ✔ renombrado, UNC y estados sincronizan valores y UUID de todas las revisiones (133.734351ms) + ✔ necesidad y concesiones AD y NAS local: cobertura documental y borrado protegido (1191.363179ms) + ✔ fallo después de escribir acceso revierte Resource, SMB, AccessItem y tipo (38.852577ms) + ✔ carpeta anterior sin integración: lectura, edición y estado no la adoptan (158.133526ms) +✔ MariaDB: nuevas carpetas SMB integradas con accesos sin adoptar históricos (2343.789395ms) +✔ MariaDB: las plantillas propagan estructura en todas las compañías de forma atómica e idempotente (1585.94158ms) +▶ MariaDB: proveedor real, lotes, seguridad, SQL paginado y transiciones de pertenencias + ✔ registro estático y consultas vacías desde ambos extremos (6.754748ms) + ✔ directa, inversa, either, roles y UUID canónicos sin duplicados (40.533589ms) + ✔ keyset SQL: páginas de uno, fin y cursores ligados a consulta (26.276387ms) + ✔ lotes reales sin N+1, orden, repetidos, estados y referencias inaccesibles (19.499839ms) + ✔ traslado y fin conservan identidad, estado y rol histórico (38.136271ms) + ✔ ámbito, contextos falsificados, sesión revocada y acceso inverso (18.632432ms) + ✔ EXPLAIN real e índices disponibles para ambos extremos (6.075043ms) +✔ MariaDB: proveedor real, lotes, seguridad, SQL paginado y transiciones de pertenencias (1486.420567ms) +ℹ {"column":"assetId","includeEnded":false,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"assetId","includeEnded":false,"forcedIndexPlan":[{"key":"directory_membership_asset","Extra":"Using index condition; Using where"}]} +ℹ {"column":"assetId","includeEnded":true,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"assetId","includeEnded":true,"forcedIndexPlan":[{"key":"directory_membership_asset","Extra":"Using index condition"}]} +ℹ {"column":"domainResourceId","includeEnded":false,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_fk,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":false,"forcedIndexPlan":[{"key":"directory_membership_domain_page","Extra":"Using index condition; Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":true,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_fk,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":true,"forcedIndexPlan":[{"key":"directory_membership_domain_page","Extra":"Using index condition"}]} +ℹ tests 50 +ℹ suites 0 +ℹ pass 50 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 17252.621293 diff --git a/.artifacts/resources-global-operating-systems-closure/schema.json b/.artifacts/resources-global-operating-systems-closure/schema.json new file mode 100644 index 00000000..e29c31a2 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/schema.json @@ -0,0 +1,17020 @@ +{ + "version": [ + { + "version": "11.8.9-MariaDB-ubu2404", + "sqlMode": "IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", + "checkConstraints": 1, + "foreignKeys": 1, + "collationName": "utf8mb4_uca1400_ai_ci" + } + ], + "columns": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(14)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_unicode_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(4)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "itemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'environment'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "itemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'system'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(14)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_unicode_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(4)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "environmentKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'environment'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'system'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "identityScope", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'local-device'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "startedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "startedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_person_references", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_person_references", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "targetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "sequence", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "scopeKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "delivery", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "delivery", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "brandId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "registeredOn", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "brandDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "definitionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "builtin", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "logoSvg", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_catalogs", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_catalogs", + "COLUMN_NAME": "catalogKey", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "stockKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "icon", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "inverseName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "symmetric", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "domainResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "predecessorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "activeAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "infrastructureId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "interfaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "address", + "COLUMN_TYPE": "varchar(45)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "mac", + "COLUMN_TYPE": "varchar(17)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "predecessorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "startedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "startedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "activeResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "sourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "targetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "typeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "inverseName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "symmetric", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "createdBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "activeKey", + "COLUMN_TYPE": "varchar(150)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "brandId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "registeredOn", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "brandDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "destination", + "COLUMN_TYPE": "varchar(300)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "preferred", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "preferredKey", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "connectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "destination", + "COLUMN_TYPE": "varchar(300)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "preferred", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "brand_catalog_lock", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "brand_catalog_lock", + "COLUMN_NAME": "logosImported", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "location", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "location", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "logoVersion", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "email", + "COLUMN_TYPE": "varchar(254)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "phone", + "COLUMN_TYPE": "varchar(50)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "photoVersion", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "isContact", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "1", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "nameKey", + "COLUMN_TYPE": "varchar(200)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "data", + "COLUMN_TYPE": "mediumblob", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "1", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "address", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "phone", + "COLUMN_TYPE": "varchar(50)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "assignmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "sequence", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "isPrimary", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "path", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "driveLetter", + "COLUMN_TYPE": "varchar(2)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(110)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "driveKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'account'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "mappingId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "path", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "driveLetter", + "COLUMN_TYPE": "varchar(2)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'account'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "sid", + "COLUMN_TYPE": "varchar(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "expires", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "userId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "authVersion", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "csrfToken", + "COLUMN_TYPE": "varchar(128)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieExpires", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "originalMaxAge", + "COLUMN_TYPE": "bigint(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePath", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieDomain", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieSecure", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieHttpOnly", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieSameSite", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePartitioned", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePriority", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "updatedAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "identity_state", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "identity_state", + "COLUMN_NAME": "initialAdminId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "departmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "isPrimary", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "data", + "COLUMN_TYPE": "mediumblob", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "updatedAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "taskId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceLabel", + "COLUMN_TYPE": "varchar(500)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "taskId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceLabel", + "COLUMN_TYPE": "varchar(500)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "printerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "connection", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "isDefault", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "defaultKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "printerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "connection", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "isDefault", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_catalog_lock", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "nameKey", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "builtinKey", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "sourceAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetKind", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "method", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "connectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "sourceAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetKind", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "method", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "integrationKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "addressFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "contextFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "mailboxKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "referenceFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "scope", + "COLUMN_TYPE": "varchar(7)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'company'", + "COLLATION_NAME": "ascii_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "definitionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_catalogs", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_catalogs", + "COLUMN_NAME": "catalogKey", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "stockKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "icon", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "templateKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'template:windows_domain'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "normalizedDns", + "COLUMN_TYPE": "varchar(253)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "ascii_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "associatedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "associatedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "templateKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'template:shared_folder'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "protocol", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'smb'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "normalizedAddress", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "activeAddress", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "integrationKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "addressFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "contextFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "mailboxKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "referenceFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "licenseResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "licenseResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "startsOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "authorizationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "startsOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "email", + "COLUMN_TYPE": "varchar(254)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "passwordHash", + "COLUMN_TYPE": "varchar(256)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "isInitialAdmin", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "authVersion", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "computerAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "activeKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "computerAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(110)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + } + ], + "indexes": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "accountPersonId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountPersonId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "grantId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "grantId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "membershipId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "accountPersonId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountPersonId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "grantId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "grantId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "membershipId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "itemKind" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "itemKind" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_workspace", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_environment_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_environment_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "kind" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "workspaceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_end_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "environmentKind" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_start_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "startedBy" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "systemWorkspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "systemKind" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "access_need_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "access_need_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "access_need_revision_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "access_need_revision_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_permission_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_permission_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "access_reference_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "access_reference_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "targetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_type_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "access_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "access_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sequence" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_system_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_system_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_template_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "directory_workspace_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "directory_workspace_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "scopeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "scopeKey" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "application_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "application_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "assets_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "assets_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "brandId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "brandId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "asset_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "asset_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "definitionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_brands", + "INDEX_NAME": "name", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "name" + }, + { + "TABLE_NAME": "asset_brands", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_catalogs", + "INDEX_NAME": "catalogKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogKey" + }, + { + "TABLE_NAME": "asset_catalogs", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "stockKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_active", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeAssetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "role" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 4, + "COLUMN_NAME": "endedAt" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 5, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_predecessor", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_order", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_order", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "infrastructure_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "infrastructure_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "infrastructure_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "infrastructureId" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "infrastructure_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "role" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "interface_address_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "interface_address_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "interfaceId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_active_resource", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeResourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_end_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_share_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_share_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_start_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "startedBy" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_successor", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "activeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeKey" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "createdBy", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "createdBy" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "endedBy", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_source_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_source_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sourceId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_target_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_target_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "sourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "targetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "typeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "typeId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "asset_revision_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "asset_revision_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "brandId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "brandId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "asset_value_revision_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "asset_value_revision_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "asset_snapshot_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "asset_snapshot_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "asset_support_resource_reference", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "preferredKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "preferredKey" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_resource_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_resource_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "asset_support_revisions_resource_reference", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "connectionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "connectionId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_binding_section_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_binding_section_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "asset_section_template_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "asset_section_template_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "brand_catalog_lock", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "certificate_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "certificate_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "companies", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "person_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "person_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_name_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_name_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "nameKey" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_logos", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_sites", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_sites", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "assignment_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assignmentId" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "assignment_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sequence" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "driveKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "driveKey" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "accessAccountKind" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_mapping_company_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_mapping_company_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_mapping_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "mappingId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_mapping_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "accessAccountKind" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_mapping", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "mappingId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_mapping", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "http_sessions_expires", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "expires" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sid" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "userId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "userId" + }, + { + "TABLE_NAME": "identity_state", + "INDEX_NAME": "initialAdminId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "initialAdminId" + }, + { + "TABLE_NAME": "identity_state", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_department_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "departmentId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_department_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_person_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_person_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "person_photos_person_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "person_photos_person_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "person_process_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "person_process_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "person_process_revision_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "person_process_revision_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "taskId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "person_process_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "person_process_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "taskId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "defaultKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "defaultKey" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "printerId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "printerId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printerId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "printerId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printer_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printer_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "process_catalog_lock", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "builtinKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "builtinKey" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "nameKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "nameKey" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "process_template_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "process_template_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "process_template_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "process_template_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "process_template_revision_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "process_template_revision_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "sourceAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceAssetId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "targetAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetAssetId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "targetResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetResourceId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "remote_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "connectionId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "remote_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "sourceAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceAssetId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "targetAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetAssetId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "targetResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetResourceId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "addressFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "addressFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "contextFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "contextFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "referenceFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "referenceFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resource_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resource_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "definitionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "resource_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "resource_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "resource_catalogs", + "INDEX_NAME": "catalogKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogKey" + }, + { + "TABLE_NAME": "resource_catalogs", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "directory_template_key", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "directory_template_key", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "stockKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_association_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "associatedBy" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_context", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_context", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_dns_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_dns_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "normalizedDns" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_environment_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateKey" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_active_address", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_active_address", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "activeAddress" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_definition", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_definition", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateKey" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "addressFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "addressFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "contextFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "contextFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "referenceFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "referenceFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resource_revision_position_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resource_revision_position_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "licenseResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "licenseResourceId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "licenseResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "licenseResourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "software_installation_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "software_installation_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "telework_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "authorizationId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "telework_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "users", + "INDEX_NAME": "email", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "email" + }, + { + "TABLE_NAME": "users", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "computerAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "computerAssetId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "workstations_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "workstations_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "activeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeKey" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_owner_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_owner_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "computerAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "computerAssetId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "workstationId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "profile_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "profile_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + } + ], + "foreignKeys": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_2", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_3", + "COLUMN_NAME": "grantId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_4", + "COLUMN_NAME": "accountPersonId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_5", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_2", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_3", + "COLUMN_NAME": "grantId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_4", + "COLUMN_NAME": "accountPersonId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_5", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "itemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "systemId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "itemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "CONSTRAINT_NAME": "access_environment_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "CONSTRAINT_NAME": "access_environment_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_environment_values", + "CONSTRAINT_NAME": "access_environment_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_environment_values", + "CONSTRAINT_NAME": "access_environment_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_3", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_5", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_3", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_5", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_4", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_4", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_items", + "CONSTRAINT_NAME": "access_items_ibfk_1", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_end_actor", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "environmentKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_start_actor", + "COLUMN_NAME": "startedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_3", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_3", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_permissions", + "CONSTRAINT_NAME": "access_need_permissions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_need_values", + "REFERENCED_COLUMN_NAME": "ownerId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_permissions", + "CONSTRAINT_NAME": "access_need_permissions_ibfk_2", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "CONSTRAINT_NAME": "access_need_revision_permissions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_need_revision_values", + "REFERENCED_COLUMN_NAME": "ownerId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "CONSTRAINT_NAME": "access_need_revision_permissions_ibfk_2", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "CONSTRAINT_NAME": "access_permission_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "CONSTRAINT_NAME": "access_permission_revision_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_permission_values", + "CONSTRAINT_NAME": "access_permission_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_permission_values", + "CONSTRAINT_NAME": "access_permission_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_person_references", + "CONSTRAINT_NAME": "access_person_references_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_person_references", + "CONSTRAINT_NAME": "access_person_references_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_references", + "CONSTRAINT_NAME": "access_references_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_references", + "CONSTRAINT_NAME": "access_references_ibfk_2", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_3", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_4", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "CONSTRAINT_NAME": "access_resource_type_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_type_values", + "CONSTRAINT_NAME": "access_resource_type_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_3", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_4", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_revisions", + "CONSTRAINT_NAME": "access_revisions_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_revisions", + "CONSTRAINT_NAME": "access_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_system_revision_values", + "CONSTRAINT_NAME": "access_system_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_system_values", + "CONSTRAINT_NAME": "access_system_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_revision_values", + "CONSTRAINT_NAME": "access_template_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_revision_values", + "CONSTRAINT_NAME": "access_template_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_template_values", + "CONSTRAINT_NAME": "access_template_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_values", + "CONSTRAINT_NAME": "access_template_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_workspaces", + "CONSTRAINT_NAME": "access_workspaces_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "application_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_4", + "COLUMN_NAME": "brandId", + "REFERENCED_TABLE_NAME": "asset_brands", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "asset_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_3", + "COLUMN_NAME": "definitionId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_snapshot", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definitions_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "asset_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definitions_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_domain_fk", + "COLUMN_NAME": "domainResourceId", + "REFERENCED_TABLE_NAME": "resource_directory_domains", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_domain_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resource_directory_domains", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "predecessorId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_actor", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_owner", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_field_choices", + "CONSTRAINT_NAME": "asset_field_choices_ibfk_1", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "asset_infrastructure_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "asset_infrastructure_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "infrastructure_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "infrastructure_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "CONSTRAINT_NAME": "asset_infrastructure_revisions_ibfk_1", + "COLUMN_NAME": "infrastructureId", + "REFERENCED_TABLE_NAME": "asset_infrastructure", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "CONSTRAINT_NAME": "asset_infrastructure_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "CONSTRAINT_NAME": "asset_infrastructure_roles_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "asset_interface_address_snapshots_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "interface_address_owner", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_interface_snapshots", + "REFERENCED_COLUMN_NAME": "revisionId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "interface_address_owner", + "COLUMN_NAME": "interfaceId", + "REFERENCED_TABLE_NAME": "asset_interface_snapshots", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "CONSTRAINT_NAME": "asset_interface_snapshots_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_end_actor", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "predecessorId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_share_fk", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resource_network_shares", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_share_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resource_network_shares", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_start_actor", + "COLUMN_NAME": "startedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_2", + "COLUMN_NAME": "sourceId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_3", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_4", + "COLUMN_NAME": "typeId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_5", + "COLUMN_NAME": "createdBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_6", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_source_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_source_company", + "COLUMN_NAME": "sourceId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_target_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_target_company", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_4", + "COLUMN_NAME": "brandId", + "REFERENCED_TABLE_NAME": "asset_brands", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_5", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_historical_field_snapshot", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revision_specification_fields", + "REFERENCED_COLUMN_NAME": "revisionId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_historical_field_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_revision_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_value_revision_owner", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_value_revision_owner", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "CONSTRAINT_NAME": "asset_revision_specifications_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "CONSTRAINT_NAME": "asset_revision_specifications_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "CONSTRAINT_NAME": "asset_revision_specification_choices_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "CONSTRAINT_NAME": "asset_revision_specification_choices_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "CONSTRAINT_NAME": "asset_revision_specification_sections_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "CONSTRAINT_NAME": "asset_revision_specification_sections_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_snapshot_section", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_sections", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_snapshot_section", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "asset_specification_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_specification_fields_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_specification_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_snapshot", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_sections", + "CONSTRAINT_NAME": "asset_specification_sections_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_resource_reference", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_resource_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_resource_company", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_ibfk_1", + "COLUMN_NAME": "connectionId", + "REFERENCED_TABLE_NAME": "asset_support", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_resource_reference", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_binding_section_template", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_template_sections", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_binding_section_template", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "asset_template_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_template_fields_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_template_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_sections", + "CONSTRAINT_NAME": "asset_template_sections_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "certificate_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_contacts", + "CONSTRAINT_NAME": "company_contacts_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_departments", + "CONSTRAINT_NAME": "company_departments_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_logos", + "CONSTRAINT_NAME": "company_logos_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "company_sites", + "CONSTRAINT_NAME": "company_sites_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "CONSTRAINT_NAME": "department_assignment_revisions_ibfk_1", + "COLUMN_NAME": "assignmentId", + "REFERENCED_TABLE_NAME": "person_department_assignments", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_company", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_3", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_4", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_1", + "COLUMN_NAME": "mappingId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_3", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_4", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_5", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_company", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_mapping", + "COLUMN_NAME": "mappingId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_mapping", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "http_sessions", + "CONSTRAINT_NAME": "http_sessions_ibfk_1", + "COLUMN_NAME": "userId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "SET NULL" + }, + { + "TABLE_NAME": "identity_state", + "CONSTRAINT_NAME": "identity_state_ibfk_1", + "COLUMN_NAME": "initialAdminId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_department_company_fk", + "COLUMN_NAME": "departmentId", + "REFERENCED_TABLE_NAME": "company_departments", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_department_company_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_departments", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_person_company_fk", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_person_company_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "person_department_assignments_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_photos", + "CONSTRAINT_NAME": "person_photos_person_fk", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_photos", + "CONSTRAINT_NAME": "person_photos_person_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_1", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_3", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_1", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_3", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_4", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "person_processes", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "CONSTRAINT_NAME": "person_process_revision_tasks_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "person_process_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_process_tasks", + "CONSTRAINT_NAME": "person_process_tasks_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "person_processes", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_3", + "COLUMN_NAME": "printerId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "printer_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_3", + "COLUMN_NAME": "printerId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_instructions", + "CONSTRAINT_NAME": "process_template_instructions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "process_template_revisions", + "CONSTRAINT_NAME": "process_template_revisions_ibfk_1", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_revisions", + "CONSTRAINT_NAME": "process_template_revisions_ibfk_2", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "CONSTRAINT_NAME": "process_template_revision_instructions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "process_template_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_3", + "COLUMN_NAME": "sourceAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_4", + "COLUMN_NAME": "targetAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_5", + "COLUMN_NAME": "targetResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_6", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_1", + "COLUMN_NAME": "connectionId", + "REFERENCED_TABLE_NAME": "remote_connections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_4", + "COLUMN_NAME": "sourceAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_5", + "COLUMN_NAME": "targetAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_6", + "COLUMN_NAME": "targetResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_7", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_3", + "COLUMN_NAME": "addressFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_4", + "COLUMN_NAME": "contextFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_6", + "COLUMN_NAME": "referenceFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_7", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_8", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_9", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "resource_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_3", + "COLUMN_NAME": "definitionId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_characteristics", + "CONSTRAINT_NAME": "resource_characteristics_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_characteristics", + "CONSTRAINT_NAME": "resource_characteristics_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_definitions", + "CONSTRAINT_NAME": "resource_definitions_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "resource_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_definitions", + "CONSTRAINT_NAME": "resource_definitions_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_association_actor", + "COLUMN_NAME": "associatedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_context", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_directory_environments", + "REFERENCED_COLUMN_NAME": "environmentId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_context", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_directory_environments", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template", + "COLUMN_NAME": "templateKey", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "stockKey", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_field_choices", + "CONSTRAINT_NAME": "resource_field_choices_ibfk_1", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_definition", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_definition", + "COLUMN_NAME": "templateKey", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "stockKey", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_10", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_3", + "COLUMN_NAME": "addressFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_4", + "COLUMN_NAME": "contextFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_6", + "COLUMN_NAME": "referenceFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_7", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_8", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_9", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "CONSTRAINT_NAME": "resource_revision_specifications_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "CONSTRAINT_NAME": "resource_revision_specifications_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "CONSTRAINT_NAME": "resource_revision_specification_choices_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "CONSTRAINT_NAME": "resource_revision_specification_choices_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "CONSTRAINT_NAME": "resource_revision_specification_sections_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "CONSTRAINT_NAME": "resource_revision_specification_sections_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_fields", + "CONSTRAINT_NAME": "resource_specification_fields_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_specification_fields", + "CONSTRAINT_NAME": "resource_specification_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "CONSTRAINT_NAME": "resource_specification_field_choices_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "CONSTRAINT_NAME": "resource_specification_field_choices_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_sections", + "CONSTRAINT_NAME": "resource_specification_sections_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_fields_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_field_section", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_template_sections", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_field_section", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "resource_template_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_sections", + "CONSTRAINT_NAME": "resource_template_sections_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_4", + "COLUMN_NAME": "licenseResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "software_installations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_4", + "COLUMN_NAME": "licenseResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_5", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorizations", + "CONSTRAINT_NAME": "telework_authorizations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorizations", + "CONSTRAINT_NAME": "telework_authorizations_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_1", + "COLUMN_NAME": "authorizationId", + "REFERENCED_TABLE_NAME": "telework_authorizations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_2", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_4", + "COLUMN_NAME": "computerAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_3", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_owner_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_owner_company", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_members", + "CONSTRAINT_NAME": "workstation_members_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "workstation_members", + "CONSTRAINT_NAME": "workstation_members_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_4", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_5", + "COLUMN_NAME": "computerAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revision_members", + "CONSTRAINT_NAME": "workstation_revision_members_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "workstation_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "workstation_revision_members", + "CONSTRAINT_NAME": "workstation_revision_members_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_3", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_1", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_4", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + } + ], + "checks": [ + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_kind", + "CHECK_CLAUSE": "`itemKind` = 'environment'" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_kind", + "CHECK_CLAUSE": "`itemKind` = 'system'" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_kind", + "CHECK_CLAUSE": "`environmentKind` = 'environment' and `systemKind` = 'system' and `identityScope` = 'local-device'" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_period", + "CHECK_CLAUSE": "`endedAt` is null and `endedBy` is null or `endedAt` is not null and `endedBy` is not null and `endedAt` >= `startedAt`" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_brand_presence", + "CHECK_CLAUSE": "`brandId` is null or `brandDefined` = 1" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_status", + "CHECK_CLAUSE": "`status` in ('operational','broken','available','in_use','maintenance','retired')" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_typed_value", + "CHECK_CLAUSE": "`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definition_kind", + "CHECK_CLAUSE": "`kind` = 'field' and `fieldType` in ('text','multiline','number','date','boolean','choice') and `unit` is not null and `inverseName` is null and `symmetric` is null or `kind` = 'template' and `fieldType` is null and `unit` is null and `inverseName` is null and `symmetric` is null or `kind` = 'relation' and `fieldType` is null and `unit` is null and `inverseName` is not null and `symmetric` is not null" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_active_key", + "CHECK_CLAUSE": "`endedAt` is null and `activeAssetId` is not null and `activeAssetId` = `assetId` or `endedAt` is not null and `activeAssetId` is null" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` >= `createdAt`" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_role", + "CHECK_CLAUSE": "`role` in ('member','domain-controller')" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` <= `recordedAt`" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_position", + "CHECK_CLAUSE": "`position` >= 0" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_role", + "CHECK_CLAUSE": "`role` in ('member','domain-controller')" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_active", + "CHECK_CLAUSE": "`endedAt` is null and `endedBy` is null and `activeResourceId` is not null and `activeResourceId` = `resourceId` or `endedAt` is not null and `endedBy` is not null and `activeResourceId` is null" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` >= `startedAt`" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_identity", + "CHECK_CLAUSE": "`predecessorId` is null or `predecessorId` <> `id`" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_brand_presence", + "CHECK_CLAUSE": "`brandId` is null or `brandDefined` = 1" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_status", + "CHECK_CLAUSE": "`status` in ('operational','broken','available','in_use','maintenance','retired')" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_typed_value", + "CHECK_CLAUSE": "`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_kind", + "CHECK_CLAUSE": "`accessAccountKind` = 'account'" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_nullable", + "CHECK_CLAUSE": "`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_kind", + "CHECK_CLAUSE": "`accessAccountKind` = 'account'" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_nullable", + "CHECK_CLAUSE": "`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_snapshot_shape", + "CHECK_CLAUSE": "(`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null)" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_snapshot_shape", + "CHECK_CLAUSE": "(`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null)" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resource_global_no_integration", + "CHECK_CLAUSE": "`scope` = 'company' or `integrationKind` is null and `addressFieldId` is null and `contextFieldId` is null and `mailboxKind` is null and `accountId` is null and `referenceFieldId` is null and `resourceTypeId` is null and `systemId` is null and `environmentId` is null" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resource_scope_owner", + "CHECK_CLAUSE": "`scope` = 'company' and char_length(`scope`) = 7 and `companyId` is not null or `scope` = 'global' and char_length(`scope`) = 6 and `companyId` is null" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_dns_canonical", + "CHECK_CLAUSE": "`normalizedDns` = lcase(`normalizedDns`) and octet_length(`normalizedDns`) = octet_length(trim(`normalizedDns`)) and right(`normalizedDns`,1) <> '.'" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_dns_not_empty", + "CHECK_CLAUSE": "char_length(`normalizedDns`) > 0" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template_semantics", + "CHECK_CLAUSE": "`templateKey` = 'template:windows_domain'" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_active", + "CHECK_CLAUSE": "`activeAddress` is null or cast(`activeAddress` as char charset binary) = cast(`normalizedAddress` as char charset binary)" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_address", + "CHECK_CLAUSE": "char_length(`normalizedAddress`) > 0" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_protocol", + "CHECK_CLAUSE": "`protocol` = 'smb'" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_template", + "CHECK_CLAUSE": "`templateKey` = 'template:shared_folder'" + }, + { + "TABLE_NAME": "users", + "CONSTRAINT_NAME": "initial_admin_active", + "CHECK_CLAUSE": "`isInitialAdmin` = 0 or `active` = 1" + } + ], + "ddl": [ + { + "Table": "access_account_person_revision_values", + "Create Table": "CREATE TABLE `access_account_person_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_account_person_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_person_revision_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_person_revision_values_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_person_values", + "Create Table": "CREATE TABLE `access_account_person_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_account_person_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_person_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_person_values_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_revision_values", + "Create Table": "CREATE TABLE `access_account_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `login` varchar(255) NOT NULL,\n `usage` varchar(16) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_account_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_revision_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_values", + "Create Table": "CREATE TABLE `access_account_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `login` varchar(255) NOT NULL,\n `usage` varchar(16) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_account_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_coverage_revision_values", + "Create Table": "CREATE TABLE `access_coverage_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `grantId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountPersonId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `needId` (`needId`),\n KEY `grantId` (`grantId`),\n KEY `accountPersonId` (`accountPersonId`),\n KEY `membershipId` (`membershipId`),\n CONSTRAINT `access_coverage_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_coverage_revision_values_ibfk_2` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_3` FOREIGN KEY (`grantId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_4` FOREIGN KEY (`accountPersonId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_5` FOREIGN KEY (`membershipId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_coverage_values", + "Create Table": "CREATE TABLE `access_coverage_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `grantId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountPersonId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `needId` (`needId`),\n KEY `grantId` (`grantId`),\n KEY `accountPersonId` (`accountPersonId`),\n KEY `membershipId` (`membershipId`),\n CONSTRAINT `access_coverage_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_coverage_values_ibfk_2` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_3` FOREIGN KEY (`grantId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_4` FOREIGN KEY (`accountPersonId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_5` FOREIGN KEY (`membershipId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "View": "access_current_values", + "Create View": "CREATE ALGORITHM=UNDEFINED DEFINER=`scope_test`@`%` SQL SECURITY DEFINER VIEW `access_current_values` AS select `access_system_values`.`ownerId` AS `ownerId`,'system' AS `kind`,`access_system_values`.`name` AS `name`,`access_system_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_system_values` union all select `access_resource_type_values`.`ownerId` AS `ownerId`,'resource_type' AS `kind`,`access_resource_type_values`.`name` AS `name`,`access_resource_type_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_type_values` union all select `access_permission_values`.`ownerId` AS `ownerId`,'permission' AS `kind`,`access_permission_values`.`name` AS `name`,`access_permission_values`.`active` AS `active`,`access_permission_values`.`resourceTypeId` AS `resourceTypeId`,`access_permission_values`.`description` AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_permission_values` union all select `access_template_values`.`ownerId` AS `ownerId`,'template' AS `kind`,`access_template_values`.`name` AS `name`,`access_template_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_template_values`.`description` AS `description`,`access_template_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_template_values` union all select `access_environment_values`.`ownerId` AS `ownerId`,'environment' AS `kind`,`access_environment_values`.`name` AS `name`,`access_environment_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_environment_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_environment_values` union all select `access_account_values`.`ownerId` AS `ownerId`,'account' AS `kind`,NULL AS `name`,`access_account_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_account_values`.`systemId` AS `systemId`,`access_account_values`.`environmentId` AS `environmentId`,`access_account_values`.`login` AS `login`,`access_account_values`.`usage` AS `usage`,`access_account_values`.`expiresOn` AS `expiresOn`,`access_account_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_values` union all select `access_account_person_values`.`ownerId` AS `ownerId`,'account_person' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_account_person_values`.`accountId` AS `accountId`,`access_account_person_values`.`personId` AS `personId`,`access_account_person_values`.`startDate` AS `startDate`,`access_account_person_values`.`endDate` AS `endDate`,`access_account_person_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_person_values` union all select `access_group_values`.`ownerId` AS `ownerId`,'group' AS `kind`,`access_group_values`.`name` AS `name`,`access_group_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_group_values`.`description` AS `description`,`access_group_values`.`systemId` AS `systemId`,`access_group_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,`access_group_values`.`identifier` AS `identifier`,`access_group_values`.`templateId` AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_group_values` union all select `access_membership_values`.`ownerId` AS `ownerId`,'membership' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_membership_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_membership_values`.`startDate` AS `startDate`,`access_membership_values`.`endDate` AS `endDate`,`access_membership_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_membership_values`.`groupId` AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_membership_values` union all select `access_resource_values`.`ownerId` AS `ownerId`,'resource' AS `kind`,`access_resource_values`.`name` AS `name`,`access_resource_values`.`active` AS `active`,`access_resource_values`.`resourceTypeId` AS `resourceTypeId`,NULL AS `description`,`access_resource_values`.`systemId` AS `systemId`,`access_resource_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_resource_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,`access_resource_values`.`reference` AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_values` union all select `access_grant_values`.`ownerId` AS `ownerId`,'grant' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_grant_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_grant_values`.`startDate` AS `startDate`,`access_grant_values`.`endDate` AS `endDate`,`access_grant_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_grant_values`.`groupId` AS `groupId`,NULL AS `reference`,`access_grant_values`.`resourceId` AS `resourceId`,`access_grant_values`.`permissionId` AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_grant_values` union all select `access_need_values`.`ownerId` AS `ownerId`,'need' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_need_values`.`notes` AS `notes`,NULL AS `accountId`,`access_need_values`.`personId` AS `personId`,`access_need_values`.`startDate` AS `startDate`,`access_need_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,`access_need_values`.`resourceId` AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_need_values` union all select `access_coverage_values`.`ownerId` AS `ownerId`,'coverage' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,`access_coverage_values`.`startDate` AS `startDate`,`access_coverage_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,`access_coverage_values`.`needId` AS `needId`,`access_coverage_values`.`grantId` AS `grantId`,`access_coverage_values`.`accountPersonId` AS `accountPersonId`,`access_coverage_values`.`membershipId` AS `membershipId` from `access_coverage_values`", + "character_set_client": "utf8mb4", + "collation_connection": "utf8mb4_unicode_ci" + }, + { + "Table": "access_directory_environments", + "Create Table": "CREATE TABLE `access_directory_environments` (\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemKind` varchar(30) NOT NULL DEFAULT 'environment',\n PRIMARY KEY (`environmentId`),\n UNIQUE KEY `directory_environment_scope` (`environmentId`,`companyId`),\n KEY `directory_environment_item` (`environmentId`,`workspaceId`,`itemKind`),\n KEY `directory_environment_system` (`systemId`,`workspaceId`,`companyId`),\n KEY `directory_environment_company` (`workspaceId`,`companyId`),\n CONSTRAINT `directory_environment_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `directory_environment_item` FOREIGN KEY (`environmentId`, `workspaceId`, `itemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `directory_environment_system` FOREIGN KEY (`systemId`, `workspaceId`, `companyId`) REFERENCES `access_directory_systems` (`systemId`, `workspaceId`, `companyId`),\n CONSTRAINT `directory_environment_kind` CHECK (`itemKind` = 'environment')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_directory_systems", + "Create Table": "CREATE TABLE `access_directory_systems` (\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemKind` varchar(30) NOT NULL DEFAULT 'system',\n PRIMARY KEY (`systemId`),\n UNIQUE KEY `directory_system_workspace` (`workspaceId`),\n UNIQUE KEY `directory_system_scope` (`systemId`,`workspaceId`,`companyId`),\n KEY `directory_system_item` (`systemId`,`workspaceId`,`itemKind`),\n KEY `directory_system_company` (`workspaceId`,`companyId`),\n CONSTRAINT `directory_system_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `directory_system_item` FOREIGN KEY (`systemId`, `workspaceId`, `itemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `directory_system_kind` CHECK (`itemKind` = 'system')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_environment_revision_values", + "Create Table": "CREATE TABLE `access_environment_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_environment_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_environment_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_environment_values", + "Create Table": "CREATE TABLE `access_environment_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_environment_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_environment_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_grant_revision_values", + "Create Table": "CREATE TABLE `access_grant_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceId` (`resourceId`),\n KEY `permissionId` (`permissionId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_grant_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_grant_revision_values_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_3` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_5` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_grant_values", + "Create Table": "CREATE TABLE `access_grant_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceId` (`resourceId`),\n KEY `permissionId` (`permissionId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_grant_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_grant_values_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_3` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_5` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_group_revision_values", + "Create Table": "CREATE TABLE `access_group_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `identifier` varchar(255) NOT NULL,\n `description` text DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `access_group_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_group_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_revision_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_revision_values_ibfk_4` FOREIGN KEY (`templateId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_group_values", + "Create Table": "CREATE TABLE `access_group_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `identifier` varchar(255) NOT NULL,\n `description` text DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `access_group_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_group_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_values_ibfk_4` FOREIGN KEY (`templateId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "View": "access_historical_values", + "Create View": "CREATE ALGORITHM=UNDEFINED DEFINER=`scope_test`@`%` SQL SECURITY DEFINER VIEW `access_historical_values` AS select `access_system_revision_values`.`ownerId` AS `ownerId`,'system' AS `kind`,`access_system_revision_values`.`name` AS `name`,`access_system_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_system_revision_values` union all select `access_resource_type_revision_values`.`ownerId` AS `ownerId`,'resource_type' AS `kind`,`access_resource_type_revision_values`.`name` AS `name`,`access_resource_type_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_type_revision_values` union all select `access_permission_revision_values`.`ownerId` AS `ownerId`,'permission' AS `kind`,`access_permission_revision_values`.`name` AS `name`,`access_permission_revision_values`.`active` AS `active`,`access_permission_revision_values`.`resourceTypeId` AS `resourceTypeId`,`access_permission_revision_values`.`description` AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_permission_revision_values` union all select `access_template_revision_values`.`ownerId` AS `ownerId`,'template' AS `kind`,`access_template_revision_values`.`name` AS `name`,`access_template_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_template_revision_values`.`description` AS `description`,`access_template_revision_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_template_revision_values` union all select `access_environment_revision_values`.`ownerId` AS `ownerId`,'environment' AS `kind`,`access_environment_revision_values`.`name` AS `name`,`access_environment_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_environment_revision_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_environment_revision_values` union all select `access_account_revision_values`.`ownerId` AS `ownerId`,'account' AS `kind`,NULL AS `name`,`access_account_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_account_revision_values`.`systemId` AS `systemId`,`access_account_revision_values`.`environmentId` AS `environmentId`,`access_account_revision_values`.`login` AS `login`,`access_account_revision_values`.`usage` AS `usage`,`access_account_revision_values`.`expiresOn` AS `expiresOn`,`access_account_revision_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_revision_values` union all select `access_account_person_revision_values`.`ownerId` AS `ownerId`,'account_person' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_account_person_revision_values`.`accountId` AS `accountId`,`access_account_person_revision_values`.`personId` AS `personId`,`access_account_person_revision_values`.`startDate` AS `startDate`,`access_account_person_revision_values`.`endDate` AS `endDate`,`access_account_person_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_person_revision_values` union all select `access_group_revision_values`.`ownerId` AS `ownerId`,'group' AS `kind`,`access_group_revision_values`.`name` AS `name`,`access_group_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_group_revision_values`.`description` AS `description`,`access_group_revision_values`.`systemId` AS `systemId`,`access_group_revision_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,`access_group_revision_values`.`identifier` AS `identifier`,`access_group_revision_values`.`templateId` AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_group_revision_values` union all select `access_membership_revision_values`.`ownerId` AS `ownerId`,'membership' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_membership_revision_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_membership_revision_values`.`startDate` AS `startDate`,`access_membership_revision_values`.`endDate` AS `endDate`,`access_membership_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_membership_revision_values`.`groupId` AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_membership_revision_values` union all select `access_resource_revision_values`.`ownerId` AS `ownerId`,'resource' AS `kind`,`access_resource_revision_values`.`name` AS `name`,`access_resource_revision_values`.`active` AS `active`,`access_resource_revision_values`.`resourceTypeId` AS `resourceTypeId`,NULL AS `description`,`access_resource_revision_values`.`systemId` AS `systemId`,`access_resource_revision_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_resource_revision_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,`access_resource_revision_values`.`reference` AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_revision_values` union all select `access_grant_revision_values`.`ownerId` AS `ownerId`,'grant' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_grant_revision_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_grant_revision_values`.`startDate` AS `startDate`,`access_grant_revision_values`.`endDate` AS `endDate`,`access_grant_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_grant_revision_values`.`groupId` AS `groupId`,NULL AS `reference`,`access_grant_revision_values`.`resourceId` AS `resourceId`,`access_grant_revision_values`.`permissionId` AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_grant_revision_values` union all select `access_need_revision_values`.`ownerId` AS `ownerId`,'need' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_need_revision_values`.`notes` AS `notes`,NULL AS `accountId`,`access_need_revision_values`.`personId` AS `personId`,`access_need_revision_values`.`startDate` AS `startDate`,`access_need_revision_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,`access_need_revision_values`.`resourceId` AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_need_revision_values` union all select `access_coverage_revision_values`.`ownerId` AS `ownerId`,'coverage' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,`access_coverage_revision_values`.`startDate` AS `startDate`,`access_coverage_revision_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,`access_coverage_revision_values`.`needId` AS `needId`,`access_coverage_revision_values`.`grantId` AS `grantId`,`access_coverage_revision_values`.`accountPersonId` AS `accountPersonId`,`access_coverage_revision_values`.`membershipId` AS `membershipId` from `access_coverage_revision_values`", + "character_set_client": "utf8mb4", + "collation_connection": "utf8mb4_unicode_ci" + }, + { + "Table": "access_items", + "Create Table": "CREATE TABLE `access_items` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(30) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_item_scope_kind` (`id`,`workspaceId`,`kind`),\n KEY `workspaceId` (`workspaceId`),\n CONSTRAINT `access_items_ibfk_1` FOREIGN KEY (`workspaceId`) REFERENCES `access_workspaces` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_local_identity_environments", + "Create Table": "CREATE TABLE `access_local_identity_environments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentKind` varchar(30) NOT NULL DEFAULT 'environment',\n `systemKind` varchar(30) NOT NULL DEFAULT 'system',\n `identityScope` varchar(20) NOT NULL DEFAULT 'local-device',\n `startedAt` varchar(24) NOT NULL,\n `startedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `endedAt` varchar(24) DEFAULT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `local_identity_environment` (`environmentId`),\n KEY `local_identity_asset_page` (`companyId`,`assetId`,`id`),\n KEY `local_identity_environment_fk` (`environmentId`,`workspaceId`,`environmentKind`),\n KEY `local_identity_system_fk` (`systemId`,`systemWorkspaceId`,`systemKind`),\n KEY `local_identity_company` (`workspaceId`,`companyId`),\n KEY `local_identity_start_actor` (`startedBy`),\n KEY `local_identity_end_actor` (`endedBy`),\n CONSTRAINT `local_identity_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `local_identity_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `local_identity_end_actor` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `local_identity_environment_fk` FOREIGN KEY (`environmentId`, `workspaceId`, `environmentKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `local_identity_start_actor` FOREIGN KEY (`startedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `local_identity_system_fk` FOREIGN KEY (`systemId`, `systemWorkspaceId`, `systemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `local_identity_kind` CHECK (`environmentKind` = 'environment' and `systemKind` = 'system' and `identityScope` = 'local-device'),\n CONSTRAINT `local_identity_period` CHECK (`endedAt` is null and `endedBy` is null or `endedAt` is not null and `endedBy` is not null and `endedAt` >= `startedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_membership_revision_values", + "Create Table": "CREATE TABLE `access_membership_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_membership_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_membership_revision_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_membership_revision_values_ibfk_3` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_membership_values", + "Create Table": "CREATE TABLE `access_membership_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_membership_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_membership_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_membership_values_ibfk_3` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_permissions", + "Create Table": "CREATE TABLE `access_need_permissions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `access_need_permissions_unique` (`ownerId`,`permissionId`),\n KEY `permissionId` (`permissionId`),\n CONSTRAINT `access_need_permissions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_need_values` (`ownerId`) ON DELETE CASCADE,\n CONSTRAINT `access_need_permissions_ibfk_2` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_revision_permissions", + "Create Table": "CREATE TABLE `access_need_revision_permissions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `access_need_revision_permissions_unique` (`ownerId`,`permissionId`),\n KEY `permissionId` (`permissionId`),\n CONSTRAINT `access_need_revision_permissions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_need_revision_values` (`ownerId`) ON DELETE CASCADE,\n CONSTRAINT `access_need_revision_permissions_ibfk_2` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_revision_values", + "Create Table": "CREATE TABLE `access_need_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `personId` (`personId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `access_need_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_need_revision_values_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `access_need_revision_values_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_values", + "Create Table": "CREATE TABLE `access_need_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `personId` (`personId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `access_need_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_need_values_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `access_need_values_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_permission_revision_values", + "Create Table": "CREATE TABLE `access_permission_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `description` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n CONSTRAINT `access_permission_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_permission_revision_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_permission_values", + "Create Table": "CREATE TABLE `access_permission_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `description` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n CONSTRAINT `access_permission_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_permission_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_person_references", + "Create Table": "CREATE TABLE `access_person_references` (\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`itemId`,`personId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_person_references_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_person_references_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_references", + "Create Table": "CREATE TABLE `access_references` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `targetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `access_reference_unique` (`itemId`,`targetId`),\n KEY `targetId` (`targetId`),\n CONSTRAINT `access_references_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_references_ibfk_2` FOREIGN KEY (`targetId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_revision_values", + "Create Table": "CREATE TABLE `access_resource_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `reference` varchar(255) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_resource_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_resource_revision_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_revision_values_ibfk_3` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_revision_values_ibfk_4` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_type_revision_values", + "Create Table": "CREATE TABLE `access_resource_type_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_resource_type_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_type_values", + "Create Table": "CREATE TABLE `access_resource_type_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_resource_type_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_values", + "Create Table": "CREATE TABLE `access_resource_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `reference` varchar(255) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_resource_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_resource_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_values_ibfk_3` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_values_ibfk_4` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_revisions", + "Create Table": "CREATE TABLE `access_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sequence` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `access_revision_sequence_unique` (`itemId`,`sequence`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `access_revisions_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_system_revision_values", + "Create Table": "CREATE TABLE `access_system_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_system_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_system_values", + "Create Table": "CREATE TABLE `access_system_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_system_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_template_revision_values", + "Create Table": "CREATE TABLE `access_template_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `description` text DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_template_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_template_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_template_values", + "Create Table": "CREATE TABLE `access_template_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `description` text DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_template_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_template_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_workspaces", + "Create Table": "CREATE TABLE `access_workspaces` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `scopeKey` varchar(40) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `scopeKey` (`scopeKey`),\n UNIQUE KEY `directory_workspace_company` (`id`,`companyId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `access_workspaces_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "application_configurations", + "Create Table": "CREATE TABLE `application_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `delivery` varchar(16) NOT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `application_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `application_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `application_configurations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "application_configuration_revisions", + "Create Table": "CREATE TABLE `application_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `delivery` varchar(16) NOT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `application_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `application_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `application_configurations` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "assets", + "Create Table": "CREATE TABLE `assets` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `brandId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `registeredOn` date DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `status` varchar(15) NOT NULL,\n `notes` text NOT NULL,\n `brandDefined` tinyint(1) NOT NULL DEFAULT 0,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assets_company_identity` (`companyId`,`id`),\n KEY `templateId` (`templateId`),\n KEY `siteId` (`siteId`),\n KEY `brandId` (`brandId`),\n CONSTRAINT `assets_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `assets_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `assets_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `assets_ibfk_4` FOREIGN KEY (`brandId`) REFERENCES `asset_brands` (`id`),\n CONSTRAINT `assets_brand_presence` CHECK (`brandId` is null or `brandDefined` = 1),\n CONSTRAINT `assets_status` CHECK (`status` in ('operational','broken','available','in_use','maintenance','retired'))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_availability", + "Create Table": "CREATE TABLE `asset_availability` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `definitionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_company_availability_unique` (`companyId`,`definitionId`),\n KEY `catalogId` (`catalogId`),\n KEY `definitionId` (`definitionId`),\n CONSTRAINT `asset_availability_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `asset_catalogs` (`id`),\n CONSTRAINT `asset_availability_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_availability_ibfk_3` FOREIGN KEY (`definitionId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_brands", + "Create Table": "CREATE TABLE `asset_brands` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `builtin` tinyint(1) NOT NULL,\n `logoSvg` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `name` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_catalogs", + "Create Table": "CREATE TABLE `asset_catalogs` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogKey` varchar(20) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `catalogKey` (`catalogKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_characteristics", + "Create Table": "CREATE TABLE `asset_characteristics` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`assetId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_characteristics_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_characteristics_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_characteristics_snapshot` FOREIGN KEY (`assetId`, `fieldId`) REFERENCES `asset_specification_fields` (`assetId`, `fieldId`),\n CONSTRAINT `asset_characteristics_typed_value` CHECK (`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_definitions", + "Create Table": "CREATE TABLE `asset_definitions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `stockKey` varchar(100) DEFAULT NULL,\n `kind` varchar(12) NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `icon` varchar(30) DEFAULT NULL,\n `fieldType` varchar(12) DEFAULT NULL,\n `unit` varchar(30) DEFAULT NULL,\n `inverseName` varchar(100) DEFAULT NULL,\n `symmetric` tinyint(1) DEFAULT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `stockKey` (`stockKey`),\n KEY `catalogId` (`catalogId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `asset_definitions_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `asset_catalogs` (`id`),\n CONSTRAINT `asset_definitions_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_definition_kind` CHECK (`kind` = 'field' and `fieldType` in ('text','multiline','number','date','boolean','choice') and `unit` is not null and `inverseName` is null and `symmetric` is null or `kind` = 'template' and `fieldType` is null and `unit` is null and `inverseName` is null and `symmetric` is null or `kind` = 'relation' and `fieldType` is null and `unit` is null and `inverseName` is not null and `symmetric` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_directory_memberships", + "Create Table": "CREATE TABLE `asset_directory_memberships` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `domainResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `predecessorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `role` varchar(30) NOT NULL,\n `createdAt` varchar(30) NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `activeAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_membership_identity_scope` (`id`,`companyId`,`assetId`),\n UNIQUE KEY `directory_membership_active` (`activeAssetId`),\n UNIQUE KEY `directory_membership_predecessor` (`predecessorId`),\n KEY `directory_membership_asset` (`companyId`,`assetId`,`id`),\n KEY `directory_membership_domain` (`companyId`,`domainResourceId`,`role`,`endedAt`,`id`),\n KEY `directory_membership_domain_fk` (`domainResourceId`,`companyId`),\n KEY `directory_membership_previous_fk` (`predecessorId`,`companyId`,`assetId`),\n KEY `directory_membership_domain_page` (`companyId`,`domainResourceId`,`id`),\n CONSTRAINT `directory_membership_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `directory_membership_domain_fk` FOREIGN KEY (`domainResourceId`, `companyId`) REFERENCES `resource_directory_domains` (`resourceId`, `companyId`),\n CONSTRAINT `directory_membership_previous_fk` FOREIGN KEY (`predecessorId`, `companyId`, `assetId`) REFERENCES `asset_directory_memberships` (`id`, `companyId`, `assetId`),\n CONSTRAINT `directory_membership_active_key` CHECK (`endedAt` is null and `activeAssetId` is not null and `activeAssetId` = `assetId` or `endedAt` is not null and `activeAssetId` is null),\n CONSTRAINT `directory_membership_role` CHECK (`role` in ('member','domain-controller')),\n CONSTRAINT `directory_membership_period` CHECK (`endedAt` is null or `endedAt` >= `createdAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_directory_membership_revisions", + "Create Table": "CREATE TABLE `asset_directory_membership_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `role` varchar(30) NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_membership_revision_order` (`membershipId`,`position`),\n KEY `directory_membership_revision_actor` (`actorId`),\n CONSTRAINT `directory_membership_revision_actor` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `directory_membership_revision_owner` FOREIGN KEY (`membershipId`) REFERENCES `asset_directory_memberships` (`id`),\n CONSTRAINT `directory_membership_revision_role` CHECK (`role` in ('member','domain-controller')),\n CONSTRAINT `directory_membership_revision_position` CHECK (`position` >= 0),\n CONSTRAINT `directory_membership_revision_period` CHECK (`endedAt` is null or `endedAt` <= `recordedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_field_choices", + "Create Table": "CREATE TABLE `asset_field_choices` (\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`fieldId`,`position`),\n CONSTRAINT `asset_field_choices_ibfk_1` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure", + "Create Table": "CREATE TABLE `asset_infrastructure` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assetId` (`assetId`),\n KEY `infrastructure_asset_company` (`companyId`,`assetId`),\n CONSTRAINT `asset_infrastructure_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_infrastructure_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `infrastructure_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure_revisions", + "Create Table": "CREATE TABLE `asset_infrastructure_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `infrastructureId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `infrastructure_revision_position` (`infrastructureId`,`position`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `asset_infrastructure_revisions_ibfk_1` FOREIGN KEY (`infrastructureId`) REFERENCES `asset_infrastructure` (`id`),\n CONSTRAINT `asset_infrastructure_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure_roles", + "Create Table": "CREATE TABLE `asset_infrastructure_roles` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `role` varchar(30) NOT NULL,\n PRIMARY KEY (`revisionId`,`role`),\n CONSTRAINT `asset_infrastructure_roles_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_interface_address_snapshots", + "Create Table": "CREATE TABLE `asset_interface_address_snapshots` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `interfaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `address` varchar(45) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `interface_address_owner` (`revisionId`,`interfaceId`),\n CONSTRAINT `asset_interface_address_snapshots_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`),\n CONSTRAINT `interface_address_owner` FOREIGN KEY (`revisionId`, `interfaceId`) REFERENCES `asset_interface_snapshots` (`revisionId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_interface_snapshots", + "Create Table": "CREATE TABLE `asset_interface_snapshots` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `kind` varchar(12) NOT NULL,\n `mac` varchar(17) NOT NULL,\n `notes` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n CONSTRAINT `asset_interface_snapshots_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_network_share_publications", + "Create Table": "CREATE TABLE `asset_network_share_publications` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `predecessorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startedAt` varchar(30) NOT NULL,\n `startedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `activeResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `publication_scope` (`id`,`companyId`,`resourceId`),\n UNIQUE KEY `publication_active_resource` (`activeResourceId`),\n UNIQUE KEY `publication_successor` (`predecessorId`),\n KEY `publication_asset` (`companyId`,`assetId`,`id`),\n KEY `publication_resource` (`companyId`,`resourceId`,`id`),\n KEY `publication_share_fk` (`resourceId`,`companyId`),\n KEY `publication_previous_fk` (`predecessorId`,`companyId`,`resourceId`),\n KEY `publication_start_actor` (`startedBy`),\n KEY `publication_end_actor` (`endedBy`),\n CONSTRAINT `publication_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `publication_end_actor` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `publication_previous_fk` FOREIGN KEY (`predecessorId`, `companyId`, `resourceId`) REFERENCES `asset_network_share_publications` (`id`, `companyId`, `resourceId`),\n CONSTRAINT `publication_share_fk` FOREIGN KEY (`resourceId`, `companyId`) REFERENCES `resource_network_shares` (`resourceId`, `companyId`),\n CONSTRAINT `publication_start_actor` FOREIGN KEY (`startedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `publication_active` CHECK (`endedAt` is null and `endedBy` is null and `activeResourceId` is not null and `activeResourceId` = `resourceId` or `endedAt` is not null and `endedBy` is not null and `activeResourceId` is null),\n CONSTRAINT `publication_previous_identity` CHECK (`predecessorId` is null or `predecessorId` <> `id`),\n CONSTRAINT `publication_period` CHECK (`endedAt` is null or `endedAt` >= `startedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_relationships", + "Create Table": "CREATE TABLE `asset_relationships` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `targetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `typeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `inverseName` varchar(100) NOT NULL,\n `symmetric` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `createdBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `createdAt` varchar(30) NOT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `activeKey` varchar(150) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `activeKey` (`activeKey`),\n KEY `sourceId` (`sourceId`),\n KEY `targetId` (`targetId`),\n KEY `typeId` (`typeId`),\n KEY `createdBy` (`createdBy`),\n KEY `endedBy` (`endedBy`),\n KEY `relationship_source_company` (`companyId`,`sourceId`),\n KEY `relationship_target_company` (`companyId`,`targetId`),\n CONSTRAINT `asset_relationships_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_relationships_ibfk_2` FOREIGN KEY (`sourceId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_relationships_ibfk_3` FOREIGN KEY (`targetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_relationships_ibfk_4` FOREIGN KEY (`typeId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_relationships_ibfk_5` FOREIGN KEY (`createdBy`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_relationships_ibfk_6` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `relationship_source_company` FOREIGN KEY (`companyId`, `sourceId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `relationship_target_company` FOREIGN KEY (`companyId`, `targetId`) REFERENCES `assets` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revisions", + "Create Table": "CREATE TABLE `asset_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `brandId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `registeredOn` date DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `status` varchar(15) NOT NULL,\n `notes` text NOT NULL,\n `brandDefined` tinyint(1) NOT NULL DEFAULT 0,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_revision_identity` (`id`,`assetId`),\n KEY `assetId` (`assetId`),\n KEY `actorId` (`actorId`),\n KEY `siteId` (`siteId`),\n KEY `brandId` (`brandId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `asset_revisions_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_revisions_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `asset_revisions_ibfk_4` FOREIGN KEY (`brandId`) REFERENCES `asset_brands` (`id`),\n CONSTRAINT `asset_revisions_ibfk_5` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_revisions_brand_presence` CHECK (`brandId` is null or `brandDefined` = 1),\n CONSTRAINT `asset_revisions_status` CHECK (`status` in ('operational','broken','available','in_use','maintenance','retired'))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_characteristics", + "Create Table": "CREATE TABLE `asset_revision_characteristics` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `assetId` (`assetId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_value_revision_owner` (`revisionId`,`assetId`),\n CONSTRAINT `asset_historical_field_snapshot` FOREIGN KEY (`revisionId`, `fieldId`) REFERENCES `asset_revision_specification_fields` (`revisionId`, `fieldId`),\n CONSTRAINT `asset_revision_characteristics_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_characteristics_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_characteristics_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_value_revision_owner` FOREIGN KEY (`revisionId`, `assetId`) REFERENCES `asset_revisions` (`id`, `assetId`),\n CONSTRAINT `asset_revision_characteristics_typed_value` CHECK (`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specifications", + "Create Table": "CREATE TABLE `asset_revision_specifications` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL,\n PRIMARY KEY (`revisionId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specifications_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specifications_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_choices", + "Create Table": "CREATE TABLE `asset_revision_specification_choices` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`,`position`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specification_choices_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_choices_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_fields", + "Create Table": "CREATE TABLE `asset_revision_specification_fields` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `assetId` (`assetId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_revision_specification_fields_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_fields_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_revision_specification_fields_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_sections", + "Create Table": "CREATE TABLE `asset_revision_specification_sections` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specification_sections_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_sections_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_fields", + "Create Table": "CREATE TABLE `asset_specification_fields` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`assetId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_snapshot_section` (`assetId`,`sectionId`),\n CONSTRAINT `asset_snapshot_section` FOREIGN KEY (`assetId`, `sectionId`) REFERENCES `asset_specification_sections` (`assetId`, `id`),\n CONSTRAINT `asset_specification_fields_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_specification_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_field_choices", + "Create Table": "CREATE TABLE `asset_specification_field_choices` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`assetId`,`fieldId`,`position`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_specification_field_choices_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_specification_field_choices_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_specification_field_choices_snapshot` FOREIGN KEY (`assetId`, `fieldId`) REFERENCES `asset_specification_fields` (`assetId`, `fieldId`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_sections", + "Create Table": "CREATE TABLE `asset_specification_sections` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`assetId`,`id`),\n CONSTRAINT `asset_specification_sections_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_support", + "Create Table": "CREATE TABLE `asset_support` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `destination` varchar(300) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `preferred` tinyint(1) NOT NULL,\n `state` varchar(12) NOT NULL,\n `notes` text NOT NULL,\n `preferredKey` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `preferredKey` (`preferredKey`),\n KEY `assetId` (`assetId`),\n KEY `support_asset_company` (`companyId`,`assetId`),\n KEY `asset_support_resource_reference` (`resourceId`),\n KEY `support_resource_company` (`companyId`,`resourceId`),\n CONSTRAINT `asset_support_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_support_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_support_resource_reference` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `support_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `support_resource_company` FOREIGN KEY (`companyId`, `resourceId`) REFERENCES `resources` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_support_revisions", + "Create Table": "CREATE TABLE `asset_support_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `destination` varchar(300) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `preferred` tinyint(1) NOT NULL,\n `state` varchar(12) NOT NULL,\n `notes` text NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `connectionId` (`connectionId`),\n KEY `actorId` (`actorId`),\n KEY `asset_support_revisions_resource_reference` (`resourceId`),\n CONSTRAINT `asset_support_revisions_ibfk_1` FOREIGN KEY (`connectionId`) REFERENCES `asset_support` (`id`),\n CONSTRAINT `asset_support_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_support_revisions_resource_reference` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_template_fields", + "Create Table": "CREATE TABLE `asset_template_fields` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `required` tinyint(1) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_template_field_unique` (`templateId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_binding_section_template` (`templateId`,`sectionId`),\n CONSTRAINT `asset_binding_section_template` FOREIGN KEY (`templateId`, `sectionId`) REFERENCES `asset_template_sections` (`templateId`, `id`),\n CONSTRAINT `asset_template_fields_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_template_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_template_sections", + "Create Table": "CREATE TABLE `asset_template_sections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_section_template_identity` (`templateId`,`id`),\n CONSTRAINT `asset_template_sections_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "brand_catalog_lock", + "Create Table": "CREATE TABLE `brand_catalog_lock` (\n `id` int(11) NOT NULL,\n `logosImported` tinyint(1) NOT NULL DEFAULT 0,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "certificate_configurations", + "Create Table": "CREATE TABLE `certificate_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `location` varchar(255) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `certificate_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `certificate_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `certificate_configurations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "certificate_configuration_revisions", + "Create Table": "CREATE TABLE `certificate_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `location` varchar(255) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `certificate_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `certificate_configurations` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "companies", + "Create Table": "CREATE TABLE `companies` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `logoVersion` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_contacts", + "Create Table": "CREATE TABLE `company_contacts` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `email` varchar(254) DEFAULT NULL,\n `phone` varchar(50) DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `photoVersion` varchar(64) DEFAULT NULL,\n `isContact` tinyint(1) NOT NULL DEFAULT 1,\n PRIMARY KEY (`id`),\n UNIQUE KEY `person_company_identity_unique` (`id`,`companyId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `company_contacts_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_departments", + "Create Table": "CREATE TABLE `company_departments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `nameKey` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `department_company_identity_unique` (`id`,`companyId`),\n UNIQUE KEY `department_company_name_unique` (`companyId`,`nameKey`),\n CONSTRAINT `company_departments_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_logos", + "Create Table": "CREATE TABLE `company_logos` (\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `data` mediumblob NOT NULL,\n `version` varchar(64) NOT NULL,\n PRIMARY KEY (`companyId`),\n CONSTRAINT `company_logos_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_sites", + "Create Table": "CREATE TABLE `company_sites` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL DEFAULT 1,\n `address` text DEFAULT NULL,\n `phone` varchar(50) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `company_sites_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "department_assignment_revisions", + "Create Table": "CREATE TABLE `department_assignment_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assignmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sequence` int(11) NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `startDate` date NOT NULL,\n `endDate` date DEFAULT NULL,\n `isPrimary` tinyint(1) NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assignment_revision_sequence_unique` (`assignmentId`,`sequence`),\n CONSTRAINT `department_assignment_revisions_ibfk_1` FOREIGN KEY (`assignmentId`) REFERENCES `person_department_assignments` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "folder_mappings", + "Create Table": "CREATE TABLE `folder_mappings` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accessAccountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `path` varchar(255) NOT NULL,\n `driveLetter` varchar(2) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(110) DEFAULT NULL,\n `driveKey` varchar(40) DEFAULT NULL,\n `accessAccountWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `accessAccountKind` varchar(30) NOT NULL DEFAULT 'account',\n PRIMARY KEY (`id`),\n UNIQUE KEY `folder_mapping_company_scope` (`id`,`companyId`),\n UNIQUE KEY `currentKey` (`currentKey`),\n UNIQUE KEY `driveKey` (`driveKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `needId` (`needId`),\n KEY `folder_account_item` (`accessAccountId`,`accessAccountWorkspaceId`,`accessAccountKind`),\n KEY `folder_account_company` (`accessAccountWorkspaceId`,`companyId`),\n CONSTRAINT `folder_account_company` FOREIGN KEY (`accessAccountWorkspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `folder_account_item` FOREIGN KEY (`accessAccountId`, `accessAccountWorkspaceId`, `accessAccountKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `folder_mappings_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `folder_mappings_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `folder_mappings_ibfk_3` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mappings_ibfk_4` FOREIGN KEY (`accessAccountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_account_kind` CHECK (`accessAccountKind` = 'account'),\n CONSTRAINT `folder_account_nullable` CHECK (`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "folder_mapping_revisions", + "Create Table": "CREATE TABLE `folder_mapping_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `mappingId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accessAccountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `path` varchar(255) NOT NULL,\n `driveLetter` varchar(2) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `accessAccountWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `accessAccountKind` varchar(30) NOT NULL DEFAULT 'account',\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `folder_mapping_position` (`mappingId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `needId` (`needId`),\n KEY `actorId` (`actorId`),\n KEY `folder_revision_account_item` (`accessAccountId`,`accessAccountWorkspaceId`,`accessAccountKind`),\n KEY `folder_revision_account_company` (`accessAccountWorkspaceId`,`companyId`),\n KEY `folder_revision_account_mapping` (`mappingId`,`companyId`),\n CONSTRAINT `folder_mapping_revisions_ibfk_1` FOREIGN KEY (`mappingId`) REFERENCES `folder_mappings` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_3` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_4` FOREIGN KEY (`accessAccountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_5` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `folder_revision_account_company` FOREIGN KEY (`accessAccountWorkspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `folder_revision_account_item` FOREIGN KEY (`accessAccountId`, `accessAccountWorkspaceId`, `accessAccountKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `folder_revision_account_mapping` FOREIGN KEY (`mappingId`, `companyId`) REFERENCES `folder_mappings` (`id`, `companyId`),\n CONSTRAINT `folder_revision_account_kind` CHECK (`accessAccountKind` = 'account'),\n CONSTRAINT `folder_revision_account_nullable` CHECK (`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "http_sessions", + "Create Table": "CREATE TABLE `http_sessions` (\n `sid` varchar(36) NOT NULL,\n `expires` datetime DEFAULT NULL,\n `userId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `authVersion` int(11) DEFAULT NULL,\n `csrfToken` varchar(128) DEFAULT NULL,\n `cookieExpires` varchar(30) DEFAULT NULL,\n `originalMaxAge` bigint(20) DEFAULT NULL,\n `cookiePath` varchar(255) DEFAULT NULL,\n `cookieDomain` varchar(255) DEFAULT NULL,\n `cookieSecure` varchar(10) DEFAULT NULL,\n `cookieHttpOnly` tinyint(1) DEFAULT NULL,\n `cookieSameSite` varchar(10) DEFAULT NULL,\n `cookiePartitioned` tinyint(1) DEFAULT NULL,\n `cookiePriority` varchar(10) DEFAULT NULL,\n `createdAt` datetime NOT NULL,\n `updatedAt` datetime NOT NULL,\n PRIMARY KEY (`sid`),\n KEY `userId` (`userId`),\n KEY `http_sessions_expires` (`expires`),\n CONSTRAINT `http_sessions_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `users` (`id`) ON DELETE SET NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "identity_state", + "Create Table": "CREATE TABLE `identity_state` (\n `id` int(11) NOT NULL,\n `initialAdminId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `initialAdminId` (`initialAdminId`),\n CONSTRAINT `identity_state_ibfk_1` FOREIGN KEY (`initialAdminId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_department_assignments", + "Create Table": "CREATE TABLE `person_department_assignments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `departmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `startDate` date NOT NULL,\n `endDate` date DEFAULT NULL,\n `isPrimary` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n KEY `assignment_person_company_fk` (`personId`,`companyId`),\n KEY `assignment_department_company_fk` (`departmentId`,`companyId`),\n CONSTRAINT `assignment_department_company_fk` FOREIGN KEY (`departmentId`, `companyId`) REFERENCES `company_departments` (`id`, `companyId`),\n CONSTRAINT `assignment_person_company_fk` FOREIGN KEY (`personId`, `companyId`) REFERENCES `company_contacts` (`id`, `companyId`),\n CONSTRAINT `person_department_assignments_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_photos", + "Create Table": "CREATE TABLE `person_photos` (\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `data` mediumblob NOT NULL,\n `version` varchar(64) NOT NULL,\n `createdAt` datetime NOT NULL,\n `updatedAt` datetime NOT NULL,\n PRIMARY KEY (`personId`),\n KEY `person_photos_person_fk` (`personId`,`companyId`),\n CONSTRAINT `person_photos_person_fk` FOREIGN KEY (`personId`, `companyId`) REFERENCES `company_contacts` (`id`, `companyId`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_processes", + "Create Table": "CREATE TABLE `person_processes` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `name` varchar(160) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `currentKey` varchar(100) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `personId` (`personId`),\n KEY `templateId` (`templateId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `person_processes_ibfk_1` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `person_processes_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `process_templates` (`id`),\n CONSTRAINT `person_processes_ibfk_3` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_revisions", + "Create Table": "CREATE TABLE `person_process_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `name` varchar(160) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `person_process_revisions_position` (`itemId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `person_process_revisions_ibfk_1` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_3` FOREIGN KEY (`templateId`) REFERENCES `process_templates` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_4` FOREIGN KEY (`itemId`) REFERENCES `person_processes` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_revision_tasks", + "Create Table": "CREATE TABLE `person_process_revision_tasks` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n `taskId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `status` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `referenceKind` varchar(20) DEFAULT NULL,\n `referenceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceLabel` varchar(500) DEFAULT NULL,\n `sourceKind` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`,`taskId`),\n UNIQUE KEY `person_process_revision_tasks_position` (`ownerId`,`position`),\n CONSTRAINT `person_process_revision_tasks_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `person_process_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_tasks", + "Create Table": "CREATE TABLE `person_process_tasks` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n `taskId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `status` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `referenceKind` varchar(20) DEFAULT NULL,\n `referenceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceLabel` varchar(500) DEFAULT NULL,\n `sourceKind` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`,`taskId`),\n UNIQUE KEY `person_process_tasks_position` (`ownerId`,`position`),\n CONSTRAINT `person_process_tasks_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `person_processes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "printer_configurations", + "Create Table": "CREATE TABLE `printer_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `printerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connection` varchar(16) NOT NULL,\n `isDefault` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n `defaultKey` varchar(40) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n UNIQUE KEY `defaultKey` (`defaultKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `printerId` (`printerId`),\n CONSTRAINT `printer_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `printer_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `printer_configurations_ibfk_3` FOREIGN KEY (`printerId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "printer_configuration_revisions", + "Create Table": "CREATE TABLE `printer_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `printerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connection` varchar(16) NOT NULL,\n `isDefault` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `printer_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `printerId` (`printerId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `printer_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `printer_configurations` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_3` FOREIGN KEY (`printerId`) REFERENCES `assets` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_catalog_lock", + "Create Table": "CREATE TABLE `process_catalog_lock` (\n `id` int(11) NOT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_templates", + "Create Table": "CREATE TABLE `process_templates` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `nameKey` varchar(160) NOT NULL,\n `builtinKey` varchar(30) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `nameKey` (`nameKey`),\n UNIQUE KEY `builtinKey` (`builtinKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_instructions", + "Create Table": "CREATE TABLE `process_template_instructions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `process_template_instructions_position` (`ownerId`,`position`),\n CONSTRAINT `process_template_instructions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `process_templates` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_revisions", + "Create Table": "CREATE TABLE `process_template_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `name` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `process_template_revisions_position` (`itemId`,`position`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `process_template_revisions_ibfk_1` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `process_template_revisions_ibfk_2` FOREIGN KEY (`itemId`) REFERENCES `process_templates` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_revision_instructions", + "Create Table": "CREATE TABLE `process_template_revision_instructions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `process_template_revision_instructions_position` (`ownerId`,`position`),\n CONSTRAINT `process_template_revision_instructions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `process_template_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "remote_connections", + "Create Table": "CREATE TABLE `remote_connections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceKind` varchar(20) NOT NULL,\n `sourceAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetKind` varchar(16) NOT NULL,\n `targetAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `method` varchar(80) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n KEY `sourceAssetId` (`sourceAssetId`),\n KEY `targetAssetId` (`targetAssetId`),\n KEY `targetResourceId` (`targetResourceId`),\n KEY `siteId` (`siteId`),\n CONSTRAINT `remote_connections_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `remote_connections_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `remote_connections_ibfk_3` FOREIGN KEY (`sourceAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connections_ibfk_4` FOREIGN KEY (`targetAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connections_ibfk_5` FOREIGN KEY (`targetResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `remote_connections_ibfk_6` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `remote_connections_snapshot_shape` CHECK ((`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "remote_connection_revisions", + "Create Table": "CREATE TABLE `remote_connection_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceKind` varchar(20) NOT NULL,\n `sourceAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetKind` varchar(16) NOT NULL,\n `targetAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `method` varchar(80) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `remote_revision_position` (`connectionId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `sourceAssetId` (`sourceAssetId`),\n KEY `targetAssetId` (`targetAssetId`),\n KEY `targetResourceId` (`targetResourceId`),\n KEY `siteId` (`siteId`),\n CONSTRAINT `remote_connection_revisions_ibfk_1` FOREIGN KEY (`connectionId`) REFERENCES `remote_connections` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_4` FOREIGN KEY (`sourceAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_5` FOREIGN KEY (`targetAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_6` FOREIGN KEY (`targetResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_7` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `remote_connection_revisions_snapshot_shape` CHECK ((`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resources", + "Create Table": "CREATE TABLE `resources` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `integrationKind` varchar(10) DEFAULT NULL,\n `addressFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `contextFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `mailboxKind` varchar(10) DEFAULT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `scope` varchar(7) CHARACTER SET ascii COLLATE ascii_bin NOT NULL DEFAULT 'company',\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_resource_scope_template` (`id`,`companyId`,`templateId`),\n UNIQUE KEY `resource_company_identity` (`companyId`,`id`),\n KEY `templateId` (`templateId`),\n KEY `addressFieldId` (`addressFieldId`),\n KEY `contextFieldId` (`contextFieldId`),\n KEY `accountId` (`accountId`),\n KEY `referenceFieldId` (`referenceFieldId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `resources_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `resources_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_3` FOREIGN KEY (`addressFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_4` FOREIGN KEY (`contextFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_6` FOREIGN KEY (`referenceFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_7` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_8` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_9` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_scope_owner` CHECK (`scope` = 'company' and char_length(`scope`) = 7 and `companyId` is not null or `scope` = 'global' and char_length(`scope`) = 6 and `companyId` is null),\n CONSTRAINT `resource_global_no_integration` CHECK (`scope` = 'company' or `integrationKind` is null and `addressFieldId` is null and `contextFieldId` is null and `mailboxKind` is null and `accountId` is null and `referenceFieldId` is null and `resourceTypeId` is null and `systemId` is null and `environmentId` is null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_availability", + "Create Table": "CREATE TABLE `resource_availability` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `definitionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_company_availability_unique` (`companyId`,`definitionId`),\n KEY `catalogId` (`catalogId`),\n KEY `definitionId` (`definitionId`),\n CONSTRAINT `resource_availability_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `resource_catalogs` (`id`),\n CONSTRAINT `resource_availability_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `resource_availability_ibfk_3` FOREIGN KEY (`definitionId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_catalogs", + "Create Table": "CREATE TABLE `resource_catalogs` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogKey` varchar(20) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `catalogKey` (`catalogKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_characteristics", + "Create Table": "CREATE TABLE `resource_characteristics` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_characteristics_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_characteristics_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_definitions", + "Create Table": "CREATE TABLE `resource_definitions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `stockKey` varchar(100) DEFAULT NULL,\n `kind` varchar(12) NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `icon` varchar(30) DEFAULT NULL,\n `fieldType` varchar(12) DEFAULT NULL,\n `unit` varchar(30) DEFAULT NULL,\n `usage` varchar(15) DEFAULT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `stockKey` (`stockKey`),\n UNIQUE KEY `directory_template_key` (`id`,`stockKey`),\n KEY `catalogId` (`catalogId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `resource_definitions_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `resource_catalogs` (`id`),\n CONSTRAINT `resource_definitions_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_directory_domains", + "Create Table": "CREATE TABLE `resource_directory_domains` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateKey` varchar(100) NOT NULL DEFAULT 'template:windows_domain',\n `normalizedDns` varchar(253) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `associatedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `associatedAt` varchar(30) NOT NULL,\n PRIMARY KEY (`resourceId`),\n UNIQUE KEY `directory_dns_company` (`companyId`,`normalizedDns`),\n UNIQUE KEY `directory_environment_unique` (`environmentId`),\n UNIQUE KEY `directory_resource_company` (`resourceId`,`companyId`),\n KEY `directory_resource` (`resourceId`,`companyId`,`templateId`),\n KEY `directory_template` (`templateId`,`templateKey`),\n KEY `directory_context` (`environmentId`,`companyId`),\n KEY `directory_association_actor` (`associatedBy`),\n CONSTRAINT `directory_association_actor` FOREIGN KEY (`associatedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `directory_context` FOREIGN KEY (`environmentId`, `companyId`) REFERENCES `access_directory_environments` (`environmentId`, `companyId`),\n CONSTRAINT `directory_resource` FOREIGN KEY (`resourceId`, `companyId`, `templateId`) REFERENCES `resources` (`id`, `companyId`, `templateId`),\n CONSTRAINT `directory_template` FOREIGN KEY (`templateId`, `templateKey`) REFERENCES `resource_definitions` (`id`, `stockKey`),\n CONSTRAINT `directory_template_semantics` CHECK (`templateKey` = 'template:windows_domain'),\n CONSTRAINT `directory_dns_not_empty` CHECK (char_length(`normalizedDns`) > 0),\n CONSTRAINT `directory_dns_canonical` CHECK (`normalizedDns` = lcase(`normalizedDns`) and octet_length(`normalizedDns`) = octet_length(trim(`normalizedDns`)) and right(`normalizedDns`,1) <> '.')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_field_choices", + "Create Table": "CREATE TABLE `resource_field_choices` (\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`fieldId`,`position`),\n CONSTRAINT `resource_field_choices_ibfk_1` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_network_shares", + "Create Table": "CREATE TABLE `resource_network_shares` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateKey` varchar(100) NOT NULL DEFAULT 'template:shared_folder',\n `protocol` varchar(10) NOT NULL DEFAULT 'smb',\n `normalizedAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `activeAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`resourceId`),\n UNIQUE KEY `network_share_company` (`resourceId`,`companyId`),\n UNIQUE KEY `network_share_active_address` (`companyId`,`activeAddress`),\n KEY `network_share_resource` (`resourceId`,`companyId`,`templateId`),\n KEY `network_share_definition` (`templateId`,`templateKey`),\n CONSTRAINT `network_share_definition` FOREIGN KEY (`templateId`, `templateKey`) REFERENCES `resource_definitions` (`id`, `stockKey`),\n CONSTRAINT `network_share_resource` FOREIGN KEY (`resourceId`, `companyId`, `templateId`) REFERENCES `resources` (`id`, `companyId`, `templateId`),\n CONSTRAINT `network_share_protocol` CHECK (`protocol` = 'smb'),\n CONSTRAINT `network_share_template` CHECK (`templateKey` = 'template:shared_folder'),\n CONSTRAINT `network_share_address` CHECK (char_length(`normalizedAddress`) > 0),\n CONSTRAINT `network_share_active` CHECK (`activeAddress` is null or cast(`activeAddress` as char charset binary) = cast(`normalizedAddress` as char charset binary))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revisions", + "Create Table": "CREATE TABLE `resource_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `integrationKind` varchar(10) DEFAULT NULL,\n `addressFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `contextFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `mailboxKind` varchar(10) DEFAULT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_revision_position_unique` (`resourceId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `addressFieldId` (`addressFieldId`),\n KEY `contextFieldId` (`contextFieldId`),\n KEY `accountId` (`accountId`),\n KEY `referenceFieldId` (`referenceFieldId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `resource_revisions_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `resource_revisions_ibfk_10` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `resource_revisions_ibfk_3` FOREIGN KEY (`addressFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_4` FOREIGN KEY (`contextFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_6` FOREIGN KEY (`referenceFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_7` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_8` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_9` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_characteristics", + "Create Table": "CREATE TABLE `resource_revision_characteristics` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `resourceId` (`resourceId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_revision_characteristics_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_characteristics_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_characteristics_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specifications", + "Create Table": "CREATE TABLE `resource_revision_specifications` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL,\n PRIMARY KEY (`revisionId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specifications_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specifications_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_choices", + "Create Table": "CREATE TABLE `resource_revision_specification_choices` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`,`position`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specification_choices_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_choices_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_fields", + "Create Table": "CREATE TABLE `resource_revision_specification_fields` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `resourceId` (`resourceId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_revision_specification_fields_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_fields_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `resource_revision_specification_fields_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_sections", + "Create Table": "CREATE TABLE `resource_revision_specification_sections` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specification_sections_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_sections_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_fields", + "Create Table": "CREATE TABLE `resource_specification_fields` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_specification_fields_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_specification_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_field_choices", + "Create Table": "CREATE TABLE `resource_specification_field_choices` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`,`position`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_specification_field_choices_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_specification_field_choices_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_sections", + "Create Table": "CREATE TABLE `resource_specification_sections` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`resourceId`,`id`),\n CONSTRAINT `resource_specification_sections_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_template_fields", + "Create Table": "CREATE TABLE `resource_template_fields` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `required` tinyint(1) NOT NULL,\n `position` int(11) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_template_field_unique` (`templateId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `resource_template_field_section` (`templateId`,`sectionId`),\n CONSTRAINT `resource_template_field_section` FOREIGN KEY (`templateId`, `sectionId`) REFERENCES `resource_template_sections` (`templateId`, `id`),\n CONSTRAINT `resource_template_fields_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_template_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_template_sections", + "Create Table": "CREATE TABLE `resource_template_sections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`,`templateId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `resource_template_sections_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "software_installations", + "Create Table": "CREATE TABLE `software_installations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `licenseResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `assetId` (`assetId`),\n KEY `resourceId` (`resourceId`),\n KEY `licenseResourceId` (`licenseResourceId`),\n CONSTRAINT `software_installations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `software_installations_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `software_installations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installations_ibfk_4` FOREIGN KEY (`licenseResourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "software_installation_revisions", + "Create Table": "CREATE TABLE `software_installation_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `licenseResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `software_installation_position` (`configurationId`,`position`),\n KEY `assetId` (`assetId`),\n KEY `resourceId` (`resourceId`),\n KEY `licenseResourceId` (`licenseResourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `software_installation_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `software_installations` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_4` FOREIGN KEY (`licenseResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_5` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "telework_authorizations", + "Create Table": "CREATE TABLE `telework_authorizations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n `startsOn` varchar(10) DEFAULT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n CONSTRAINT `telework_authorizations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `telework_authorizations_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "telework_authorization_revisions", + "Create Table": "CREATE TABLE `telework_authorization_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `authorizationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n `startsOn` varchar(10) DEFAULT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `telework_revision_position` (`authorizationId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n CONSTRAINT `telework_authorization_revisions_ibfk_1` FOREIGN KEY (`authorizationId`) REFERENCES `telework_authorizations` (`id`),\n CONSTRAINT `telework_authorization_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `telework_authorization_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "users", + "Create Table": "CREATE TABLE `users` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `email` varchar(254) NOT NULL,\n `passwordHash` varchar(256) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `isInitialAdmin` tinyint(1) NOT NULL,\n `authVersion` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `email` (`email`),\n CONSTRAINT `initial_admin_active` CHECK (`isInitialAdmin` = 0 or `active` = 1)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstations", + "Create Table": "CREATE TABLE `workstations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `computerAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `workstations_company_identity` (`companyId`,`id`),\n KEY `siteId` (`siteId`),\n KEY `personId` (`personId`),\n KEY `computerAssetId` (`computerAssetId`),\n CONSTRAINT `workstations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `workstations_ibfk_2` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `workstations_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `workstations_ibfk_4` FOREIGN KEY (`computerAssetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_assets", + "Create Table": "CREATE TABLE `workstation_assets` (\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `activeKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`workstationId`,`assetId`),\n UNIQUE KEY `activeKey` (`activeKey`),\n KEY `assetId` (`assetId`),\n KEY `workstation_asset_company` (`companyId`,`assetId`),\n KEY `workstation_owner_company` (`companyId`,`workstationId`),\n CONSTRAINT `workstation_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `workstation_assets_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`),\n CONSTRAINT `workstation_assets_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `workstation_assets_ibfk_3` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `workstation_owner_company` FOREIGN KEY (`companyId`, `workstationId`) REFERENCES `workstations` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_members", + "Create Table": "CREATE TABLE `workstation_members` (\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(10) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`workstationId`,`assetId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `workstation_members_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`) ON DELETE CASCADE,\n CONSTRAINT `workstation_members_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_revisions", + "Create Table": "CREATE TABLE `workstation_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `computerAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `workstationId` (`workstationId`),\n KEY `actorId` (`actorId`),\n KEY `siteId` (`siteId`),\n KEY `personId` (`personId`),\n KEY `computerAssetId` (`computerAssetId`),\n CONSTRAINT `workstation_revisions_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_4` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_5` FOREIGN KEY (`computerAssetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_revision_members", + "Create Table": "CREATE TABLE `workstation_revision_members` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(10) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`assetId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `workstation_revision_members_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `workstation_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `workstation_revision_members_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "work_profiles", + "Create Table": "CREATE TABLE `work_profiles` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(110) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n KEY `assetId` (`assetId`),\n KEY `accountId` (`accountId`),\n CONSTRAINT `work_profiles_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `work_profiles_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `work_profiles_ibfk_3` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `work_profiles_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "work_profile_revisions", + "Create Table": "CREATE TABLE `work_profile_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `name` varchar(100) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `profile_revision_position` (`profileId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `assetId` (`assetId`),\n KEY `accountId` (`accountId`),\n CONSTRAINT `work_profile_revisions_ibfk_1` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_4` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + } + ], + "migration": { + "mode": "scoped", + "completed": [ + "scope", + "ownerCheck", + "integrationCheck", + "nullableOwner" + ] + }, + "repeatedMigration": "no changes", + "connection": { + "database": "metis_desk_test", + "host": "127.0.0.1", + "disposable": true + }, + "engines": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_person_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_coverage_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_current_values", + "ENGINE": null + }, + { + "TABLE_NAME": "access_directory_environments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_directory_systems", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_environment_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_grant_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_group_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_group_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_historical_values", + "ENGINE": null + }, + { + "TABLE_NAME": "access_items", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_membership_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_permissions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_permission_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_person_references", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_references", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_type_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_system_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_system_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_template_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_template_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_workspaces", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "application_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "assets", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_availability", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_brands", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_catalogs", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_definitions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_relationships", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_support", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_support_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_template_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_template_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "brand_catalog_lock", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "certificate_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "companies", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_contacts", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_departments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_logos", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_sites", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "folder_mappings", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "http_sessions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "identity_state", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_department_assignments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_photos", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_processes", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_tasks", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "printer_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_catalog_lock", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_templates", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_instructions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "remote_connections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resources", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_availability", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_catalogs", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_definitions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_directory_domains", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_network_shares", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_template_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_template_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "software_installations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "software_installation_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "telework_authorizations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "users", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_assets", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_members", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_revision_members", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "work_profiles", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "work_profile_revisions", + "ENGINE": "InnoDB" + } + ] +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-closure/technical/assets-test.log b/.artifacts/resources-global-operating-systems-closure/technical/assets-test.log new file mode 100644 index 00000000..49427a67 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/assets-test.log @@ -0,0 +1,38 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/asset-catalog.test.ts src/api/domain/asset.test.ts src/api/domain/asset-template-propagation.test.ts src/api/domain/infrastructure.test.ts src/api/domain/workstation.test.ts src/api/domain/asset-relationship.test.ts src/web/catalog/shared/catalog.test.tsx src/web/assets/shared/inventory.test.tsx src/web/assets/shared/helpers/asset-columns.test.tsx src/web/assets/detail/ui/asset-detail.test.tsx src/web/infrastructure/shared/infrastructure.test.tsx src/api/domain/support.test.ts src/web/support-connections/shared/support.test.tsx src/api/domain/brand.test.ts src/web/brands/shared/brands.test.tsx src/api/domain/template-sections.test.ts src/web/workstations/shared/helpers/workstation-creation.test.ts src/web/workstations/shared/workstation-name.test.ts src/web/workstations/rename/api/rename-workstation.test.ts src/web/assets/list/asset-workstation.test.tsx src/web/assets/select/asset-selection.test.tsx src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-membership.test.ts src/api/infrastructure/persistence/directory-membership-provider.test.ts src/web/directory-memberships/shared/directory-memberships.test.tsx src/api/domain/network-share-publication.test.ts src/web/network-share-publications/shared/network-share-ui.test.tsx src/api/application/workstation-concurrency.test.ts src/web/workstations/shared/helpers/workstation-asset-availability.test.ts +✔ src/api/application/workstation-concurrency.test.ts (1805.850284ms) +✔ src/api/domain/asset-catalog.test.ts (3672.490506ms) +✔ src/api/domain/asset-relationship.test.ts (1906.713751ms) +✔ src/api/domain/asset-template-propagation.test.ts (1373.267618ms) +✔ src/api/domain/asset.test.ts (2819.543982ms) +✔ src/api/domain/brand.test.ts (2285.294553ms) +✔ src/api/domain/directory-membership.test.ts (2885.375016ms) +✔ src/api/domain/infrastructure.test.ts (1678.589939ms) +✔ src/api/domain/network-share-publication.test.ts (2834.393078ms) +✔ src/api/domain/support.test.ts (1774.624174ms) +✔ src/api/domain/template-sections.test.ts (3356.167116ms) +✔ src/api/domain/workstation.test.ts (2920.479074ms) +✔ src/api/infrastructure/persistence/directory-membership-provider.test.ts (1261.035436ms) +✔ src/web/assets/detail/ui/asset-detail.test.tsx (11912.666775ms) +✔ src/web/assets/list/asset-workstation.test.tsx (12709.86633ms) +✔ src/web/assets/select/asset-selection.test.tsx (7380.556563ms) +✔ src/web/assets/shared/helpers/asset-columns.test.tsx (8488.725162ms) +✔ src/web/assets/shared/inventory.test.tsx (16682.328738ms) +✔ src/web/brands/shared/brands.test.tsx (13072.747402ms) +✔ src/web/catalog-fields/select/catalog-field-selection.test.tsx (7499.952903ms) +✔ src/web/catalog/shared/catalog.test.tsx (9983.964911ms) +✔ src/web/directory-memberships/shared/directory-memberships.test.tsx (11209.237203ms) +✔ src/web/infrastructure/shared/infrastructure.test.tsx (9338.639663ms) +✔ src/web/network-share-publications/shared/network-share-ui.test.tsx (5132.101073ms) +✔ src/web/support-connections/shared/support.test.tsx (7789.254696ms) +✔ src/web/workstations/rename/api/rename-workstation.test.ts (2703.323239ms) +✔ src/web/workstations/shared/helpers/workstation-asset-availability.test.ts (1870.853328ms) +✔ src/web/workstations/shared/helpers/workstation-creation.test.ts (741.320698ms) +✔ src/web/workstations/shared/workstation-name.test.ts (843.545118ms) +ℹ tests 29 +ℹ suites 0 +ℹ pass 29 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 19590.592877 diff --git a/.artifacts/resources-global-operating-systems-closure/technical/assets-types.log b/.artifacts/resources-global-operating-systems-closure/technical/assets-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/assets-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-closure/technical/build.log b/.artifacts/resources-global-operating-systems-closure/technical/build.log new file mode 100644 index 00000000..800d5ef0 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/build.log @@ -0,0 +1,48 @@ +$ turbo run build +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/server:build: cache miss, executing 113b1431b2dc1c6c +@metis/web:build: cache miss, executing ccb6604b36a92184 +@metis/server:build: $ tsup --config tsup.config.ts +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/web:build: transforming... +@metis/server:build: ESM dist/index.js 1.70 MB +@metis/server:build: ESM dist/index.js.map 3.22 MB +@metis/server:build: ESM ⚡️ Build success in 696ms +@metis/web:build: ✓ 10062 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-l9KX1rbN.css 252.79 kB │ gzip: 38.81 kB +@metis/web:build: dist/assets/workplace-map-canvas-COR1jRY6.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-Doj9XccG.js 1,814.61 kB │ gzip: 509.01 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 2.55s + + Tasks: 2 successful, 2 total +Cached: 0 cached, 2 total + Time: 4.274s + diff --git a/.artifacts/resources-global-operating-systems-closure/technical/catalog.log b/.artifacts/resources-global-operating-systems-closure/technical/catalog.log new file mode 100644 index 00000000..c1c314b7 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/catalog.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-scope/r2-3 +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/check.log b/.artifacts/resources-global-operating-systems-closure/technical/check.log new file mode 100644 index 00000000..61a30357 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/check.log @@ -0,0 +1,1113 @@ +$ biome check . +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 │ - const·defaultStates·=·[ + 6 │ - ··"default", + 7 │ - ··"hover", + 8 │ - ··"focus", + 9 │ - ··"active", + 10 │ - ··"disabled", + 11 │ - ]·as·const + 5 │ + const·defaultStates·=·["default",·"hover",·"focus",·"active",·"disabled"]·as·const; + 12 6 │ + 13 7 │ export function StateMatrix({ + ····· │ + 17 11 │ className, + 18 12 │ }: { + 19 │ - ··rows:·readonly·Row[] + 20 │ - ··states?:·readonly·string[] + 21 │ - ··render:·(row:·Row,·state:·string)·=>·React.ReactNode + 22 │ - ··className?:·string + 13 │ + ··rows:·readonly·Row[]; + 14 │ + ··states?:·readonly·string[]; + 15 │ + ··render:·(row:·Row,·state:·string)·=>·React.ReactNode; + 16 │ + ··className?:·string; + 23 17 │ }) { + 24 18 │ return ( + ····· │ + 56 50 │ + 57 51 │
+ 58 │ - ··) + 52 │ + ··); + 59 53 │ } + 60 54 │ + ····· │ + 62 56 │ export function previewState(state: string) { + 63 57 │ if (state === "disabled") { + 64 │ - ····return·{·disabled:·true·} + 58 │ + ····return·{·disabled:·true·}; + 65 59 │ } + 66 60 │ + 67 61 │ if (["hover", "focus", "active"].includes(state)) { + 68 │ - ····return·{·"data-preview":·state·} + 62 │ + ····return·{·"data-preview":·state·}; + 69 63 │ } + 70 64 │ + 71 │ - ··return·{} + 65 │ + ··return·{}; + 72 66 │ } + 73 67 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json format ━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 14 14 │ "tolerancePolicy": "A 1e-12 numeric tolerance permits floating-point representation only. Current known failures remain visible in relevance-baseline.json; the gate prevents regressions and does not claim final quality targets are met.", + 15 15 │ "metrics": { + 16 │ - ····"routingAccuracy":·{"floor":·0.875,·"tolerance":·1e-12}, + 17 │ - ····"precisionAt1":·{"floor":·0.7631578947368421,·"tolerance":·1e-12}, + 18 │ - ····"precisionAt3":·{"floor":·0.3815789473684211,·"tolerance":·1e-12}, + 19 │ - ····"mrrAt3":·{"floor":·0.8355263157894737,·"tolerance":·1e-12}, + 20 │ - ····"ndcgAt3":·{"floor":·0.8366350964266653,·"tolerance":·1e-12}, + 21 │ - ····"negativeAbstention":·{"floor":·0.9117647058823529,·"tolerance":·1e-12}, + 22 │ - ····"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 23 │ - ····"designSystemCoherence":·{"floor":·0.71875,·"tolerance":·1e-12} + 16 │ + ····"routingAccuracy":·{·"floor":·0.875,·"tolerance":·1e-12·}, + 17 │ + ····"precisionAt1":·{·"floor":·0.7631578947368421,·"tolerance":·1e-12·}, + 18 │ + ····"precisionAt3":·{·"floor":·0.3815789473684211,·"tolerance":·1e-12·}, + 19 │ + ····"mrrAt3":·{·"floor":·0.8355263157894737,·"tolerance":·1e-12·}, + 20 │ + ····"ndcgAt3":·{·"floor":·0.8366350964266653,·"tolerance":·1e-12·}, + 21 │ + ····"negativeAbstention":·{·"floor":·0.9117647058823529,·"tolerance":·1e-12·}, + 22 │ + ····"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 23 │ + ····"designSystemCoherence":·{·"floor":·0.71875,·"tolerance":·1e-12·} + 24 24 │ }, + 25 25 │ "sampleMinimums": { + ······· │ + 46 46 │ "calibration": { + 47 47 │ "metrics": { + 48 │ - ········"routingAccuracy":·{"floor":·0.8,·"tolerance":·1e-12}, + 49 │ - ········"precisionAt1":·{"floor":·0.8974358974358975,·"tolerance":·1e-12}, + 50 │ - ········"precisionAt3":·{"floor":·0.40170940170940167,·"tolerance":·1e-12}, + 51 │ - ········"mrrAt3":·{"floor":·0.9230769230769231,·"tolerance":·1e-12}, + 52 │ - ········"ndcgAt3":·{"floor":·0.9103072109232644,·"tolerance":·1e-12}, + 53 │ - ········"negativeAbstention":·{"floor":·0.9411764705882353,·"tolerance":·1e-12}, + 54 │ - ········"typoRecoveryAt3":·{"floor":·0.0,·"tolerance":·1e-12}, + 55 │ - ········"designSystemCoherence":·{"floor":·0.6875,·"tolerance":·1e-12} + 48 │ + ········"routingAccuracy":·{·"floor":·0.8,·"tolerance":·1e-12·}, + 49 │ + ········"precisionAt1":·{·"floor":·0.8974358974358975,·"tolerance":·1e-12·}, + 50 │ + ········"precisionAt3":·{·"floor":·0.40170940170940167,·"tolerance":·1e-12·}, + 51 │ + ········"mrrAt3":·{·"floor":·0.9230769230769231,·"tolerance":·1e-12·}, + 52 │ + ········"ndcgAt3":·{·"floor":·0.9103072109232644,·"tolerance":·1e-12·}, + 53 │ + ········"negativeAbstention":·{·"floor":·0.9411764705882353,·"tolerance":·1e-12·}, + 54 │ + ········"typoRecoveryAt3":·{·"floor":·0.0,·"tolerance":·1e-12·}, + 55 │ + ········"designSystemCoherence":·{·"floor":·0.6875,·"tolerance":·1e-12·} + 56 56 │ }, + 57 │ - ······"sampleMinimums":·{"cases":·46,·"retrieval":·39,·"routing":·5,·"negativeChecks":·102,·"typo":·0,·"designSystem":·4} + 57 │ + ······"sampleMinimums":·{ + 58 │ + ········"cases":·46, + 59 │ + ········"retrieval":·39, + 60 │ + ········"routing":·5, + 61 │ + ········"negativeChecks":·102, + 62 │ + ········"typo":·0, + 63 │ + ········"designSystem":·4 + 64 │ + ······} + 58 65 │ }, + 59 66 │ "held_out": { + 60 67 │ "metrics": { + 61 │ - ········"routingAccuracy":·{"floor":·1.0,·"tolerance":·1e-12}, + 62 │ - ········"precisionAt1":·{"floor":·0.6216216216216216,·"tolerance":·1e-12}, + 63 │ - ········"precisionAt3":·{"floor":·0.36036036036036034,·"tolerance":·1e-12}, + 64 │ - ········"mrrAt3":·{"floor":·0.7432432432432432,·"tolerance":·1e-12}, + 65 │ - ········"ndcgAt3":·{"floor":·0.7589807054707906,·"tolerance":·1e-12}, + 66 │ - ········"negativeAbstention":·{"floor":·0.8823529411764706,·"tolerance":·1e-12}, + 67 │ - ········"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 68 │ - ········"designSystemCoherence":·{"floor":·0.75,·"tolerance":·1e-12} + 68 │ + ········"routingAccuracy":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 69 │ + ········"precisionAt1":·{·"floor":·0.6216216216216216,·"tolerance":·1e-12·}, + 70 │ + ········"precisionAt3":·{·"floor":·0.36036036036036034,·"tolerance":·1e-12·}, + 71 │ + ········"mrrAt3":·{·"floor":·0.7432432432432432,·"tolerance":·1e-12·}, + 72 │ + ········"ndcgAt3":·{·"floor":·0.7589807054707906,·"tolerance":·1e-12·}, + 73 │ + ········"negativeAbstention":·{·"floor":·0.8823529411764706,·"tolerance":·1e-12·}, + 74 │ + ········"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 75 │ + ········"designSystemCoherence":·{·"floor":·0.75,·"tolerance":·1e-12·} + 69 76 │ }, + 70 │ - ······"sampleMinimums":·{"cases":·44,·"retrieval":·37,·"routing":·3,·"negativeChecks":·102,·"typo":·5,·"designSystem":·4} + 77 │ + ······"sampleMinimums":·{ + 78 │ + ········"cases":·44, + 79 │ + ········"retrieval":·37, + 80 │ + ········"routing":·3, + 81 │ + ········"negativeChecks":·102, + 82 │ + ········"typo":·5, + 83 │ + ········"designSystem":·4 + 84 │ + ······} + 71 85 │ } + 72 86 │ }, + 73 87 │ "lockedCases": { + 74 │ - ····"domain-style-glassmorphism":·{"withinTop":·1,·"minimumGrade":·2}, + 75 │ - ····"domain-color-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 76 │ - ····"domain-chart-time-series":·{"withinTop":·1,·"minimumGrade":·2}, + 77 │ - ····"domain-landing-pricing":·{"withinTop":·1,·"minimumGrade":·2}, + 78 │ - ····"domain-product-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 79 │ - ····"domain-ux-keyboard-focus":·{"withinTop":·1,·"minimumGrade":·2}, + 80 │ - ····"domain-typography-luxury":·{"withinTop":·1,·"minimumGrade":·2}, + 81 │ - ····"domain-icons-search":·{"withinTop":·1,·"minimumGrade":·2}, + 82 │ - ····"domain-gsap-scroll-reveal":·{"withinTop":·1,·"minimumGrade":·2}, + 83 │ - ····"domain-react-parallel-promises":·{"withinTop":·1,·"minimumGrade":·2}, + 84 │ - ····"domain-web-icon-label":·{"withinTop":·1,·"minimumGrade":·2}, + 85 │ - ····"domain-google-fonts-inter":·{"withinTop":·1,·"minimumGrade":·2}, + 86 │ - ····"stack-swiftui-navigation":·{"withinTop":·1,·"minimumGrade":·2}, + 87 │ - ····"stack-threejs-orbitcontrols":·{"withinTop":·1,·"minimumGrade":·2}, + 88 │ - ····"stack-uwp-migration":·{"withinTop":·1,·"minimumGrade":·2}, + 89 │ - ····"stack-winui-dispatcherqueue":·{"withinTop":·1,·"minimumGrade":·2} + 88 │ + ····"domain-style-glassmorphism":·{·"withinTop":·1,·"minimumGrade":·2·}, + 89 │ + ····"domain-color-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 90 │ + ····"domain-chart-time-series":·{·"withinTop":·1,·"minimumGrade":·2·}, + 91 │ + ····"domain-landing-pricing":·{·"withinTop":·1,·"minimumGrade":·2·}, + 92 │ + ····"domain-product-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 93 │ + ····"domain-ux-keyboard-focus":·{·"withinTop":·1,·"minimumGrade":·2·}, + 94 │ + ····"domain-typography-luxury":·{·"withinTop":·1,·"minimumGrade":·2·}, + 95 │ + ····"domain-icons-search":·{·"withinTop":·1,·"minimumGrade":·2·}, + 96 │ + ····"domain-gsap-scroll-reveal":·{·"withinTop":·1,·"minimumGrade":·2·}, + 97 │ + ····"domain-react-parallel-promises":·{·"withinTop":·1,·"minimumGrade":·2·}, + 98 │ + ····"domain-web-icon-label":·{·"withinTop":·1,·"minimumGrade":·2·}, + 99 │ + ····"domain-google-fonts-inter":·{·"withinTop":·1,·"minimumGrade":·2·}, + 100 │ + ····"stack-swiftui-navigation":·{·"withinTop":·1,·"minimumGrade":·2·}, + 101 │ + ····"stack-threejs-orbitcontrols":·{·"withinTop":·1,·"minimumGrade":·2·}, + 102 │ + ····"stack-uwp-migration":·{·"withinTop":·1,·"minimumGrade":·2·}, + 103 │ + ····"stack-winui-dispatcherqueue":·{·"withinTop":·1,·"minimumGrade":·2·} + 90 104 │ }, + 91 105 │ "proposedFinalTargets": { + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 78 more lines truncated + + +.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems/global-operating-systems-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 10 10 │ "contract": 3, + 11 11 │ "gatesEnabledOnlyInDisposableTest": true + 12 │ - } + 12 │ + } + 13 │ + + + +.inspect-catalog-db.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { QueryTypes } from "sequelize"; + 3 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + + i Safe fix: Organize Imports (Biome) + + 1 │ - import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 2 │ - import·{·QueryTypes·}·from·"sequelize"; + 1 │ + import·{·QueryTypes·}·from·"sequelize"; + 2 │ + + 3 │ + import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 4 │ + + 3 5 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + 4 6 │ console.log(await db.query("SELECT TABLE_NAME AS child,COLUMN_NAME AS col,REFERENCED_TABLE_NAME AS parent,REFERENCED_COLUMN_NAME AS parentCol FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL",{type:QueryTypes.SELECT})); + + +.inspect-catalog-db.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + 2 2 │ import { QueryTypes } from "sequelize"; + 3 │ - const·db=createDatabase(readDatabaseEnvironment(process.env)); + 4 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL",{type:QueryTypes.SELECT})); + 5 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()",{type:QueryTypes.SELECT})); + 6 │ - await·db.close(); + 3 │ + const·db·=·createDatabase(readDatabaseEnvironment(process.env)); + 4 │ + console.log( + 5 │ + ··await·db.query( + 6 │ + ····"SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL", + 7 │ + ····{·type:·QueryTypes.SELECT·} + 8 │ + ··) + 9 │ + ); + 10 │ + console.log( + 11 │ + ··await·db.query( + 12 │ + ····"SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()", + 13 │ + ····{·type:·QueryTypes.SELECT·} + 14 │ + ··) + 15 │ + ); + 16 │ + await·db.close(); + 17 │ + + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 159. +Checked 2201 files in 2s. No fixes applied. +Found 170 errors. +Found 4 warnings. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/coincidences.log b/.artifacts/resources-global-operating-systems-closure/technical/coincidences.log new file mode 100644 index 00000000..145f5f60 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/coincidences.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-scope/r2-6 +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/companies-detailed.log b/.artifacts/resources-global-operating-systems-closure/technical/companies-detailed.log new file mode 100644 index 00000000..d7397ab5 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/companies-detailed.log @@ -0,0 +1,366 @@ +✔ contexto AD: creación pura con identidades propias, sin cuentas, grupos ni activos (4.523835ms) +✔ clasificación independiente del nombre; no se adopta un sistema existente por llamarse AD (1.169609ms) +✔ se rechazan compañías distintas, referencias inexistentes y entornos sin clasificación (0.579104ms) +✔ DNS repetido no crea dos entornos; otro dominio comparte sistema y obtiene un entorno distinto (0.623805ms) +✔ identidad local: vínculo por UUID, alta y retirada idempotentes con identidad e historial protegidos (1.539512ms) +✔ identidad local: clasificación explícita rechaza AD por sistema o entorno, sin comparar etiquetas (0.419404ms) +✔ identidad local: crear entorno utiliza AccessWorkspace y conserva cuentas y sistema existentes (0.638505ms) +✔ catálogos globales no se duplican con adiciones locales y no se admiten grupos anidados (1.050908ms) +✔ renombrar una cuenta conserva UUID, historial y semántica de repetición; su uso permanece fijo (1.188209ms) +✔ cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso (1.819814ms) +✔ titulares no se solapan incluso en periodos cerrados; el relevo conserva una retirada anterior (0.819007ms) +✔ responsabilidad técnica no concede acceso y se permite sobre una cuenta caducada o inactiva (0.616505ms) +✔ valores reconstruyen UUID y fechas, rechazan fechas imposibles y no permiten credenciales (1.569712ms) +✔ las referencias UUID se normalizan y no permiten duplicar cuentas variando mayúsculas (0.827106ms) +✔ aplicaciones: contrato estricto, versión opcional y solo instalada (1.814814ms) +✔ aplicaciones: UUID, idempotencia, versión auditada, destino fijo y retirada (2.474119ms) +✔ aplicaciones: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.735514ms) +✔ aplicaciones: inactividad conserva notas y permite retirada, impide reconfigurar (1.514312ms) +✔ aplicaciones: persistencia preserva historial y rechaza claves y orden incoherentes (2.096117ms) +✔ R2.5: global conserva perfil, delivery e historial; disponibilidad distinta de lectura histórica (0.772806ms) +✔ certificados: contrato estricto, ubicación opcional y límites (0.965307ms) +✔ certificados: UUID, idempotencia, ubicación auditada, destino fijo y retirada (1.420811ms) +✔ certificados: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.26921ms) +✔ certificados: inactividad conserva notas y permite retirada, impide reconfigurar (0.682406ms) +✔ certificados: persistencia preserva historial y rechaza claves y orden incoherentes (1.555612ms) +✔ certificados: caducidad inclusiva, revisión y retirada sin perder historial (0.766006ms) +✔ compañía, contacto y sede tienen UUID v7 propios y se conserva la identidad al editar (0.729206ms) +✔ la pertenencia impide asociar o editar entidades de otra compañía (0.600304ms) +✔ la dirección y el teléfono son optativos y se pueden borrar (0.284702ms) +✔ nombres, email, teléfono y longitud de dirección se validan en los Value Objects (0.474504ms) +✔ sedes: archivar y reactivar conserva identidad y datos; repetir el estado es idempotente (0.399904ms) +✔ FolderMapping: cuenta desconocida, cuenta alternativa y cobertura independiente de la necesidad (4.578036ms) +✔ FolderMapping: ausencia conserva cuenta, null la retira y cada cambio real crea revisión (2.119217ms) +✔ FolderMapping: rechaza cuenta ausente, otro subtipo, otra persona, caducada o desactivada (2.010215ms) +✔ FolderMapping: Coverage por grupo exige pertenencia directa de la cuenta y configuración vigente (3.279525ms) +✔ FolderMapping: cobertura derivada cambia al retirar concesión, necesidad, cuenta o asociación personal (4.788537ms) +✔ FolderMapping: todas las autorizaciones necesarias deben proceder de la cuenta seleccionada (0.964907ms) +✔ Correo: UUIDv7, normalización, no-op, historial y retirada explícita (1.418511ms) +✔ Correo: buzón independiente, vigencia, perfiles, varios buzones y duplicados abiertos (2.061416ms) +✔ Correo: persistencia conserva identidad e historial y rechaza corrupción (35.405076ms) +✔ Correo: vinculación explícita del legado conserva UUID e historial, sin inferir propiedad (2.129316ms) +✔ Buzón: identidad, dirección única, cuenta opcional, ámbito y cambios auditados (0.859307ms) +✔ Uso de buzón: fechas inclusiva/exclusiva, mismo día, solapes, varias personas e historial (1.041608ms) +✔ Buzones: mapper conserva identidad y revisiones, rechaza corrupción (1.801614ms) +✔ personas con datos opcionales no requieren cuenta de acceso y conservan su UUID (0.314902ms) +✔ departamentos únicos por compañía, ignorando mayúsculas y espacios exteriores (0.520605ms) +✔ varios departamentos, un único principal y sin periodos solapados (1.093508ms) +✔ ediciones conservan revisiones y una repetición semántica no añade historial (1.468711ms) +✔ inactivos no reciben nuevas asignaciones; se conservan y pueden cerrarse las existentes (0.468304ms) +✔ asignaciones rechazan pertenencias cruzadas y fechas inválidas (0.488604ms) +✔ la persistencia rechaza periodos inválidos y revisiones que no reflejan el estado actual (0.965107ms) +✔ impresoras: contratos estrictos, notas opcionales y predeterminada solo vigente (0.778506ms) +✔ impresoras: UUID, historial, igualdad semántica, destino fijo y retirada terminal (1.398011ms) +✔ impresoras: duplicados por perfil, predeterminada única y destinos del ámbito (0.775406ms) +✔ impresoras: indisponibilidad señala revisión y permite notas y retirada (0.597505ms) +✔ impresoras: rehidratación conserva identidades y detecta corrupción (4.413435ms) +✔ procesos: contratos estrictos, normalización y límites (2.816222ms) +✔ procesos: UUID v7, tareas con identidad, actualización idempotente e historial (1.684713ms) +✔ procesos: completar exige todas resueltas; cierre terminal y sujeto/tareas fijos (2.059916ms) +✔ procesos: añadir revisiones conserva las resueltas e identidades y no duplica (2.391319ms) +✔ plantillas: copia de instrucciones, igualdad semántica y cambios independientes (0.738606ms) +✔ procesos: rehidratación bidireccional y rechazo de raíces/historial alterados (2.268618ms) +✔ revisión: personales, retirada pendiente y relaciones finalizadas aún configuradas (0.288202ms) +✔ revisión: incluye configuraciones de perfiles archivados, excluye cerradas y evita duplicar (0.128801ms) +✔ remotos: origen personal sin detalle, destinos tipados y contrato estricto (1.170909ms) +✔ remotos: UUID e historial, destino fijo, idempotencia y cierre terminal (1.194709ms) +✔ remotos: referencias de compañía y duplicados abiertos por recorrido y herramienta (0.912407ms) +✔ remotos: configuración y autorización independientes; caducidad y revocación no borran acceso (1.111809ms) +✔ remotos: disponibilidad de origen y destino, retirada y método personalizado (0.362603ms) +✔ remotos: persistencia conserva auditoría y detecta referencias, claves e historial corruptos (2.268617ms) +✔ remotos: una sede archivada conserva conexiones existentes pero rechaza nuevas (0.411903ms) +✔ instalaciones: pertenecen al equipo, admiten SO/aplicaciones y rechazan recursos ajenos y destinos variables (1.579012ms) +✔ instalaciones: versiones, idempotencia, retirada, revisión y persistencia de historial (2.68862ms) +✔ licencia del software: opcional, misma compañía y tipo, vigencia, desvinculación e historial idempotente (2.838322ms) +✔ R2.4: global activo e inactivo separan alta, reconfiguración y recuperación histórica (0.613205ms) +✔ teletrabajo: ausencia, límites, fechas reales y contrato estricto (0.553104ms) +✔ teletrabajo: UUID, renovación y revocación auditadas, igualdad y destino fijo (0.837506ms) +✔ teletrabajo: vigencia inclusiva, programación, caducidad y persona inactiva (0.764806ms) +✔ teletrabajo: ámbito, unicidad incluso revocada, disponibilidad y retirada (0.582805ms) +✔ teletrabajo: rehidratación preserva identidad y detecta corrupción de raíz e historial (3.225625ms) +✔ Perfil: cuenta opcional, UUID, historial, identidad fija e idempotencia (0.981707ms) +✔ Perfil: desactivar conserva valores e historial, es idempotente y precede al borrado (0.423103ms) +✔ Perfil: misma persona/dispositivo único vigente, múltiples dispositivos/personas y revisión sin pérdida de datos (0.801806ms) +✔ Perfil: cuenta autorizada, vigencia inclusiva de caducidad, cierre de autorización y cuenta técnica (0.692606ms) +✔ Perfil: persistencia conserva revisiones y rechaza raíz o cuenta histórica incoherentes (2.887322ms) +✔ Perfil: solo un ordenador principal activo admite altas y reactivaciones; el historial se conserva (0.487304ms) +✔ PNG, JPEG y WebP se normalizan sin recorte y sin metadatos a un avatar ligero (59.965167ms) +✔ se rechazan archivos vacíos, corruptos, SVG y GIF aunque simulen un MIME válido (0.904207ms) +✔ se rechazan excesos de peso y dimensión antes de almacenar (2.112816ms) +✔ los PNG animados se rechazan antes de decodificarlos (1.455812ms) +✔ el contexto distingue cuentas y grupos del entorno, sin incluir otros entornos o datos globales (0.337503ms) +✔ recurso contextual: incluye identidades de sistemas distintos sin mezclar necesidades y concesiones ajenas (0.884007ms) +✔ filtro vacío no incluye elementos ajenos y las rutas validan UUID y contexto de compañía (1.903715ms) +✔ los catálogos presentan alta mediante acción y no un formulario junto al listado (60.671172ms) +✔ cuentas ofrecen caducidad opcional y campos sin contraseña (14.451313ms) +✔ la ayuda explica todos los elementos en ambos idiomas y distingue el ámbito (31.223543ms) +✔ los ejemplos del sistema orientan sin rellenar datos del alta (3.129924ms) +✔ las altas rápidas respetan el contexto, ámbito y relaciones históricas (0.526104ms) +✔ los formularios ofrecen altas relacionadas y el segundo modal evita altas anidadas (65.035106ms) +✔ aplicaciones: listado sin formularios, alta en cabecera y traducciones (17.470736ms) +✔ aplicaciones: selectores con alta rápida y ayuda inferior antes de guardar (13.715607ms) +✔ R2.5: perfil muestra nombre, origen y versión global sin ResourceDTO local ni mezcla de perfiles (32.873556ms) +✔ certificados: listado sin formularios, alta en cabecera y traducciones (16.538729ms) +✔ certificados: selectores con alta rápida y ayuda inferior antes de guardar (12.360096ms) +✔ la compañía de origen es ámbito visible, no un filtro eliminable con Limpiar filtros (49.387184ms) +✔ directorio: orden y página proceden de URL sin perder la consulta (20.258258ms) +✔ el dashboard no ofrece selector de compañía y conserva las métricas de cada ámbito (19.497952ms) +✔ el resumen de compañía es la entrada por defecto y ofrece destinos reales (28.582922ms) +✔ los índices de catálogos distinguen definiciones globales y variantes de compañía (4.279033ms) +✔ el listado presenta estado vacío y acceso al alta sin formularios visibles (8.388865ms) +✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (15.284819ms) +✔ el formulario de sede ofrece dirección y teléfono opcionales (1.700613ms) +✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.012124ms) +✔ asignar un departamento permite añadir el primero y conserva el selector en edición (4.144632ms) +✔ el tablero de compañía tiene composición propia, acciones arriba y métricas limitadas a su ámbito (3.894931ms) +✔ el menú de compañía ordena trabajo y personas por grupos sin repetir las acciones de usuario (7.165556ms) +✔ sedes: listado traducido con filtro de archivadas y solo sedes activas por defecto (11.462489ms) +✔ la navegación de compañía conserva 21 enlaces reales, sección activa y contexto es/en (28.700723ms) +✔ el logo sustituye iniciales con URL versionada, dimensiones fijas y carga diferida (0.532004ms) +✔ sin logotipo aparecen iniciales y las listas consultan la misma caché de compañías (0.440003ms) +✔ cuentas del mapeo: exige asociación vigente y catálogos activos; no atribuye por login o por perfil (0.640805ms) +✔ actualización del mapeo: omitir cuenta conserva semántica distinta de retirarla explícitamente; admite revisión capturada (0.448803ms) +✔ uso de impresora: agrupa perfiles de un mismo equipo y separa pendientes e historial (0.738606ms) +✔ uso de impresora: referencias sin resolver no se presentan como ausencia de uso (0.137601ms) +✔ identidades locales: entorno del activo, navegación por UUID y estado vigente en es/en (3.413127ms) +✔ propietario local: vínculo retirado conserva navegación y no ofrece reasignación (0.431303ms) +✔ cuenta del mapeo: seleccionar perfil es una acción explícita; el render no infiere ni cambia cuenta (2.315518ms) +✔ correo: listado traducido, alta en cabecera y formularios ocultos (6.473151ms) +✔ correo: selectores reutilizables con altas y ayuda inmediatamente antes de guardar (3.676329ms) +✔ Buzones: alta en modal, cuenta opcional y ayuda al final (6.754252ms) +✔ L04.2: correo mantiene tabla y criterios mientras faltan sus referencias (3.966831ms) +✔ Personas conserva búsqueda por nombre, contactos, consulta y distinción ñ/n en es/en (52.71641ms) +✔ organización: resuelve departamento y cargo vigentes del responsable (0.267702ms) +✔ organización: sin responsable o asignación no infiere datos desde perfiles ni cargo genérico de persona (0.1015ms) +✔ organización: periodos semiabiertos, históricos y futuros (0.0768ms) +✔ organización: varias vigentes conservan todas, principal primero y orden estable sin mutar (0.150301ms) +✔ organización: dos principales no ocultan información seleccionando una arbitrariamente (0.077401ms) +✔ organización: aislamiento de compañía y persona, y referencias incompletas (0.091401ms) +✔ organización: cambios y refetch se derivan de la fuente actual (0.117201ms) +✔ impresoras: listado sin formularios, alta en cabecera y traducciones (6.249649ms) +✔ impresoras: selectores con alta rápida y ayuda inferior antes de guardar (6.027247ms) +✔ L04.2: Procesos recupera búsqueda, cerrados, orden y página en sus enlaces (13.449205ms) +✔ procesos: listados es/en sin formularios junto a los datos (13.290503ms) +✔ procesos: alta rápida y ayuda inferior antes del pie (5.541243ms) +✔ plantillas: instrucciones, desactivación y ayuda global es/en sin datos de compañía (4.110332ms) +✔ seguimiento: origen personal, revisión actual y edición sin afirmar retirada real; cerrados sin editar (17.681837ms) +✔ remotos: consulta sin formularios y traducciones (5.499642ms) +✔ remotos: formulario, altas rápidas y ayuda antes del pie (9.768376ms) +✔ remotos: origen personal, acceso configurado sin autorización y VPN separada (1.24441ms) +✔ las consultas de compañías conservan sus rutas y rechazan respuestas inválidas (20.336958ms) +✔ lectura y guardado de accesos están separados sin cambiar el contrato HTTP (1.31591ms) +✔ el guardado de usos de buzón mantiene su endpoint y no se confunde con la consulta (1.155609ms) +✔ los adapters mantienen la ausencia semántica sin modificar los campos del formulario (0.145101ms) +✔ las instrucciones de proceso conservan el orden y excluyen líneas vacías (0.114801ms) +✔ la validación de logos conserva tipos permitidos, vacío y límite exacto de tamaño (0.131101ms) +✔ la tabla espera todas sus referencias y distingue actualización de disponibilidad (0.0774ms) +✔ un fallo recuperable conserva datos anteriores sin presentarlos como actualizados (0.0996ms) +✔ una fuente denegada impide mostrar la caché de todo el listado compuesto (0.208401ms) +✔ dashboard: HTTP 401 conserva la semántica de disponibilidad (0.345302ms) +✔ dashboard: HTTP 403 conserva la semántica de disponibilidad (0.141601ms) +✔ dashboard: HTTP 503 conserva la semántica de disponibilidad (0.177201ms) +✔ dashboard: una lectura correcta valida y conserva la página del proveedor (0.746105ms) +✔ iniciales y siglas soportan nombres vacíos, Unicode y separadores (0.481804ms) +✔ el color es estable con variaciones de espacios, mayúsculas y acentos (0.155901ms) +✔ los colores generados mantienen contraste AA para texto pequeño (0.630705ms) +✔ el avatar conserva su nombre accesible y puede ser decorativo dentro de un botón etiquetado (0.424103ms) +✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (1.092308ms) +✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (4.290433ms) +✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (1.730613ms) +✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (1.048708ms) +✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (2.851622ms) +✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (1.431712ms) +✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (3.226925ms) +✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (1.616113ms) +✔ OSUI-16: presentación es/en y versión opcional (2.675721ms) +✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.222002ms) +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (6.377449ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (3.118824ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (8.764668ms) +✔ teletrabajo: consulta sin formularios y traducciones (4.797537ms) +✔ teletrabajo: formulario con alta rápida de persona, fechas opcionales y ayuda inferior (3.301326ms) +✔ teletrabajo: sin autorización no se presupone permiso; persona inactiva requiere revisión (1.342011ms) +✔ teletrabajo: alta desde un perfil fija la persona y no abre otra alta rápida (1.705414ms) +✔ teletrabajo es/en: conserva estado documental, vigencia y revisión como mensajes independientes (6.536251ms) +✔ entorno: reúne varios correos y configuraciones, distingue pendiente, retirada y revisión (0.777306ms) +✔ entorno: excluye cerradas, otros perfiles, compañías y correo antiguo sin adivinar relaciones (0.425204ms) +✔ entorno: composición vigente del puesto y datos actuales sin duplicación (0.457704ms) +✔ entorno: ficha es/en con estados y acciones, sin formularios; muestra falso y varios correos (12.635298ms) +✔ entorno: carga, fallo parcial sin falsa ficha vacía, perfil inexistente y aviso de archivado (11.245887ms) +✔ entorno: consulta autorización por persona, común a sus perfiles y sin confundir preparación (14.23231ms) +✔ entorno: accesos abiertos de la persona y sus orígenes sin confundirlos con configuraciones del perfil (4.617236ms) +✔ las entidades de los selectores se pluralizan en es/en sin reutilizar el verbo de acción (1.36901ms) +✔ perfiles: listado es/en, alta en cabecera y ausencia de formulario junto al listado (5.892546ms) +✔ perfiles: la cabecera breve conserva el motivo completo en la celda de revisión (9.400873ms) +✔ perfiles: alta en cuatro pasos, sin guardado intermedio y contenido de ayuda conservado (4.848338ms) +✔ perfiles: selección de persona explícita y cuenta opcional con altas independientes (6.252049ms) +✔ perfiles: el puesto fijado aporta su ordenador y no selecciona al responsable como usuario (3.230525ms) +✔ perfiles: requisitos por paso, cuenta opcional y propuesta basada en persona y ordenador (0.272803ms) +✔ perfiles: el nombre sugerido respeta el límite del contrato (0.107601ms) +✔ perfiles: resumen con listas, ordenador único y ausencias representadas por guion (1.686613ms) +✔ perfiles: edición completa con identidad fija aunque el perfil requiera revisión (2.795121ms) +✔ perfiles: orden y página navegables conservan búsqueda y archivados al abrir entorno (11.298688ms) +✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (1.318811ms) +✔ las funcionalidades archivadas no tienen rutas activas (0.445704ms) +✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (0.572505ms) +✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (0.295202ms) +✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (0.754306ms) +✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (0.212202ms) +✔ las configuraciones conservan la compañía y el UUID del perfil (0.242802ms) +✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (1.091609ms) +✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (0.525204ms) +✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (0.590104ms) +✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (0.636505ms) +✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (0.468604ms) +✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.242002ms) +✔ la barra comienza desplegada sin navegador o sin una preferencia válida (0.300703ms) +✔ plegar y desplegar persisten la preferencia sin modificar otras claves (0.167901ms) +✔ un fallo de lectura, escritura o acceso a localStorage no bloquea la barra (0.175201ms) +✔ la capacidad del shell fuerza modos sin cambiar la preferencia manual (0.197802ms) +✔ un menú solo libera su modalidad si su presentación pasa a estar disponible fija (0.116601ms) +✔ layout 640px: 0 asociados y 0 instalaciones (5.066039ms) +✔ layout 640px: 0 asociados y 3 instalaciones (5.252841ms) +✔ layout 640px: 1 asociados y 0 instalaciones (1.949916ms) +✔ layout 640px: 1 asociados y 2 instalaciones (2.800522ms) +✔ layout 640px: 2 asociados y 3 instalaciones (3.637428ms) +✔ layout 748px: 0 asociados y 0 instalaciones (0.794006ms) +✔ layout 748px: 0 asociados y 3 instalaciones (2.209217ms) +✔ layout 748px: 1 asociados y 0 instalaciones (1.32501ms) +✔ layout 748px: 1 asociados y 2 instalaciones (2.203217ms) +✔ layout 748px: 2 asociados y 3 instalaciones (3.329025ms) +✔ layout 900px: 0 asociados y 0 instalaciones (0.555404ms) +✔ layout 900px: 0 asociados y 3 instalaciones (1.890015ms) +✔ layout 900px: 1 asociados y 0 instalaciones (1.030108ms) +✔ layout 900px: 1 asociados y 2 instalaciones (1.958115ms) +✔ layout 900px: 2 asociados y 3 instalaciones (3.023124ms) +✔ layout 1200px: 0 asociados y 0 instalaciones (0.710706ms) +✔ layout 1200px: 0 asociados y 3 instalaciones (2.236018ms) +✔ layout 1200px: 1 asociados y 0 instalaciones (1.120209ms) +✔ layout 1200px: 1 asociados y 2 instalaciones (2.301317ms) +✔ layout 1200px: 2 asociados y 3 instalaciones (2.930423ms) +✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (3.512227ms) +✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (0.300702ms) +✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (55.576631ms) +✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (0.872407ms) +✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.298002ms) +✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.435403ms) +✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (0.709905ms) +✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.189802ms) +✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (8.156964ms) +✔ dashboard: ordenador y equipamiento actuales, personas por perfiles y archivados separados (0.397804ms) +✔ dashboard: sin responsable sigue mostrando usuarios y un puesto desmantelado no cuenta historia como miembros (0.202402ms) +✔ dashboard: sustituir ordenador resuelve perfiles del nuevo host sin trasladar los anteriores (0.164401ms) +✔ dashboard: referencias ajenas o principal fuera de composición no aportan relaciones (0.119201ms) +✔ pendientes: solo pending, perfiles activos, compañía correcta y deduplicación por familia e identidad (0.613705ms) +✔ último cambio: orden cronológico sin mutación, altas de miembros y campos realmente cambiados (0.215102ms) +✔ equipamiento: principal válido primero, miembros únicos y secundarios en orden declarado (0.163001ms) +✔ equipamiento: activos sin principal no adquieren un principal por su tipo o posición (0.160701ms) +✔ equipamiento: principal fuera de composición se advierte sin añadirlo a miembros (0.112601ms) +✔ equipamiento: referencia ausente o de otra compañía no inventa datos ni marca principal (0.213802ms) +✔ equipamiento: vacío y desmantelado no recuperan miembros del historial (0.127101ms) +✔ equipamiento: averiado sigue asignado y conserva ambos estados originales (0.136301ms) +✔ expansión: todos abiertos inicialmente y plegado independiente de cada perfil (0.128801ms) +✔ refetch conserva plegados y filtros individuales, incluso con error o fuentes incompletas (0.122101ms) +✔ retirada o archivo limpia únicamente el estado del perfil afectado (0.088501ms) +✔ cambio de compañía, puesto u ordenador restablece todos los perfiles abiertos y los filtros (0.123401ms) +✔ orden estable y numérico del resumen y los pendientes, sin mutar datos remotos (0.143601ms) +✔ incluye solo perfiles del ordenador principal, distingue inactivos y deduplica personas (0.281003ms) +✔ puesto inexistente o sin composición no hereda perfiles de otros activos (0.196401ms) +✔ persona: responsabilidad y uso son independientes y solo se consideran puestos y perfiles vigentes (0.343002ms) +✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (16.087925ms) +✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (1.341011ms) +✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (1.956716ms) +✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (26.374705ms) +✔ personas y perfiles: carga y error no se presentan como listados vacíos (5.594643ms) +✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (29.037025ms) +✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (4.435735ms) +✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (20.126357ms) +✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (16.386228ms) +✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (75.822589ms) +✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (5.14184ms) +✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (3.230625ms) +✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (2.012815ms) +✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (5.797345ms) +✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (73.704572ms) +✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (65.403608ms) +✔ perfiles: carga, error y datos retenidos no publican un total como actual (3.463327ms) +✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (9.399973ms) +✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (2.127716ms) +✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (1.27171ms) +✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (10.768083ms) +✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (0.915007ms) +✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (2.074516ms) +✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (4.727336ms) +✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (20.223157ms) +✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (10.818084ms) +✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (2.780222ms) +✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (2.760122ms) +✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (31.968549ms) +✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (0.884007ms) +✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (0.537504ms) +✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (15.615222ms) +✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (1.520912ms) +✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (0.999408ms) +✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (4.483635ms) +✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (11.467489ms) +ℹ tests 305 +ℹ suites 0 +ℹ pass 302 +ℹ fail 3 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 5488.410922 + +✖ failing tests: + +test at src/web/companies/shared/companies-page.test.tsx:1:4385 +✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (15.284819ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(markup.includes("Personas (1)")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:180:10) + at async Test.run (node:internal/test_runner/test:1404:7) + at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } + +test at src/web/companies/shared/companies-page.test.tsx:1:5801 +✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.012124ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(markup.includes("Esta persona no tiene acceso a Metis Desk")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:210:10) + at async Test.run (node:internal/test_runner/test:1404:7) + at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } + +test at src/web/software-installations/shared/software.test.tsx:1:2755 +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (6.377449ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(html.includes("Windows 11 Pro")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/software-installations/shared/software.test.tsx:126:12) + at async Test.run (node:internal/test_runner/test:1404:7) + at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } diff --git a/.artifacts/resources-global-operating-systems-closure/technical/companies-test.log b/.artifacts/resources-global-operating-systems-closure/technical/companies-test.log new file mode 100644 index 00000000..7c737a64 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/companies-test.log @@ -0,0 +1,72 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx +✔ src/api/application/directory-context-plan.test.ts (920.725499ms) +✔ src/api/application/local-identity-plan.test.ts (1597.65105ms) +✔ src/api/domain/access/access.test.ts (1030.916136ms) +✔ src/api/domain/application-configuration.test.ts (1519.584147ms) +✔ src/api/domain/certificate-configuration.test.ts (1942.098476ms) +✔ src/api/domain/company.aggregate.test.ts (710.69082ms) +✔ src/api/domain/folder-mapping-account.test.ts (918.243503ms) +✔ src/api/domain/mail-configuration.test.ts (1773.265986ms) +✔ src/api/domain/mailbox.test.ts (1535.917558ms) +✔ src/api/domain/people.test.ts (1001.85018ms) +✔ src/api/domain/printer-configuration.test.ts (1611.824206ms) +✔ src/api/domain/process.test.ts (965.452238ms) +✔ src/api/domain/remote-connection.test.ts (1492.164608ms) +✔ src/api/domain/software-installation.test.ts (2293.478641ms) +✔ src/api/domain/telework-authorization.test.ts (2263.296019ms) +✔ src/api/domain/work-profile.test.ts (1534.323611ms) +✔ src/api/infrastructure/company-logo-processor.test.ts (2068.693288ms) +✔ src/web/access/list/helpers/access-environment-filter.test.ts (1258.956017ms) +✔ src/web/access/list/helpers/access-resource-filter.test.ts (1600.5636ms) +✔ src/web/access/shared/access.test.tsx (14115.559107ms) +✔ src/web/application-configurations/shared/application.test.tsx (13474.239924ms) +✔ src/web/certificate-configurations/shared/certificate.test.tsx (17911.55171ms) +✔ src/web/companies/list/company-filters.test.tsx (17539.353653ms) +✖ src/web/companies/shared/companies-page.test.tsx (21388.530279ms) +✔ src/web/companies/shared/company-avatar.test.tsx (8513.269383ms) +✔ src/web/folder-mappings/shared/helpers/folder-account-options.test.ts (1232.913374ms) +✔ src/web/infrastructure/shared/helpers/printer-usage.test.ts (1567.906176ms) +✔ src/web/local-identity-environments/shared/local-identities-ui.test.tsx (15163.294853ms) +✔ src/web/mail-configurations/shared/mail.test.tsx (13050.269887ms) +✔ src/web/people/list/people-search.test.tsx (16444.424925ms) +✔ src/web/people/shared/helpers/person-organization.test.ts (2405.646764ms) +✔ src/web/printer-configurations/shared/printer.test.tsx (12996.914812ms) +✔ src/web/processes/shared/processes.test.tsx (14187.430002ms) +✔ src/web/remote-connections/shared/remote.test.tsx (13031.307554ms) +✔ src/web/shared/client-contracts.test.ts (2840.562757ms) +✔ src/web/shared/helpers/company-list-query-state.test.ts (2270.104791ms) +✔ src/web/shared/initials-avatar.test.tsx (8237.453737ms) +✔ src/web/software-installations/shared/current-operating-systems.test.tsx (8163.639095ms) +✖ src/web/software-installations/shared/software.test.tsx (8681.566598ms) +✔ src/web/telework-authorizations/shared/telework.test.tsx (8892.452181ms) +✔ src/web/work-environments/shared/work-environment.test.tsx (9091.554995ms) +✔ src/web/work-profiles/shared/profile.test.tsx (8689.973168ms) +✔ src/web/workspace/shared/workspace-routes.test.ts (1224.900444ms) +✔ src/web/workspace/view/helpers/sidebar-preference.test.ts (837.895283ms) +✔ src/web/workstations/detail/helpers/workplace-map-layout.test.ts (1539.042534ms) +✔ src/web/workstations/detail/helpers/workstation-dashboard.test.ts (1277.891709ms) +✔ src/web/workstations/detail/helpers/workstation-equipment.test.ts (1373.061762ms) +✔ src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts (713.74885ms) +✔ src/web/workstations/detail/helpers/workstation-relations.test.ts (1062.474981ms) +✔ src/web/workstations/detail/ui/workstation-detail.test.tsx (10063.261661ms) +ℹ tests 50 +ℹ suites 0 +ℹ pass 48 +ℹ fail 2 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 32386.430128 + +✖ failing tests: + +test at src/web/companies/shared/companies-page.test.tsx:1:1 +✖ src/web/companies/shared/companies-page.test.tsx (21388.530279ms) + 'test failed' + +test at src/web/software-installations/shared/software.test.tsx:1:1 +✖ src/web/software-installations/shared/software.test.tsx (8681.566598ms) + 'test failed' +/home/david/dev/metis-desk/modules/companies: +[ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL] @metis/companies@0.1.0 test: `TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx` +Exit status 1 diff --git a/.artifacts/resources-global-operating-systems-closure/technical/companies-types.log b/.artifacts/resources-global-operating-systems-closure/technical/companies-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/companies-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-closure/technical/format.log b/.artifacts/resources-global-operating-systems-closure/technical/format.log new file mode 100644 index 00000000..3595334b --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/format.log @@ -0,0 +1 @@ +Checked 3 files in 84ms. Fixed 2 files. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/integration-command.log b/.artifacts/resources-global-operating-systems-closure/technical/integration-command.log new file mode 100644 index 00000000..aacaa64f --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/integration-command.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-operating-systems-closure +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/lint.log b/.artifacts/resources-global-operating-systems-closure/technical/lint.log new file mode 100644 index 00000000..75f90bac --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/lint.log @@ -0,0 +1,471 @@ +$ biome lint . +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 17 │ if ( + > 18 │ !metadata.width || + │ ^^^^^^^^^^^^^^^^^^ + > 19 │ !metadata.height || + │ ^^^^^^^^^^^^^^^^ + 20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + i Safe fix: Reduce the complexity of the logical expression. + + 16 16 │ + 17 17 │ if ( + 18 │ - ········!metadata.width·|| + 19 │ - ········!metadata.height·|| + 18 │ + ········!(metadata.width·&&metadata.height·)·|| + 20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 15 │ }).metadata(); + 16 │ + > 17 │ if ( + │ ^^^^ + > 18 │ !metadata.width || + ... + > 23 │ ) + > 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 25 │ const output = await sharp(input) + 26 │ .rotate() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + 22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "") + 23 │ - ······) + 24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 23 │ + ······)·{ + 24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 25 │ + ······} + 25 26 │ const output = await sharp(input) + 26 27 │ .rotate() + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ .toBuffer(); + 33 │ + > 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 36 │ + 37 │ return Result.ok({ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 32 32 │ .toBuffer(); + 33 33 │ + 34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes) + 35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{ + 35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 36 │ + ······} + 36 37 │ + 37 38 │ return Result.ok({ + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 4. +Checked 2201 files in 1241ms. No fixes applied. +Found 15 errors. +Found 4 warnings. +Found 5 infos. +lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/operating-systems.log b/.artifacts/resources-global-operating-systems-closure/technical/operating-systems.log new file mode 100644 index 00000000..83c244d2 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/operating-systems.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-operating-systems +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/own-biome.log b/.artifacts/resources-global-operating-systems-closure/technical/own-biome.log new file mode 100644 index 00000000..4c75d821 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/own-biome.log @@ -0,0 +1 @@ +Checked 3 files in 71ms. No fixes applied. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/own-eslint.log b/.artifacts/resources-global-operating-systems-closure/technical/own-eslint.log new file mode 100644 index 00000000..e69de29b diff --git a/.artifacts/resources-global-operating-systems-closure/technical/profiles.log b/.artifacts/resources-global-operating-systems-closure/technical/profiles.log new file mode 100644 index 00000000..0750c6e8 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/profiles.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-scope/r2-5 +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/resources-test.log b/.artifacts/resources-global-operating-systems-closure/technical/resources-test.log new file mode 100644 index 00000000..bd3e3b86 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/resources-test.log @@ -0,0 +1,125 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx +✔ R2.6: nombre y proveedor son señales, nunca equivalencia confirmada (1.699913ms) +✔ R2.6: preserva tildes, puntuación, abreviaturas, ediciones, versiones y números (0.580805ms) +✔ R2.6: homónimos genéricos se mantienen débiles y los UUID nunca se sustituyen (46.548773ms) +✔ F2: SO global público tipado, sin contaminación de aplicaciones ni perfiles (23.178785ms) +✔ F2: elegibilidad de SO exige stock real y campos globales (0.321003ms) +✔ F2: contrato 3 y gates de SO independientes; aplicaciones no abren SO (0.307002ms) +✔ F3: cualquier escritor valida identidad publicada, corrección documental e historial (43.431848ms) +✔ recurso: activar/desactivar conserva datos e historial y repetir estado no añade revisiones (14.141413ms) +✔ recurso: valida identidades y rechaza actuar sobre recursos ajenos (3.098925ms) +✔ recurso: propaga el bloqueo por asociaciones y permite desactivar (1.761114ms) +✔ recurso: elimina y la repetición devuelve ausencia sin efectos adicionales (1.309911ms) +✔ elegibilidad global exige serie exacta y campos globales; las copias no elevan ámbito (1.830514ms) +✔ schemas discriminan owner, propósito, OS local y proyecciones privadas (57.498361ms) +✔ requests acotan lotes, consulta, paginación y rechazan privilegios o integración (9.851179ms) +✔ búsqueda literal conserva ñ, puntuación y espacios; pagina tras filtrar con desempate UUID (16.752234ms) +✔ R2.5 admite gates configurables; los valores predeterminados siguen cerrados (0.481304ms) +✔ R2.5: software y perfil se habilitan por separado y requieren catálogo (0.361603ms) +✔ R2.5: perfil no depende de software ni abre asociaciones con catálogo cerrado (1.539512ms) +✔ lectores locales: excluyen global y otra compañía incluso si el repositorio los entrega; stockKey no depende del nombre (21.125569ms) +✔ HTTP actual sin MariaDB: aislamiento con 15 compañías, 50 recursos locales, alta, edición, estado e historial (441.397533ms) +✔ DNS: normalización explícita, etiqueta única heredada, punto raíz y política ASCII IDN (9.070873ms) +✔ capacidad estable: la plantilla renombrada sigue siendo dominio y una copia arbitraria no (7.771562ms) +✔ alta, edición, DNS y archivo usan Resource y conservan su identidad e historial (17.795442ms) +✔ catálogo: DNS obligatorio protegido, NetBIOS opcional e inicialización idempotente (20.136661ms) +✔ identificadores de campo: mayúsculas no cambian identidad ni permiten duplicados (5.468044ms) +✔ global: crear exige UUID v7 y conserva identidad y propietario en edición e idempotencia (37.623302ms) +✔ global: captura por stockKey, sin depender del nombre traducido de la plantilla (3.901332ms) +✔ SMB acepta \\NAS-01\Finanzas (4.606937ms) +✔ SMB acepta \\files.example.local\Docs (0.399103ms) +✔ SMB acepta \\192.168.5.10\C$ (2.366018ms) +✔ SMB acepta \\samba\Diseño\Año 2026 (0.447604ms) +✔ SMB acepta \\NAS\Docs\ (0.590605ms) +✔ SMB rechaza "" (0.686905ms) +✔ SMB rechaza "\\\\" (0.582205ms) +✔ SMB rechaza "\\\\host" (0.369603ms) +✔ SMB rechaza "\\\\\\share" (2.023717ms) +✔ SMB rechaza "\\\\host\\\\" (2.093316ms) +✔ SMB rechaza "C:\\Datos" (0.295903ms) +✔ SMB rechaza "https://host/share" (0.215702ms) +✔ SMB rechaza "\\\\host\\share\\.." (0.441004ms) +✔ SMB rechaza "\\\\host\\share\\." (0.151401ms) +✔ SMB rechaza "\\\\?\\UNC\\host\\share" (0.145201ms) +✔ SMB rechaza "\\\\host\\share\\\\child" (0.923908ms) +✔ SMB rechaza "\\\\host\\share." (0.123801ms) +✔ SMB rechaza "\\\\host\\ share" (0.097201ms) +✔ SMB rechaza "\\\\ho st\\share" (0.082901ms) +✔ SMB rechaza "\\\\host\\bad\u0000" (0.524505ms) +✔ SMB rechaza "\\\\host\\bad\ud800" (0.299903ms) +✔ SMB rechaza "\\\\host\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (0.212102ms) +✔ SMB: comparación conservadora, alias y Unicode sin transformaciones destructivas (0.564105ms) +✔ SMB: semántica por stockKey y protección del catálogo sin bloquear etiquetas u obligatoriedad (35.828588ms) +✔ SMB: alta validada y diagnóstico histórico sin conversión ni revisión (33.387968ms) +✔ SMB: nuevas altas fijan integración access y rechazan contexto incompatible (37.266499ms) +✔ F1: identidad completa, edición conocida/no aplicable/desconocida e inactivos (20.083861ms) +✔ F1: normalización conservadora no equipara ediciones, releases ni ausencia desconocida (0.495804ms) +✔ F1: evolución de stock personalizada e idempotente; no elimina campos ni cambia obligatoriedad (57.930365ms) +✔ F1: un catálogo anterior evoluciona sin sobrescribir bindings ni recursos particulares (50.349204ms) +✔ catálogo de recursos: serie idempotente, UUID v7, características opcionales y protección (83.426968ms) +✔ ámbitos, tipos, listas, campos externos y disponibilidad por compañía (19.875959ms) +✔ licencias: ampliar un catálogo previo conserva identidades y disponibilidad (137.840603ms) +✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (20.478764ms) +✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (31.988256ms) +✔ sistema operativo: plantilla con uso explícito, copia y ampliación sin sobrescribir definiciones (20.02926ms) +✔ iconos de recursos: todas las plantillas de serie tienen su icono y el arranque no repone los retirados (46.129369ms) +✔ iconos de recursos: cambiar y retirar el icono conserva identidad y asociaciones, con guardado idempotente (21.712374ms) +✔ iconos de recursos: claves desconocidas, cadenas vacías e iconos de campos se rechazan (9.329074ms) +✔ ámbito: pares válidos y rechazo runtime de propietarios contradictorios o ausentes (17.687141ms) +✔ ámbito: proyección preparada separada; HTTP local conserva exactamente su contrato (6.445151ms) +✔ ámbito: edición y propagación locales conservan propietario, UUID e historia; globales son solo lectura (3.402127ms) +✔ Resource: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (77.254018ms) +✔ Resource: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (13.70791ms) +✔ Resource: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (1.053209ms) +✔ recursos: tipos, valores opcionales y obligatorios, cero/falso y campos desconocidos (14.88912ms) +✔ recurso: identidad estable, historial, desactivación e idempotencia (3.419128ms) +✔ buzón como recurso: correo válido, cuenta opcional, cambios auditados y tipo fijo (4.757938ms) +✔ secciones: nombres, identidades, referencias y un solo nivel (13.941711ms) +✔ secciones: igualdad, orden, identidad y persistencia JSON (3.028324ms) +✔ secciones: plantillas globales y locales conservan separación y UUID al editar (5.028041ms) +✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (25.837306ms) +✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (27.987024ms) +✔ lector legacy: roundtrip conserva UUID, revisiones, valores, actor, fecha y DTO sin columna scope (60.487383ms) +✔ lector: solo el adaptador legacy conocido interpreta ausencia; ningún ámbito inválido usa fallback (7.262458ms) +✔ proyecciones operativas: global sintético se rechaza antes de SQL, el recurso local sin integración no crea proyección (160.026378ms) +✔ escritor scoped: envía company explícito, preserva la salida legacy y rechaza global (2.60512ms) +✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (5.089634ms) +✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (1.894213ms) +✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (1.829113ms) +✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (139.883942ms) +✔ L04.2: campos de recursos recuperan orden y página sin heredar otra pestaña (210.977417ms) +✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (145.583478ms) +✔ los formularios tienen ayuda inferior y selección de campos en diálogo con alta rápida (58.885096ms) +✔ iconos de recursos: catálogo y selector traducido conservan la selección al editar y copiar (302.953133ms) +✔ catálogo global: lectura mínima y navegación traducidas, sin administración para ordinarios (53.413359ms) +✔ R2.4: mutación global invalida solo instalaciones cacheadas que usan su UUID (5.183435ms) +✔ R2.5: cambio global invalida configuraciones afectadas y preserva otras compañías (2.038913ms) +✔ SO global: lectura pública es/en conserva identidad estructurada y navegación propia (14.714699ms) +✔ SO global: invalida software y su catálogo sin refrescar aplicaciones ni perfiles (2.332616ms) +✔ la integración de buzón conserva su configuración explícita y no inventa referencias (1.387811ms) +✔ los valores iniciales toleran catálogo pendiente y limitan el nombre sin cambiar la entrada (1.339411ms) +✔ nombre propuesto: prioriza los identificadores de cada plantilla y limita su longitud (21.132869ms) +✔ nombre propuesto: contempla campos personalizados y descarta valores no identificativos (0.393603ms) +✔ paso de campos: exige valores obligatorios y acepta cero y respuestas negativas (0.693206ms) +✔ paso de campos: requiere la dirección de buzón aunque la plantilla la marque opcional (10.10018ms) +✔ recursos: listado con alta modal y sin formulario visible, en español e inglés (168.306127ms) +✔ Recursos: las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (461.579092ms) +✔ recurso: ayuda inferior, plantilla con alta rápida y sin asignaciones de recursos (31.277909ms) +✔ licencia: formulario reutilizable con campos opcionales y ayuda antes de guardar (52.151549ms) +✔ asistencia: alta de recurso con plantilla específica y características opcionales (17.362316ms) +✔ alta por pasos: solo muestra la plantilla inicialmente y traduce su navegación (24.271862ms) +✔ indicador de alta: conserva la plantilla elegida y explica el paso actual en ambos idiomas (22.589651ms) +✔ recursos: resumen de plantilla con unidades, booleanos traducidos, cero y límite de cuatro (35.994041ms) +✔ recursos: ficha lateral compacta traducida con cierre, acciones y contenido relacionado (32.164215ms) +✔ recursos: inventario y panel usan el icono vigente de la plantilla sin cambiar la especificación (28.619992ms) +✔ dominio: el formulario traduce el contexto pendiente y solo presenta un entorno confirmado (22.602363ms) +✔ SMB: formulario explica acceso automático o histórico sin selectores incompatibles, es/en (13.390298ms) +✔ campo declarativo: traduce opciones propias y conserva valores que coinciden con el prototipo (43.687047ms) +ℹ tests 116 +ℹ suites 0 +ℹ pass 116 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 7616.147191 diff --git a/.artifacts/resources-global-operating-systems-closure/technical/resources-types.log b/.artifacts/resources-global-operating-systems-closure/technical/resources-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/resources-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-closure/technical/root-typecheck.log b/.artifacts/resources-global-operating-systems-closure/technical/root-typecheck.log new file mode 100644 index 00000000..f83ebbad --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/root-typecheck.log @@ -0,0 +1,29 @@ +$ turbo run typecheck +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running typecheck in 13 packages + • Remote caching disabled + +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 8.191s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) +[ELIFECYCLE] Command failed with exit code 2. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/server-types.log b/.artifacts/resources-global-operating-systems-closure/technical/server-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/server-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-closure/technical/software-component.log b/.artifacts/resources-global-operating-systems-closure/technical/software-component.log new file mode 100644 index 00000000..f3b28e06 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/software-component.log @@ -0,0 +1,30 @@ +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (75.741516ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (19.082655ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (44.940666ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 2 +ℹ fail 1 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 3445.589616 + +✖ failing tests: + +test at src/web/software-installations/shared/software.test.tsx:1:2755 +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (75.741516ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(html.includes("Windows 11 Pro")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/software-installations/shared/software.test.tsx:126:12) + at async Test.run (node:internal/test_runner/test:1404:7) + at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } diff --git a/.artifacts/resources-global-operating-systems-closure/technical/software.log b/.artifacts/resources-global-operating-systems-closure/technical/software.log new file mode 100644 index 00000000..e9545d13 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/software.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-scope/r2-4 +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-closure/technical/tests.log b/.artifacts/resources-global-operating-systems-closure/technical/tests.log new file mode 100644 index 00000000..3fbf81d0 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/tests.log @@ -0,0 +1,139 @@ +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/resources, @metis/web + • Running test in 4 packages + • Remote caching disabled + +@metis/core:test: cache bypass, force executing 2283a7af50b4c3f8 +@repo/rdx-ddd:test: cache bypass, force executing b722cdfdd985a9bd +@metis/relationship-contracts:test: cache bypass, force executing 97138537b462262f +@repo/rdx-ui:test: cache bypass, force executing 5086968a87d10983 +@repo/rdx-ui:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/select-with-action.test.tsx src/selection-components.test.tsx src/entity-list.test.tsx src/compact-collections.test.tsx src/entity-column-visibility.test.tsx src/time-line.test.tsx src/count-badge.test.tsx src/scrollable-tabs.test.tsx src/field-sections.test.tsx src/phone-link.test.tsx src/lib/reorder-items.test.ts src/lib/text-search.test.ts src/remote-option-list.test.tsx src/dialog-help.test.tsx +@metis/core:test: $ node --import tsx --test src/common/dto/response/get-health.response.dto.test.ts src/web/navigation/shared/browser-navigation.test.ts src/web/http/shared/api/csrf-fetch.test.ts +@repo/rdx-ddd:test: $ node --import tsx --test src/domain-model.test.ts +@metis/relationship-contracts:test: $ node --import tsx --test --test-isolation=none src/*.test.ts +@metis/relationship-contracts:test: ✔ referencias UUID estables, normalizadas, inmutables y con proveedor coherente (14.493412ms) +@metis/relationship-contracts:test: ✔ namespaces canónicos, sin identificadores de tabla, espacios ni segmentos vacíos (3.332125ms) +@metis/relationship-contracts:test: ✔ el catálogo valida propietarios, namespaces, duplicados y definiciones (19.116348ms) +@metis/relationship-contracts:test: ✔ el catálogo crea una copia profundamente inmutable sin congelar la entrada (0.736505ms) +@metis/relationship-contracts:test: ✔ relaciones dirigidas, simétricas y derivadas respetan su semántica declarativa (1.24331ms) +@metis/relationship-contracts:test: ✔ consulta estricta: límites, cursores y ausencia de privilegios del navegador (11.466789ms) +@metis/relationship-contracts:test: ✔ validación de ámbito, tipo y sentido de consulta sin conceder autorización (6.281048ms) +@metis/relationship-contracts:test: ✔ orígenes y páginas conservan referencias sin mezclar compañías (15.083516ms) +@metis/relationship-contracts:test: ✔ servicios de prueba por lotes y errores compatibles con Result de Metis (8.460665ms) +@metis/relationship-contracts:test: ✔ el grafo de dependencias del paquete es acíclico y ajeno a módulos funcionales (77.414498ms) +@metis/relationship-contracts:test: ✔ las importaciones internas de producción no contienen ciclos ni imports privados (13.431604ms) +@metis/relationship-contracts:test: ✔ capacidades semánticas explícitas sin registrar proveedores ficticios (1.442011ms) +@metis/relationship-contracts:test: ✔ rol semántico opcional conserva la compatibilidad de vistas comunes sin metadatos libres (1.569913ms) +@metis/relationship-contracts:test: ℹ tests 13 +@metis/relationship-contracts:test: ℹ suites 0 +@metis/relationship-contracts:test: ℹ pass 13 +@metis/relationship-contracts:test: ℹ fail 0 +@metis/relationship-contracts:test: ℹ cancelled 0 +@metis/relationship-contracts:test: ℹ skipped 0 +@metis/relationship-contracts:test: ℹ todo 0 +@metis/relationship-contracts:test: ℹ duration_ms 1075.093021 +@metis/core:test: ✔ src/common/dto/response/get-health.response.dto.test.ts (1142.559042ms) +@metis/core:test: ✔ src/web/http/shared/api/csrf-fetch.test.ts (909.006438ms) +@metis/core:test: ✔ src/web/navigation/shared/browser-navigation.test.ts (1081.180368ms) +@metis/core:test: ℹ tests 3 +@metis/core:test: ℹ suites 0 +@metis/core:test: ℹ pass 3 +@metis/core:test: ℹ fail 0 +@metis/core:test: ℹ cancelled 0 +@metis/core:test: ℹ skipped 0 +@metis/core:test: ℹ todo 0 +@metis/core:test: ℹ duration_ms 1157.002755 +@repo/rdx-ddd:test: ✔ src/domain-model.test.ts (1226.690593ms) +@repo/rdx-ddd:test: ℹ tests 1 +@repo/rdx-ddd:test: ℹ suites 0 +@repo/rdx-ddd:test: ℹ pass 1 +@repo/rdx-ddd:test: ℹ fail 0 +@repo/rdx-ddd:test: ℹ cancelled 0 +@repo/rdx-ddd:test: ℹ skipped 0 +@repo/rdx-ddd:test: ℹ todo 0 +@repo/rdx-ddd:test: ℹ duration_ms 1238.792387 +@repo/rdx-ui:test: ✔ src/compact-collections.test.tsx (3027.156168ms) +@repo/rdx-ui:test: ✔ src/count-badge.test.tsx (720.217379ms) +@repo/rdx-ui:test: ✔ src/dialog-help.test.tsx (2084.548513ms) +@repo/rdx-ui:test: ✔ src/entity-column-visibility.test.tsx (2761.802429ms) +@repo/rdx-ui:test: ✔ src/entity-list.test.tsx (3518.538044ms) +@repo/rdx-ui:test: ✔ src/field-sections.test.tsx (2801.394032ms) +@repo/rdx-ui:test: ✔ src/lib/reorder-items.test.ts (615.62897ms) +@repo/rdx-ui:test: ✔ src/lib/text-search.test.ts (790.25402ms) +@repo/rdx-ui:test: ✔ src/phone-link.test.tsx (1098.081898ms) +@repo/rdx-ui:test: ✔ src/remote-option-list.test.tsx (1231.091227ms) +@repo/rdx-ui:test: ✔ src/scrollable-tabs.test.tsx (1718.010786ms) +@repo/rdx-ui:test: ✔ src/select-with-action.test.tsx (2005.550877ms) +@repo/rdx-ui:test: ✔ src/selection-components.test.tsx (2647.551907ms) +@repo/rdx-ui:test: ✔ src/time-line.test.tsx (773.247176ms) +@repo/rdx-ui:test: ℹ tests 14 +@repo/rdx-ui:test: ℹ suites 0 +@repo/rdx-ui:test: ℹ pass 14 +@repo/rdx-ui:test: ℹ fail 0 +@repo/rdx-ui:test: ℹ cancelled 0 +@repo/rdx-ui:test: ℹ skipped 0 +@repo/rdx-ui:test: ℹ todo 0 +@repo/rdx-ui:test: ℹ duration_ms 3553.728217 +@metis/identity:test: cache bypass, force executing a743134752c9c6b1 +@metis/resources:test: cache bypass, force executing 20e414ea3b9e3c68 +@metis/identity:test: $ node --import tsx --test src/api/domain/user.aggregate.test.ts src/api/application/global-resource-authorization.test.ts src/api/infrastructure/persistence/user-persistence.mapper.test.ts src/api/infrastructure/security/scrypt-password-hasher.test.ts src/web/shared/api/identity-api.test.ts +@metis/resources:test: $ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx +@metis/resources:test: ✔ src/api/application/application-coincidence.test.ts (904.101594ms) +@metis/identity:test: ✔ src/api/application/global-resource-authorization.test.ts (1491.397701ms) +@metis/identity:test: ✔ src/api/domain/user.aggregate.test.ts (1565.636589ms) +@metis/identity:test: ✔ src/api/infrastructure/persistence/user-persistence.mapper.test.ts (1511.645128ms) +@metis/resources:test: ✔ src/api/application/global-operating-system-contracts.test.ts (1467.720132ms) +@metis/resources:test: ✔ src/api/application/global-operating-system-policy.test.ts (1726.102443ms) +@metis/resources:test: ✔ src/api/application/resource-lifecycle.test.ts (2014.42605ms) +@metis/resources:test: ✔ src/api/application/resource-reference-contracts.test.ts (1899.902285ms) +@metis/resources:test: ✖ src/api/application/resource-scope.test.ts (2756.008062ms) +@metis/resources:test: ✔ src/api/domain/directory-domain.test.ts (1041.202265ms) +@metis/resources:test: ✔ src/api/domain/global-resource.test.ts (1020.347922ms) +@metis/resources:test: ✔ src/api/domain/network-share.test.ts (2023.963875ms) +@metis/resources:test: ✔ src/api/domain/operating-system-identity.test.ts (1722.600473ms) +@metis/resources:test: ✔ src/api/domain/resource-catalog.test.ts (1264.096018ms) +@metis/resources:test: ✔ src/api/domain/resource-scope.test.ts (1884.35092ms) +@metis/resources:test: ✔ src/api/domain/resource-template-propagation.test.ts (1219.260595ms) +@metis/resources:test: ✔ src/api/domain/resource.test.ts (1764.786512ms) +@metis/resources:test: ✔ src/api/domain/template-sections.test.ts (1604.25218ms) +@metis/resources:test: ✔ src/api/infrastructure/persistence/resource-scope-reader.test.ts (2009.935002ms) +@metis/identity:test: ✔ src/api/infrastructure/security/scrypt-password-hasher.test.ts (3675.020889ms) +@metis/identity:test: ✔ src/web/shared/api/identity-api.test.ts (1752.747028ms) +@metis/identity:test: ℹ tests 5 +@metis/identity:test: ℹ suites 0 +@metis/identity:test: ℹ pass 5 +@metis/identity:test: ℹ fail 0 +@metis/identity:test: ℹ cancelled 0 +@metis/identity:test: ℹ skipped 0 +@metis/identity:test: ℹ todo 0 +@metis/identity:test: ℹ duration_ms 3695.152343 +@metis/resources:test: ✔ src/web/catalog-fields/select/catalog-field-selection.test.tsx (3164.484076ms) +@metis/resources:test: ✔ src/web/catalog/shared/catalog.test.tsx (3602.181788ms) +@metis/resources:test: ✔ src/web/global-applications/shared/global-applications.test.tsx (3052.221338ms) +@metis/resources:test: ✔ src/web/resources/shared/resource-values.test.ts (1192.006278ms) +@metis/resources:test: ✔ src/web/resources/shared/resources.test.tsx (3780.135665ms) +@metis/resources:test: ✔ src/web/resources/shared/ui/resource-characteristic-control.test.tsx (1881.736669ms) +@metis/resources:test: ℹ tests 22 +@metis/resources:test: ℹ suites 0 +@metis/resources:test: ℹ pass 21 +@metis/resources:test: ℹ fail 1 +@metis/resources:test: ℹ cancelled 0 +@metis/resources:test: ℹ skipped 0 +@metis/resources:test: ℹ todo 0 +@metis/resources:test: ℹ duration_ms 5886.51397 +@metis/resources:test: +@metis/resources:test: ✖ failing tests: +@metis/resources:test: +@metis/resources:test: test at src/api/application/resource-scope.test.ts:1:1 +@metis/resources:test: ✖ src/api/application/resource-scope.test.ts (2756.008062ms) +@metis/resources:test: 'test failed' +@metis/resources:test: [ELIFECYCLE] Test failed. See above for more details. + ERROR @metis/resources#test: command (/home/david/dev/metis-desk/modules/resources) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run test exited (1) + + Tasks: 5 successful, 6 total +Cached: 0 cached, 6 total + Time: 11.545s +Failed: @metis/resources#test + + ERROR run failed: command exited (1) diff --git a/.artifacts/resources-global-operating-systems-closure/technical/types.log b/.artifacts/resources-global-operating-systems-closure/technical/types.log new file mode 100644 index 00000000..dace1d1a --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/types.log @@ -0,0 +1,27 @@ +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/resources, @metis/server, @metis/web + • Running typecheck in 5 packages + • Remote caching disabled + +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 9.231s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) diff --git a/.artifacts/resources-global-operating-systems-closure/technical/web-test.log b/.artifacts/resources-global-operating-systems-closure/technical/web-test.log new file mode 100644 index 00000000..aa53a4f7 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/web-test.log @@ -0,0 +1,12 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/app.test.tsx src/i18n.test.ts src/navigation/app-redirect.test.ts +✔ src/app.test.tsx (17337.25563ms) +✔ src/i18n.test.ts (19352.025239ms) +✔ src/navigation/app-redirect.test.ts (2241.877487ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 3 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 19433.794081 diff --git a/.artifacts/resources-global-operating-systems-closure/technical/web-types.log b/.artifacts/resources-global-operating-systems-closure/technical/web-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/technical/web-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-closure/working-tree-status.txt b/.artifacts/resources-global-operating-systems-closure/working-tree-status.txt new file mode 100644 index 00000000..8fe6fb3a --- /dev/null +++ b/.artifacts/resources-global-operating-systems-closure/working-tree-status.txt @@ -0,0 +1,34 @@ + M .artifacts/resources-global-operating-systems/integration.log + M docs/architecture/implementacion-catalogo-global-sistemas-operativos.md + M modules/assets/src/common/locales/en.json + M modules/assets/src/common/locales/es.json + M modules/assets/src/web/index.ts + M modules/companies/package.json + M modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx + M modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx + M modules/companies/src/web/software-installations/shared/software.test.tsx + M modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx + M modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts + M modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx + M modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx + M modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx + M modules/companies/src/web/workstations/detail/ui/workstation-software-dialog.tsx + M package.json + M scripts/resource-scope-test.py +?? .artifacts/resources-global-operating-systems-closure/ +?? apps/server/src/global-operating-systems-closure.integration.test.ts +?? apps/server/src/global-operating-systems-legacy.fixture.ts +?? docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md +?? docs/auditorias/workplace-node-actions/ +?? modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx +?? modules/companies/src/web/software-installations/shared/controllers/ +?? modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts +?? modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts +?? modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx +?? modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts +?? modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx +?? modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx +?? modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx +?? modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx +?? modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx +?? modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx diff --git a/.artifacts/resources-global-operating-systems-preflight/build-first.json b/.artifacts/resources-global-operating-systems-preflight/build-first.json new file mode 100644 index 00000000..a03fb1d0 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/build-first.json @@ -0,0 +1,14 @@ +{ + "apps/server/dist/index.js": "391a1d3f4ae0d5f4231ac487931a93c81b0cc0eb221f33f04ce785983a925507", + "apps/server/dist/index.js.map": "bddd81d81d134df7ef35ab4da1dca82d61f0a3bbd59bbc5751a08527affcf315", + "apps/web/dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2": "1a189eb997c3e2ece68373e387afaec9e8617424186c4b1ab3cff7c54ba6223b", + "apps/web/dist/assets/geist-mono-latin-variable-XN7g48iV.woff2": "684ad5b531f81d43c1e8c7038262d5db7cdc1f68006e04d6c7769efa8d33c8cc", + "apps/web/dist/assets/index-CTm4QPWs.js": "25cee5256f7459eed76cbb9aebe931dc24fe22b63018f9295cbe064b0fd2e406", + "apps/web/dist/assets/index-ZFzBcHiV.css": "c8a8acc5a0ef0f1891efb7fcab2ca6fa100458ad27df938dd374aee081e7200b", + "apps/web/dist/assets/inter-variable-DiVDrmQJ.woff2": "693b77d4f32ee9b8bfc995589b5fad5e99adf2832738661f5402f9978429a8e3", + "apps/web/dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2": "90626de112742b75e72b27865650de397eccf6845b22b577b0283b9cbfda83fc", + "apps/web/dist/assets/roboto-serif-latin-variable-CusprKnR.woff2": "a32deb82e55d4bcb083e09dbb4da3198011ce0e9f919877179e8c2bca23a9042", + "apps/web/dist/assets/workplace-map-canvas-CxP6HcMX.js": "3703a6f2506edb7d13911540d25c29b80816861e7b3bc5a94a3763316a3ebac9", + "apps/web/dist/assets/workplace-map-canvas-DLioOiRN.css": "b0cb7bd6fec5951c9c8f5808821438206604b1629a912c96009ac427f38e7d69", + "apps/web/dist/index.html": "fb9590f3eb9010264079ff8fed0ae427410c16051b0a9cc13b32a02ab49bfcb1" +} diff --git a/.artifacts/resources-global-operating-systems-preflight/build-second.json b/.artifacts/resources-global-operating-systems-preflight/build-second.json new file mode 100644 index 00000000..a03fb1d0 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/build-second.json @@ -0,0 +1,14 @@ +{ + "apps/server/dist/index.js": "391a1d3f4ae0d5f4231ac487931a93c81b0cc0eb221f33f04ce785983a925507", + "apps/server/dist/index.js.map": "bddd81d81d134df7ef35ab4da1dca82d61f0a3bbd59bbc5751a08527affcf315", + "apps/web/dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2": "1a189eb997c3e2ece68373e387afaec9e8617424186c4b1ab3cff7c54ba6223b", + "apps/web/dist/assets/geist-mono-latin-variable-XN7g48iV.woff2": "684ad5b531f81d43c1e8c7038262d5db7cdc1f68006e04d6c7769efa8d33c8cc", + "apps/web/dist/assets/index-CTm4QPWs.js": "25cee5256f7459eed76cbb9aebe931dc24fe22b63018f9295cbe064b0fd2e406", + "apps/web/dist/assets/index-ZFzBcHiV.css": "c8a8acc5a0ef0f1891efb7fcab2ca6fa100458ad27df938dd374aee081e7200b", + "apps/web/dist/assets/inter-variable-DiVDrmQJ.woff2": "693b77d4f32ee9b8bfc995589b5fad5e99adf2832738661f5402f9978429a8e3", + "apps/web/dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2": "90626de112742b75e72b27865650de397eccf6845b22b577b0283b9cbfda83fc", + "apps/web/dist/assets/roboto-serif-latin-variable-CusprKnR.woff2": "a32deb82e55d4bcb083e09dbb4da3198011ce0e9f919877179e8c2bca23a9042", + "apps/web/dist/assets/workplace-map-canvas-CxP6HcMX.js": "3703a6f2506edb7d13911540d25c29b80816861e7b3bc5a94a3763316a3ebac9", + "apps/web/dist/assets/workplace-map-canvas-DLioOiRN.css": "b0cb7bd6fec5951c9c8f5808821438206604b1629a912c96009ac427f38e7d69", + "apps/web/dist/index.html": "fb9590f3eb9010264079ff8fed0ae427410c16051b0a9cc13b32a02ab49bfcb1" +} diff --git a/.artifacts/resources-global-operating-systems-preflight/go-source-overlay.tar b/.artifacts/resources-global-operating-systems-preflight/go-source-overlay.tar new file mode 100644 index 00000000..414d08d5 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-preflight/go-source-overlay.tar differ diff --git a/.artifacts/resources-global-operating-systems-preflight/manifest.json b/.artifacts/resources-global-operating-systems-preflight/manifest.json new file mode 100644 index 00000000..5d25b6c1 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/manifest.json @@ -0,0 +1,96 @@ +{ + "recordedAtUtc": "2026-10-25T23:08:05.854586+00:00", + "reportDateEuropeMadrid": "2026-10-26", + "head": "d2bf856c973419277f0b30f6437242cd82f7d720", + "branch": "main", + "node": "24.20.0", + "pnpm": "11.25.0", + "goSourceHashesMatched": 1884, + "goWorkingFilesMatched": 40, + "postGoFunctionalDifferences": [], + "goManifestSha256": "86c305be57c034c6fcae02375f0e468e74aa068dd6d38d0486f16dd3e0fab807", + "lockfileSha256": "bcd468ab1f127fffeb7f37ef3bdb5f2c5e85d40c192f3bc4a7cae5b2209b7c17", + "sourceReconstructionVerified": true, + "cleanInstallVerified": false, + "buildsByteIdentical": true, + "webMatchesMcpBuild": true, + "verdict": "NO PREPARADO", + "blockers": [ + "B-01: duplicated createRequire makes compiled server syntactically invalid", + "B-02: no secure session cookie in TLS-to-HTTP topology without trusted proxy configuration" + ], + "productionConnected": false, + "databaseConnected": false, + "migrationsExecuted": false, + "businessWritesExecuted": false, + "productionActivated": false, + "commands": [ + { + "command": "pnpm build", + "exitCode": 0, + "log": "technical/build.log" + }, + { + "command": "pnpm exec turbo run build --force (primero)", + "exitCode": 0, + "log": "technical/build-first.log" + }, + { + "command": "pnpm exec turbo run build --force (segundo)", + "exitCode": 0, + "log": "technical/build-second.log" + }, + { + "command": "node --check apps/server/dist/index.js", + "exitCode": 1, + "log": "technical/node-check.log" + }, + { + "command": "node --import tsx .artifacts/resources-global-operating-systems-preflight/proxy-session-diagnostic.mjs", + "exitCode": 0, + "log": "technical/proxy-portable.log" + }, + { + "command": "pnpm typecheck", + "exitCode": 2, + "log": "technical/root-types.log" + }, + { + "command": "pnpm lint", + "exitCode": 1, + "log": "technical/root-lint.log" + }, + { + "command": "pnpm check", + "exitCode": 1, + "log": "technical/root-check.log" + }, + { + "command": "pnpm exec biome check . --max-diagnostics=300", + "exitCode": 1, + "log": "technical/root-check-full.log" + } + ], + "files": { + "build-first.json": "17990eb229b1bc1ce99136c02883f801459fc040a78f6ab12df3b7e909b96218", + "build-second.json": "17990eb229b1bc1ce99136c02883f801459fc040a78f6ab12df3b7e909b96218", + "go-source-overlay.tar": "96c1e316c77ac603d910385534d72703d4e008b3447998cda6e85d81248377ed", + "nondeployable-build.tar": "b4bec1774201ff545dd2970aa290b2f429bb952a250284812d1150c5d0b674b3", + "proxy-session-diagnostic.mjs": "c9c9ad47f436550f1e976bddd7ee6294bbc6109e085c7aad405581909daaef68", + "technical/build-first.log": "d0e2826bde66cb879030e6b95263017869883b5d5ede730414799113281661af", + "technical/build-second.log": "917e3c9abaa9637347cdbd89688f1171d094e940f48dee0f144d3c737fccc531", + "technical/build.log": "964cdb820873e566972937da130bfdc9f7b319b485c6f3b77580afbd47751ed6", + "technical/node-check.log": "8257d56c85b4657dfaaedc60781e41646a526c3bfc5b7e9ecc351f321f6eae8e", + "technical/proxy-portable.log": "b70d5360741b61f26b7f9a1366481b22acb55704f8a0d567b438686b614ccc69", + "technical/proxy.log": "b70d5360741b61f26b7f9a1366481b22acb55704f8a0d567b438686b614ccc69", + "technical/root-check-full.log": "21fb07c08a2c5c942c7320868e9bfc234925db7aa490e9b4c5cbcd89de49c85f", + "technical/root-check.log": "c44da53b605e344d04651d38b4c78841f01b44d88087ec5c84e9e4a28ace5d45", + "technical/root-lint.log": "f9a8fcc6c1f7306eff3f6b3458810df9a2875221b9e73b6d427d1c12132d498b", + "technical/root-types.log": "88e6ac8dd7c2fc97725e1b81bcc1583eb0ae03b13c3c8e0f52adca0c1417bd4f", + "traceability.json": "6e4e473284275d01d5233ad08d2199054d4b19bfdc39529cf812c1564f31460d" + }, + "deliverables": { + "docs/architecture/preflight-activacion-catalogo-global-sistemas-operativos.md": "7137fdc14a27dd5c4da0c51c8df2219461cae9f9c2371c9175035510b9ffb6c2", + "docs/architecture/preflight-so/diagnostico-mariadb.sql": "32bc8955688941d4dbac2a3b089c91e425618ea77397f8a68bab4c3e85793fa4" + } +} diff --git a/.artifacts/resources-global-operating-systems-preflight/nondeployable-build.tar b/.artifacts/resources-global-operating-systems-preflight/nondeployable-build.tar new file mode 100644 index 00000000..a1d2650a Binary files /dev/null and b/.artifacts/resources-global-operating-systems-preflight/nondeployable-build.tar differ diff --git a/.artifacts/resources-global-operating-systems-preflight/proxy-session-diagnostic.mjs b/.artifacts/resources-global-operating-systems-preflight/proxy-session-diagnostic.mjs new file mode 100644 index 00000000..2a963964 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/proxy-session-diagnostic.mjs @@ -0,0 +1,44 @@ +import { randomBytes } from "node:crypto"; +import { once } from "node:events"; +import { createRequire } from "node:module"; +import { resolve } from "node:path"; +import { pathToFileURL } from "node:url"; + +const { createApp } = await import(pathToFileURL(resolve("apps/server/src/app.ts")).href); +const require = createRequire(resolve("apps/server/package.json")); +const session = require("express-session"); +const app = createApp(() => {}, { + middleware: session({ + secret: randomBytes(48).toString("hex"), + resave: false, + saveUninitialized: false, + cookie: { secure: true, httpOnly: true, sameSite: "strict" }, + }), + register: (instance) => + instance.get("/api/preflight-session", (request, response) => { + request.session.preflightMarker = true; + response.json({ secure: request.secure }); + }), +}); +const server = app.listen(0, "127.0.0.1"); +try { + await once(server, "listening"); + const response = await fetch(`http://127.0.0.1:${server.address().port}/api/preflight-session`, { + headers: { "x-forwarded-proto": "https" }, + signal: AbortSignal.timeout(5000), + }); + console.log( + JSON.stringify({ + diagnostic: "TLS termination followed by HTTP to backend", + trustProxy: app.get("trust proxy"), + http: response.status, + ...(await response.json()), + sessionCookieIssued: response.headers.has("set-cookie"), + databaseUsed: false, + }) + ); +} finally { + await new Promise((resolve, reject) => + server.close((error) => (error ? reject(error) : resolve())) + ); +} diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/build-first.log b/.artifacts/resources-global-operating-systems-preflight/technical/build-first.log new file mode 100644 index 00000000..1570ed6e --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/build-first.log @@ -0,0 +1,47 @@ +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/server:build: cache bypass, force executing 7e59d90e6c1cd6d9 +@metis/web:build: cache bypass, force executing d61f0bc598236e93 +@metis/server:build: $ tsup --config tsup.config.ts +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/web:build: transforming... +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/server:build: ESM dist/index.js 1.70 MB +@metis/server:build: ESM dist/index.js.map 3.22 MB +@metis/server:build: ESM ⚡️ Build success in 475ms +@metis/web:build: ✓ 10064 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-ZFzBcHiV.css 253.08 kB │ gzip: 38.86 kB +@metis/web:build: dist/assets/workplace-map-canvas-CxP6HcMX.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-CTm4QPWs.js 1,815.32 kB │ gzip: 509.13 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.11s + + Tasks: 2 successful, 2 total +Cached: 0 cached, 2 total + Time: 1.953s + diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/build-second.log b/.artifacts/resources-global-operating-systems-preflight/technical/build-second.log new file mode 100644 index 00000000..e91ff945 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/build-second.log @@ -0,0 +1,47 @@ +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/web:build: cache bypass, force executing d61f0bc598236e93 +@metis/server:build: cache bypass, force executing 7e59d90e6c1cd6d9 +@metis/web:build: $ vite build +@metis/server:build: $ tsup --config tsup.config.ts +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/web:build: transforming... +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/server:build: ESM dist/index.js 1.70 MB +@metis/server:build: ESM dist/index.js.map 3.22 MB +@metis/server:build: ESM ⚡️ Build success in 423ms +@metis/web:build: ✓ 10064 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-ZFzBcHiV.css 253.08 kB │ gzip: 38.86 kB +@metis/web:build: dist/assets/workplace-map-canvas-CxP6HcMX.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-CTm4QPWs.js 1,815.32 kB │ gzip: 509.13 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.05s + + Tasks: 2 successful, 2 total +Cached: 0 cached, 2 total + Time: 1.828s + diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/build.log b/.artifacts/resources-global-operating-systems-preflight/technical/build.log new file mode 100644 index 00000000..be9afc76 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/build.log @@ -0,0 +1,48 @@ +$ turbo run build +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/server:build: cache hit, replaying logs 7e59d90e6c1cd6d9 +@metis/server:build: $ tsup --config tsup.config.ts +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/server:build: ESM dist/index.js 1.70 MB +@metis/server:build: ESM dist/index.js.map 3.22 MB +@metis/server:build: ESM ⚡️ Build success in 768ms +@metis/web:build: cache hit, replaying logs d61f0bc598236e93 +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/web:build: transforming... +@metis/web:build: ✓ 10064 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-ZFzBcHiV.css 253.08 kB │ gzip: 38.86 kB +@metis/web:build: dist/assets/workplace-map-canvas-CxP6HcMX.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-CTm4QPWs.js 1,815.32 kB │ gzip: 509.13 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.66s + + Tasks: 2 successful, 2 total +Cached: 2 cached, 2 total + Time: 77ms >>> FULL TURBO + diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/node-check.log b/.artifacts/resources-global-operating-systems-preflight/technical/node-check.log new file mode 100644 index 00000000..25c77392 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/node-check.log @@ -0,0 +1,8 @@ +/home/david/dev/metis-desk/apps/server/dist/index.js:23345 +import { createRequire } from "module"; + ^^^^^^^^^^^^^ + +SyntaxError: Identifier 'createRequire' has already been declared + at checkSyntax (node:internal/main/check_syntax:72:5) + +Node.js v24.20.0 diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/proxy-portable.log b/.artifacts/resources-global-operating-systems-preflight/technical/proxy-portable.log new file mode 100644 index 00000000..92b6297b --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/proxy-portable.log @@ -0,0 +1 @@ +{"diagnostic":"TLS termination followed by HTTP to backend","trustProxy":false,"http":200,"secure":false,"sessionCookieIssued":false,"databaseUsed":false} diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/proxy.log b/.artifacts/resources-global-operating-systems-preflight/technical/proxy.log new file mode 100644 index 00000000..92b6297b --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/proxy.log @@ -0,0 +1 @@ +{"diagnostic":"TLS termination followed by HTTP to backend","trustProxy":false,"http":200,"secure":false,"sessionCookieIssued":false,"databaseUsed":false} diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/root-check-full.log b/.artifacts/resources-global-operating-systems-preflight/technical/root-check-full.log new file mode 100644 index 00000000..8ad8f2c4 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/root-check-full.log @@ -0,0 +1,5243 @@ +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json check ━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 17 │ if ( + > 18 │ !metadata.width || + │ ^^^^^^^^^^^^^^^^^^ + > 19 │ !metadata.height || + │ ^^^^^^^^^^^^^^^^ + 20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + i Safe fix: Reduce the complexity of the logical expression. + + 16 16 │ + 17 17 │ if ( + 18 │ - ········!metadata.width·|| + 19 │ - ········!metadata.height·|| + 18 │ + ········!(metadata.width·&&metadata.height·)·|| + 20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + +modules/companies/src/web/people/shared/ui/person-avatar-group.tsx:22:87 lint/a11y/useSemanticElements ━━━━━━━━━━ + + i The elements with this role can be changed to the following elements: +
+ + 21 │ return ( + > 22 │
+ │ ^^^^^^^^^^^^ + 23 │
+ 24 │ {visible.map((person) => ( + + i For examples and more information, see WAI-ARIA Roles + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 │ - const·defaultStates·=·[ + 6 │ - ··"default", + 7 │ - ··"hover", + 8 │ - ··"focus", + 9 │ - ··"active", + 10 │ - ··"disabled", + 11 │ - ]·as·const + 5 │ + const·defaultStates·=·["default",·"hover",·"focus",·"active",·"disabled"]·as·const; + 12 6 │ + 13 7 │ export function StateMatrix({ + ····· │ + 17 11 │ className, + 18 12 │ }: { + 19 │ - ··rows:·readonly·Row[] + 20 │ - ··states?:·readonly·string[] + 21 │ - ··render:·(row:·Row,·state:·string)·=>·React.ReactNode + 22 │ - ··className?:·string + 13 │ + ··rows:·readonly·Row[]; + 14 │ + ··states?:·readonly·string[]; + 15 │ + ··render:·(row:·Row,·state:·string)·=>·React.ReactNode; + 16 │ + ··className?:·string; + 23 17 │ }) { + 24 18 │ return ( + ····· │ + 56 50 │ + 57 51 │
+ 58 │ - ··) + 52 │ + ··); + 59 53 │ } + 60 54 │ + ····· │ + 62 56 │ export function previewState(state: string) { + 63 57 │ if (state === "disabled") { + 64 │ - ····return·{·disabled:·true·} + 58 │ + ····return·{·disabled:·true·}; + 65 59 │ } + 66 60 │ + 67 61 │ if (["hover", "focus", "active"].includes(state)) { + 68 │ - ····return·{·"data-preview":·state·} + 62 │ + ····return·{·"data-preview":·state·}; + 69 63 │ } + 70 64 │ + 71 │ - ··return·{} + 65 │ + ··return·{}; + 72 66 │ } + 73 67 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/data/google-font-licenses.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 12 12 │ "license": "OFL", + 13 13 │ "date_added": "2012-09-30", + 14 │ - ······"designer":·[ + 15 │ - ········"Anja·Meiners" + 16 │ - ······], + 14 │ + ······"designer":·["Anja·Meiners"], + 17 15 │ "status": "active", + 18 16 │ "verifiedAt": "2026-08-13" + ··········· │ + 22 20 │ "license": "OFL", + 23 21 │ "date_added": "2011-08-03", + 24 │ - ······"designer":·[ + 25 │ - ········"MADType" + 26 │ - ······], + 22 │ + ······"designer":·["MADType"], + 27 23 │ "status": "active", + 28 24 │ "verifiedAt": "2026-08-13" + ··········· │ + 32 28 │ "license": "OFL", + 33 29 │ "date_added": "2016-08-30", + 34 │ - ······"designer":·[ + 35 │ - ········"Mooniak" + 36 │ - ······], + 30 │ + ······"designer":·["Mooniak"], + 37 31 │ "status": "active", + 38 32 │ "verifiedAt": "2026-08-13" + ··········· │ + 42 36 │ "license": "OFL", + 43 37 │ "date_added": "2022-05-26", + 44 │ - ······"designer":·[ + 45 │ - ········"Dominik·Jáger" + 46 │ - ······], + 38 │ + ······"designer":·["Dominik·Jáger"], + 47 39 │ "status": "active", + 48 40 │ "verifiedAt": "2026-08-13" + ··········· │ + 52 44 │ "license": "OFL", + 53 45 │ "date_added": "2011-08-31", + 54 │ - ······"designer":·[ + 55 │ - ········"TypeTogether" + 56 │ - ······], + 46 │ + ······"designer":·["TypeTogether"], + 57 47 │ "status": "active", + 58 48 │ "verifiedAt": "2026-08-13" + ··········· │ + 62 52 │ "license": "OFL", + 63 53 │ "date_added": "2016-01-20", + 64 │ - ······"designer":·[ + 65 │ - ········"SIL·International" + 66 │ - ······], + 54 │ + ······"designer":·["SIL·International"], + 67 55 │ "status": "active", + 68 56 │ "verifiedAt": "2026-08-13" + ··········· │ + 72 60 │ "license": "APACHE2", + 73 61 │ "date_added": "2011-04-27", + 74 │ - ······"designer":·[ + 75 │ - ········"Astigmatic" + 76 │ - ······], + 62 │ + ······"designer":·["Astigmatic"], + 77 63 │ "status": "active", + 78 64 │ "verifiedAt": "2026-08-13" + ··········· │ + 82 68 │ "license": "OFL", + 83 69 │ "date_added": "2011-12-19", + 84 │ - ······"designer":·[ + 85 │ - ········"Juan·Pablo·del·Peral", + 86 │ - ········"HT·Fonts" + 87 │ - ······], + 70 │ + ······"designer":·["Juan·Pablo·del·Peral",·"HT·Fonts"], + 88 71 │ "status": "active", + 89 72 │ "verifiedAt": "2026-08-13" + ··········· │ + 93 76 │ "license": "OFL", + 94 77 │ "date_added": "2011-08-03", + 95 │ - ······"designer":·[ + 96 │ - ········"Thomas·Junold" + 97 │ - ······], + 78 │ + ······"designer":·["Thomas·Junold"], + 98 79 │ "status": "active", + 99 80 │ "verifiedAt": "2026-08-13" + ··········· │ + 103 84 │ "license": "OFL", + 104 85 │ "date_added": "2011-09-07", + 105 │ - ······"designer":·[ + 106 │ - ········"Cyreal" + 107 │ - ······], + 86 │ + ······"designer":·["Cyreal"], + 108 87 │ "status": "active", + 109 88 │ "verifiedAt": "2026-08-13" + ··········· │ + 113 92 │ "license": "OFL", + 114 93 │ "date_added": "2023-08-14", + 115 │ - ······"designer":·[ + 116 │ - ········"Mark·Jamra", + 117 │ - ········"Neil·Patel", + 118 │ - ········"Andrew·Footit" + 119 │ - ······], + 94 │ + ······"designer":·["Mark·Jamra",·"Neil·Patel",·"Andrew·Footit"], + 120 95 │ "status": "active", + 121 96 │ "verifiedAt": "2026-08-13" + ··········· │ + 125 100 │ "license": "OFL", + 126 101 │ "date_added": "2012-02-29", + 127 │ - ······"designer":·[ + 128 │ - ········"VivaRado" + 129 │ - ······], + 102 │ + ······"designer":·["VivaRado"], + 130 103 │ "status": "active", + 131 104 │ "verifiedAt": "2026-08-13" + ··········· │ + 135 108 │ "license": "OFL", + 136 109 │ "date_added": "2023-12-04", + 137 │ - ······"designer":·[ + 138 │ - ········"Kristian·Möller", + 139 │ - ········"Dicotype" + 140 │ - ······], + 110 │ + ······"designer":·["Kristian·Möller",·"Dicotype"], + 141 111 │ "status": "active", + 142 112 │ "verifiedAt": "2026-08-13" + ··········· │ + 146 116 │ "license": "OFL", + 147 117 │ "date_added": "2024-09-23", + 148 │ - ······"designer":·[ + 149 │ - ········"Kristian·Möller", + 150 │ - ········"Dicotype" + 151 │ - ······], + 118 │ + ······"designer":·["Kristian·Möller",·"Dicotype"], + 152 119 │ "status": "active", + 153 120 │ "verifiedAt": "2026-08-13" + ··········· │ + 157 124 │ "license": "OFL", + 158 125 │ "date_added": "2023-10-05", + 159 │ - ······"designer":·[ + 160 │ - ········"Raphael·Alẹ�gbẹ�lẹ�yẹ�", + 161 │ - ········"Sorkin·Type", + 162 │ - ········"Eben·Sorkin" + 163 │ - ······], + 126 │ + ······"designer":·["Raphael·Alẹ�gbẹ�lẹ�yẹ�",·"Sorkin·Type",·"Eben·Sorkin"], + 164 127 │ "status": "active", + 165 128 │ "verifiedAt": "2026-08-13" + ··········· │ + 169 132 │ "license": "OFL", + 170 133 │ "date_added": "2023-04-02", + 171 │ - ······"designer":·[ + 172 │ - ········"The·DocRepair·Project", + 173 │ - ········"Patric·King" + 174 │ - ······], + 134 │ + ······"designer":·["The·DocRepair·Project",·"Patric·King"], + 175 135 │ "status": "active", + 176 136 │ "verifiedAt": "2026-08-13" + ··········· │ + 180 140 │ "license": "OFL", + 181 141 │ "date_added": "2024-12-09", + 182 │ - ······"designer":·[ + 183 │ - ········"Seun·Badejo" + 184 │ - ······], + 142 │ + ······"designer":·["Seun·Badejo"], + 185 143 │ "status": "active", + 186 144 │ "verifiedAt": "2026-08-13" + ··········· │ + 190 148 │ "license": "OFL", + 191 149 │ "date_added": "2011-11-30", + 192 │ - ······"designer":·[ + 193 │ - ········"Sudtipos" + 194 │ - ······], + 150 │ + ······"designer":·["Sudtipos"], + 15723 more lines truncated + + +.agents/skills/ui-ux-pro-max/data/phosphor-icons-upstream.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ "verifiedAt": "2026-08-13", + 12 12 │ "iconCount": 1512, + 13 │ - ··"weights":·[ + 14 │ - ····"thin", + 15 │ - ····"light", + 16 │ - ····"regular", + 17 │ - ····"bold", + 18 │ - ····"fill", + 19 │ - ····"duotone" + 20 │ - ··], + 13 │ + ··"weights":·["thin",·"light",·"regular",·"bold",·"fill",·"duotone"], + 21 14 │ "reactImports": { + 22 15 │ "clientModule": "@phosphor-icons/react", + ··········· │ + 29 22 │ "component": "Acorn", + 30 23 │ "codepoint": 60314, + 31 │ - ······"categories":·[ + 32 │ - ········"finances", + 33 │ - ········"nature" + 34 │ - ······], + 24 │ + ······"categories":·["finances",·"nature"], + 35 25 │ "figmaCategory": "weather & nature", + 36 │ - ······"tags":·[ + 37 │ - ········"*new*", + 38 │ - ········"food", + 39 │ - ········"groceries", + 40 │ - ········"market", + 41 │ - ········"nut", + 42 │ - ········"savings", + 43 │ - ········"vegetable", + 44 │ - ········"veggies" + 45 │ - ······], + 26 │ + ······"tags":·["*new*",·"food",·"groceries",·"market",·"nut",·"savings",·"vegetable",·"veggies"], + 46 27 │ "publishedIn": 2.1, + 47 28 │ "updatedIn": 2.1, + ··········· │ + 53 34 │ "component": "AddressBook", + 54 35 │ "codepoint": 59128, + 55 │ - ······"categories":·[ + 56 │ - ········"communications" + 57 │ - ······], + 36 │ + ······"categories":·["communications"], + 58 37 │ "figmaCategory": "communication", + 59 │ - ······"tags":·[ + 60 │ - ········"contacts", + 61 │ - ········"directory", + 62 │ - ········"roledex" + 63 │ - ······], + 38 │ + ······"tags":·["contacts",·"directory",·"roledex"], + 64 39 │ "publishedIn": 1.3, + 65 40 │ "updatedIn": 1.3, + ··········· │ + 71 46 │ "component": "AddressBookTabs", + 72 47 │ "codepoint": 61006, + 73 │ - ······"categories":·[ + 74 │ - ········"communications" + 75 │ - ······], + 48 │ + ······"categories":·["communications"], + 76 49 │ "figmaCategory": "communication", + 77 │ - ······"tags":·[ + 78 │ - ········"*new*", + 79 │ - ········"contacts", + 80 │ - ········"directory", + 81 │ - ········"roledex" + 82 │ - ······], + 50 │ + ······"tags":·["*new*",·"contacts",·"directory",·"roledex"], + 83 51 │ "publishedIn": 2.1, + 84 52 │ "updatedIn": 2.1, + ··········· │ + 90 58 │ "component": "AirTrafficControl", + 91 59 │ "codepoint": 60632, + 92 │ - ······"categories":·[ + 93 │ - ········"maps·&·travel" + 94 │ - ······], + 60 │ + ······"categories":·["maps·&·travel"], + 95 61 │ "figmaCategory": "maps & travel", + 96 │ - ······"tags":·[ + 97 │ - ········"airport", + 98 │ - ········"buildings", + 99 │ - ········"transportation", + 100 │ - ········"travel" + 101 │ - ······], + 62 │ + ······"tags":·["airport",·"buildings",·"transportation",·"travel"], + 102 63 │ "publishedIn": 2, + 103 64 │ "updatedIn": 2, + ··········· │ + 109 70 │ "component": "Airplane", + 110 71 │ "codepoint": 57346, + 111 │ - ······"categories":·[ + 112 │ - ········"maps·&·travel", + 113 │ - ········"objects" + 114 │ - ······], + 72 │ + ······"categories":·["maps·&·travel",·"objects"], + 115 73 │ "figmaCategory": "maps & travel", + 116 74 │ "tags": [ + ··········· │ + 133 91 │ "component": "AirplaneInFlight", + 134 92 │ "codepoint": 58622, + 135 │ - ······"categories":·[ + 136 │ - ········"maps·&·travel", + 137 │ - ········"objects" + 138 │ - ······], + 93 │ + ······"categories":·["maps·&·travel",·"objects"], + 139 94 │ "figmaCategory": "maps & travel", + 140 95 │ "tags": [ + ··········· │ + 158 113 │ "component": "AirplaneLanding", + 159 114 │ "codepoint": 58626, + 160 │ - ······"categories":·[ + 161 │ - ········"maps·&·travel", + 162 │ - ········"objects" + 163 │ - ······], + 115 │ + ······"categories":·["maps·&·travel",·"objects"], + 164 116 │ "figmaCategory": "maps & travel", + 165 117 │ "tags": [ + ··········· │ + 183 135 │ "component": "AirplaneTakeoff", + 184 136 │ "codepoint": 58628, + 185 │ - ······"categories":·[ + 186 │ - ········"maps·&·travel", + 187 │ - ········"objects" + 188 │ - ······], + 137 │ + ······"categories":·["maps·&·travel",·"objects"], + 189 138 │ "figmaCategory": "maps & travel", + 190 139 │ "tags": [ + ··········· │ + 208 157 │ "component": "AirplaneTaxiing", + 209 158 │ "codepoint": 58624, + 210 │ - ······"categories":·[ + 211 │ - ········"maps·&·travel", + 212 │ - ········"objects" + 213 │ - ······], + 159 │ + ······"categories":·["maps·&·travel",·"objects"], + 214 160 │ "figmaCategory": "maps & travel", + 215 161 │ "tags": [ + ··········· │ + 234 180 │ "component": "AirplaneTilt", + 235 181 │ "codepoint": 58838, + 236 │ - ······"categories":·[ + 237 │ - ········"maps·&·travel", + 238 │ - ········"objects" + 239 │ - ······], + 182 │ + ······"categories":·["maps·&·travel",·"objects"], + 240 183 │ "figmaCategory": "maps & travel", + 241 184 │ "tags": [ + ··········· │ + 259 202 │ "component": "Airplay", + 260 203 │ "codepoint": 57348, + 261 │ - ······"categories":·[ + 262 │ - ········"media", + 263 │ - ········"system" + 264 │ - ······], + 204 │ + ······"categories":·["media",·"system"], + 265 205 │ "figmaCategory": "media", + 266 │ - ······"tags":·[ + 267 │ - ········"apple", + 268 │ - ········"screencasting", + 269 │ - ········"television", + 270 │ - ········"tv" + 271 │ - ······], + 206 │ + ······"tags":·["apple",·"screencasting",·"television",·"tv"], + 23943 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-baseline.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 26 26 │ }, + 27 27 │ "expectedRoute": null, + 28 │ - ······"grades":·[ + 29 │ - ········2, + 30 │ - ········0, + 31 │ - ········0 + 32 │ - ······], + 28 │ + ······"grades":·[2,·0,·0], + 33 29 │ "id": "domain-style-glassmorphism", + 34 30 │ "route": "style", + ········· │ + 65 61 │ }, + 66 62 │ "expectedRoute": null, + 67 │ - ······"grades":·[ + 68 │ - ········2, + 69 │ - ········1, + 70 │ - ········0 + 71 │ - ······], + 63 │ + ······"grades":·[2,·1,·0], + 72 64 │ "id": "domain-style-accessible-paraphrase", + 73 65 │ "route": "style", + ········· │ + 104 96 │ }, + 105 97 │ "expectedRoute": null, + 106 │ - ······"grades":·[ + 107 │ - ········2, + 108 │ - ········0, + 109 │ - ········0 + 110 │ - ······], + 98 │ + ······"grades":·[2,·0,·0], + 111 99 │ "id": "domain-color-spa", + 112 100 │ "route": "color", + ········· │ + 143 131 │ }, + 144 132 │ "expectedRoute": null, + 145 │ - ······"grades":·[ + 146 │ - ········0, + 147 │ - ········2, + 148 │ - ········0 + 149 │ - ······], + 133 │ + ······"grades":·[0,·2,·0], + 150 134 │ "id": "domain-color-cyber-typo", + 151 135 │ "route": "color", + ········· │ + 182 166 │ }, + 183 167 │ "expectedRoute": null, + 184 │ - ······"grades":·[ + 185 │ - ········2, + 186 │ - ········0, + 187 │ - ········0 + 188 │ - ······], + 168 │ + ······"grades":·[2,·0,·0], + 189 169 │ "id": "domain-chart-time-series", + 190 170 │ "route": "chart", + ········· │ + 218 198 │ }, + 219 199 │ "expectedRoute": null, + 220 │ - ······"grades":·[ + 221 │ - ········2, + 222 │ - ········0 + 223 │ - ······], + 200 │ + ······"grades":·[2,·0], + 224 201 │ "id": "domain-chart-correlation-paraphrase", + 225 202 │ "route": "chart", + ········· │ + 256 233 │ }, + 257 234 │ "expectedRoute": null, + 258 │ - ······"grades":·[ + 259 │ - ········2, + 260 │ - ········2, + 261 │ - ········1 + 262 │ - ······], + 235 │ + ······"grades":·[2,·2,·1], + 263 236 │ "id": "domain-landing-pricing", + 264 237 │ "route": "landing", + ········· │ + 295 268 │ }, + 296 269 │ "expectedRoute": null, + 297 │ - ······"grades":·[ + 298 │ - ········2, + 299 │ - ········1, + 300 │ - ········0 + 301 │ - ······], + 270 │ + ······"grades":·[2,·1,·0], + 302 271 │ "id": "domain-landing-enterprise-typo", + 303 272 │ "route": "landing", + ········· │ + 334 303 │ }, + 335 304 │ "expectedRoute": null, + 336 │ - ······"grades":·[ + 337 │ - ········2, + 338 │ - ········1, + 339 │ - ········0 + 340 │ - ······], + 305 │ + ······"grades":·[2,·1,·0], + 341 306 │ "id": "domain-product-spa", + 342 307 │ "route": "product", + ········· │ + 401 366 │ }, + 402 367 │ "expectedRoute": null, + 403 │ - ······"grades":·[ + 404 │ - ········2, + 405 │ - ········0, + 406 │ - ········0 + 407 │ - ······], + 368 │ + ······"grades":·[2,·0,·0], + 408 369 │ "id": "domain-ux-keyboard-focus", + 409 370 │ "route": "ux", + ········· │ + 443 404 │ }, + 444 405 │ "expectedRoute": null, + 445 │ - ······"grades":·[ + 446 │ - ········1, + 447 │ - ········2, + 448 │ - ········0 + 449 │ - ······], + 406 │ + ······"grades":·[1,·2,·0], + 450 407 │ "id": "domain-ux-motion-paraphrase", + 451 408 │ "route": "ux", + ········· │ + 485 442 │ }, + 486 443 │ "expectedRoute": null, + 487 │ - ······"grades":·[ + 488 │ - ········2, + 489 │ - ········2, + 490 │ - ········0 + 491 │ - ······], + 444 │ + ······"grades":·[2,·2,·0], + 492 445 │ "id": "domain-typography-luxury", + 493 446 │ "route": "typography", + ········· │ + 527 480 │ }, + 528 481 │ "expectedRoute": null, + 529 │ - ······"grades":·[ + 530 │ - ········2, + 531 │ - ········1, + 532 │ - ········0 + 533 │ - ······], + 482 │ + ······"grades":·[2,·1,·0], + 534 483 │ "id": "domain-typography-accessible-typo", + 535 484 │ "route": "typography", + ········· │ + 569 518 │ }, + 570 519 │ "expectedRoute": null, + 571 │ - ······"grades":·[ + 572 │ - ········2, + 573 │ - ········0, + 574 │ - ········0 + 575 │ - ······], + 520 │ + ······"grades":·[2,·0,·0], + 576 521 │ "id": "domain-icons-search", + 577 522 │ "route": "icons", + ········· │ + 611 556 │ }, + 612 557 │ "expectedRoute": null, + 613 │ - ······"grades":·[ + 614 │ - ········2, + 615 │ - ········0, + 616 │ - ········0 + 617 │ - ······], + 558 │ + ······"grades":·[2,·0,·0], + 618 559 │ "id": "domain-icons-warning-typo", + 619 560 │ "route": "icons", + ········· │ + 648 589 │ "margin": 0.47825840830284605, + 702 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-cases.json format ━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 9 9 │ "globalNegativeApplicability": { + 10 10 │ "tag": "hard-negative", + 11 │ - ····"domains":·["style",·"color",·"chart",·"landing",·"product",·"ux",·"typography",·"icons",·"gsap",·"react",·"web",·"google-fonts"], + 12 │ - ····"stacks":·["react",·"nextjs",·"vue",·"svelte",·"astro",·"swiftui",·"react-native",·"flutter",·"nuxtjs",·"nuxt-ui",·"html-tailwind",·"shadcn",·"jetpack-compose",·"threejs",·"angular",·"laravel",·"javafx",·"wpf",·"winui",·"avalonia",·"uno",·"uwp"], + 11 │ + ····"domains":·[ + 12 │ + ······"style", + 13 │ + ······"color", + 14 │ + ······"chart", + 15 │ + ······"landing", + 16 │ + ······"product", + 17 │ + ······"ux", + 18 │ + ······"typography", + 19 │ + ······"icons", + 20 │ + ······"gsap", + 21 │ + ······"react", + 22 │ + ······"web", + 23 │ + ······"google-fonts" + 24 │ + ····], + 25 │ + ····"stacks":·[ + 26 │ + ······"react", + 27 │ + ······"nextjs", + 28 │ + ······"vue", + 29 │ + ······"svelte", + 30 │ + ······"astro", + 31 │ + ······"swiftui", + 32 │ + ······"react-native", + 33 │ + ······"flutter", + 34 │ + ······"nuxtjs", + 35 │ + ······"nuxt-ui", + 36 │ + ······"html-tailwind", + 37 │ + ······"shadcn", + 38 │ + ······"jetpack-compose", + 39 │ + ······"threejs", + 40 │ + ······"angular", + 41 │ + ······"laravel", + 42 │ + ······"javafx", + 43 │ + ······"wpf", + 44 │ + ······"winui", + 45 │ + ······"avalonia", + 46 │ + ······"uno", + 47 │ + ······"uwp" + 48 │ + ····], + 13 49 │ "interpretation": "Run every hard-negative case against all registered domains and stacks. Any returned row is an implicit grade-0 false positive; aggregate reporting may cap this cross-product separately." + 14 50 │ }, + 15 51 │ "cases": [ + 16 │ - ····{"id":"domain-style-glassmorphism","split":"calibration","mode":"domain","query":"frosted·glass·transparent·blurred·layered·UI","domain":"style","judgments":[{"identity":{"Style·Category":"Glassmorphism"},"grade":2}],"tags":["exact-intent","domain-positive"],"notes":"Canonical·visual·treatment,·expressed·through·its·descriptive·attributes."}, + 17 │ - ····{"id":"domain-style-accessible-paraphrase","split":"held_out","mode":"domain","query":"inclusive·high·contrast·interface·with·keyboard·nav·and·screen·readers","domain":"style","judgments":[{"identity":{"Style·Category":"Accessible·&·Ethical"},"grade":2},{"identity":{"Style·Category":"Inclusive·Design"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"A·style·request,·not·an·individual·UX·rule."}, + 18 │ - ····{"id":"domain-color-spa","split":"calibration","mode":"domain","query":"beauty·spa·wellness·soft·pink·lavender·palette","domain":"color","judgments":[{"identity":{"Product·Type":"Beauty/Spa/Wellness·Service"},"grade":2}],"tags":["product-palette","domain-positive"],"notes":"Uses·the·public·Product·Type·as·the·stable·palette·identity."}, + 19 │ - ····{"id":"domain-color-cyber-typo","split":"held_out","mode":"domain","query":"cybersecurty·threat·dashboard·matrix·green·dark·pallete","domain":"color","judgments":[{"identity":{"Product·Type":"Cybersecurity·Platform"},"grade":2}],"tags":["typo","domain-positive"],"notes":"Deliberately·misspells·cybersecurity·and·palette."}, + 20 │ - ····{"id":"domain-chart-time-series","split":"calibration","mode":"domain","query":"trend·over·time·growth·timeline·line·chart","domain":"chart","judgments":[{"identity":{"Data·Type":"Trend·Over·Time"},"grade":2},{"identity":{"Data·Type":"Time-Series·Forecast"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Forecasting·is·acceptable·only·as·a·secondary·interpretation."}, + 21 │ - ····{"id":"domain-chart-correlation-paraphrase","split":"held_out","mode":"domain","query":"show·whether·two·measures·move·together·using·dots·and·bubbles","domain":"chart","judgments":[{"identity":{"Data·Type":"Correlation·/·Distribution"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·canonical·words·scatter·and·correlation."}, + 22 │ - ····{"id":"domain-landing-pricing","split":"calibration","mode":"domain","query":"pricing·plans·tiers·comparison·landing·CTA","domain":"landing","judgments":[{"identity":{"Pattern·Name":"Pricing·Page·+·CTA"},"grade":2},{"identity":{"Pattern·Name":"Pricing-Focused·Landing"},"grade":2},{"identity":{"Pattern·Name":"Comparison·Table·+·CTA"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Both·dedicated·pricing·patterns·are·equally·valid."}, + 23 │ - ····{"id":"domain-landing-enterprise-typo","split":"held_out","mode":"domain","query":"enterprise·credibilty·trust·authority·conversion·page","domain":"landing","judgments":[{"identity":{"Pattern·Name":"Trust·&·Authority·+·Conversion"},"grade":2},{"identity":{"Pattern·Name":"Enterprise·Gateway"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·credibility·while·preserving·the·enterprise·intent."}, + 24 │ - ····{"id":"domain-product-spa","split":"calibration","mode":"domain","query":"salon·massage·skincare·booking·and·wellness·service","domain":"product","judgments":[{"identity":{"Product·Type":"Beauty/Spa/Wellness·Service"},"grade":2},{"identity":{"Product·Type":"Booking·&·Appointment·App"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"The·industry·is·primary;·booking·is·a·supporting·capability."}, + 25 │ - ····{"id":"domain-product-security-paraphrase","split":"held_out","mode":"domain","query":"platform·for·monitoring·digital·threats·and·protecting·systems","domain":"product","judgments":[{"identity":{"Product·Type":"Cybersecurity·Platform"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·exact·keyword·cyber."}, + 26 │ - ····{"id":"domain-ux-keyboard-focus","split":"calibration","mode":"domain","query":"visible·focus·and·complete·keyboard·navigation·for·web·users","domain":"ux","judgments":[{"identity":{"Category":"Accessibility","Issue":"Keyboard·Navigation","Platform":"Web"},"grade":2},{"identity":{"Category":"Interaction","Issue":"Focus·States","Platform":"All"},"grade":2}],"tags":["multi-acceptable","domain-positive"],"notes":"Both·navigation·coverage·and·visible·focus·are·explicitly·requested."}, + 27 │ - ····{"id":"domain-ux-motion-paraphrase","split":"held_out","mode":"domain","query":"stop·animations·making·people·sick·and·honor·their·motion·preference","domain":"ux","judgments":[{"identity":{"Category":"Animation","Issue":"Reduced·Motion","Platform":"All"},"grade":2},{"identity":{"Category":"Animation","Issue":"Excessive·Motion","Platform":"All"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"Preference·support·is·stronger·than·generic·excessive-motion·advice."}, + 28 │ - ····{"id":"domain-typography-luxury","split":"calibration","mode":"domain","query":"elegant·luxury·serif·heading·with·clean·readable·body·font","domain":"typography","judgments":[{"identity":{"Font·Pairing·Name":"Classic·Elegant"},"grade":2},{"identity":{"Font·Pairing·Name":"Luxury·Serif"},"grade":2},{"identity":{"Font·Pairing·Name":"Luxury·Minimalist"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Several·curated·pairs·directly·satisfy·this·intentionally·broad·mood."}, + 29 │ - ····{"id":"domain-typography-accessible-typo","split":"held_out","mode":"domain","query":"dyslexia·frendly·hyperlegible·inclusive·type·pairing","domain":"typography","judgments":[{"identity":{"Font·Pairing·Name":"Accessibility·First"},"grade":2},{"identity":{"Font·Pairing·Name":"Academic/Research"},"grade":1}],"tags":["typo","accessibility","domain-positive"],"notes":"Misspells·friendly;·the·all-Atkinson·pairing·is·the·direct·answer."}, + 30 │ - ····{"id":"domain-icons-search","split":"calibration","mode":"domain","query":"find·lookup·search·icon·for·a·query·field","domain":"icons","judgments":[{"identity":{"Category":"Action","Icon·Name":"magnifying-glass","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Action","Icon·Name":"funnel","Library":"Phosphor"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Filter·is·useful·but·not·equivalent·to·search."}, + 31 │ - ····{"id":"domain-icons-warning-typo","split":"held_out","mode":"domain","query":"warnng·caution·danger·status·symbol","domain":"icons","judgments":[{"identity":{"Category":"Status","Icon·Name":"warning","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Status","Icon·Name":"warning-circle","Library":"Phosphor"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·warning·and·allows·the·circled·variant·as·secondary."}, + 32 │ - ····{"id":"domain-gsap-scroll-reveal","split":"calibration","mode":"domain","query":"GSAP·reveal·elements·when·they·enter·the·viewport·on·scroll","domain":"gsap","judgments":[{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Subtle","Trigger":"scroll·(viewport·enter)"},"grade":2},{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Standard","Trigger":"scroll·(viewport·enter)"},"grade":2},{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Complex","Trigger":"scroll·(continuous·scrub)"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Viewport-entry·variants·are·direct;·continuous·scrub·is·related·but·stronger."}, + 33 │ - ····{"id":"domain-gsap-skeleton-typo","split":"held_out","mode":"domain","query":"skeletn·shimmer·loader·while·async·content·waits","domain":"gsap","judgments":[{"identity":{"Category":"Loading·/·Skeleton","Intensity·Tier":"Subtle","Trigger":"on·mount·/·async·wait"},"grade":2},{"identity":{"Category":"Loading·/·Skeleton","Intensity·Tier":"Standard","Trigger":"on·mount·/·async·wait"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·skeleton;·subtle·shimmer·is·the·most·exact·row."}, + 34 │ - ····{"id":"domain-react-parallel-promises","split":"calibration","mode":"domain","query":"React·Promise.all·parallel·concurrent·requests·instead·of·waterfall","domain":"react","judgments":[{"identity":{"Category":"Async·Waterfall","Issue":"Promise.all·Parallel","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Async·Waterfall","Issue":"Dependency·Parallelization","Platform":"React/Next.js"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"The·first·row·exactly·names·Promise.all."}, + 35 │ - ····{"id":"domain-react-dynamic-import-paraphrase","split":"held_out","mode":"domain","query":"load·a·heavy·JavaScript·chunk·only·when·the·component·is·needed","domain":"react","judgments":[{"identity":{"Category":"Bundle·Size","Issue":"Dynamic·Imports","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Bundle·Size","Issue":"Conditional·Loading","Platform":"React/Next.js"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·canonical·term·lazy·in·the·main·clause."}, + 36 │ - ····{"id":"domain-web-icon-label","split":"calibration","mode":"domain","query":"accessible·name·for·an·icon-only·mobile·button","domain":"web","judgments":[{"identity":{"Category":"Accessibility","Issue":"Icon·Button·Labels","Platform":"iOS/Android/React·Native"},"grade":2}],"tags":["accessibility","domain-positive"],"notes":"App-interface·guidance·uses·the·public·web·domain·key."}, + 37 │ - ····{"id":"domain-web-virtual-list-paraphrase","split":"held_out","mode":"domain","query":"keep·a·very·long·mobile·list·smooth·without·rendering·every·row","domain":"web","judgments":[{"identity":{"Category":"Performance","Issue":"Virtualize·Long·Lists","Platform":"iOS/Android/React·Native"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Describes·virtualization·without·naming·FlatList."}, + 38 │ - ····{"id":"domain-google-fonts-inter","split":"calibration","mode":"domain","query":"Inter·variable·sans·serif·Google·font·family","domain":"google-fonts","judgments":[{"identity":{"Family":"Inter"},"grade":2},{"identity":{"Family":"Inter·Tight"},"grade":1}],"tags":["exact-entity","domain-positive"],"notes":"Exact·family·is·preferred·over·its·related·Tight·family."}, + 39 │ - ····{"id":"domain-google-fonts-atkinson-paraphrase","split":"held_out","mode":"domain","query":"hyperlegible·accessible·sans·typeface·for·easier·reading","domain":"google-fonts","judgments":[{"identity":{"Family":"Atkinson·Hyperlegible"},"grade":2},{"identity":{"Family":"Atkinson·Hyperlegible·Next"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"The·established·family·is·locked;·its·newer·related·family·is·acceptable."}, + 52 │ + ····{ + 53 │ + ······"id":·"domain-style-glassmorphism", + 54 │ + ······"split":·"calibration", + 55 │ + ······"mode":·"domain", + 56 │ + ······"query":·"frosted·glass·transparent·blurred·layered·UI", + 57 │ + ······"domain":·"style", + 58 │ + ······"judgments":·[{·"identity":·{·"Style·Category":·"Glassmorphism"·},·"grade":·2·}], + 59 │ + ······"tags":·["exact-intent",·"domain-positive"], + 60 │ + ······"notes":·"Canonical·visual·treatment,·expressed·through·its·descriptive·attributes." + 61 │ + ····}, + 62 │ + ····{ + 63 │ + ······"id":·"domain-style-accessible-paraphrase", + 64 │ + ······"split":·"held_out", + 65 │ + ······"mode":·"domain", + 66 │ + ······"query":·"inclusive·high·contrast·interface·with·keyboard·nav·and·screen·readers", + 67 │ + ······"domain":·"style", + 68 │ + ······"judgments":·[ + 69 │ + ········{·"identity":·{·"Style·Category":·"Accessible·&·Ethical"·},·"grade":·2·}, + 70 │ + ········{·"identity":·{·"Style·Category":·"Inclusive·Design"·},·"grade":·1·} + 71 │ + ······], + 72 │ + ······"tags":·["paraphrase",·"domain-positive"], + 73 │ + ······"notes":·"A·style·request,·not·an·individual·UX·rule." + 74 │ + ····}, + 75 │ + ····{ + 76 │ + ······"id":·"domain-color-spa", + 77 │ + ······"split":·"calibration", + 78 │ + ······"mode":·"domain", + 79 │ + ······"query":·"beauty·spa·wellness·soft·pink·lavender·palette", + 80 │ + ······"domain":·"color", + 81 │ + ······"judgments":·[{·"identity":·{·"Product·Type":·"Beauty/Spa/Wellness·Service"·},·"grade":·2·}], + 82 │ + ······"tags":·["product-palette",·"domain-positive"], + 83 │ + ······"notes":·"Uses·the·public·Product·Type·as·the·stable·palette·identity." + 84 │ + ····}, + 85 │ + ····{ + 86 │ + ······"id":·"domain-color-cyber-typo", + 87 │ + ······"split":·"held_out", + 88 │ + ······"mode":·"domain", + 89 │ + ······"query":·"cybersecurty·threat·dashboard·matrix·green·dark·pallete", + 90 │ + ······"domain":·"color", + 91 │ + ······"judgments":·[{·"identity":·{·"Product·Type":·"Cybersecurity·Platform"·},·"grade":·2·}], + 92 │ + ······"tags":·["typo",·"domain-positive"], + 93 │ + ······"notes":·"Deliberately·misspells·cybersecurity·and·palette." + 94 │ + ····}, + 95 │ + ····{ + 96 │ + ······"id":·"domain-chart-time-series", + 97 │ + ······"split":·"calibration", + 98 │ + ······"mode":·"domain", + 99 │ + ······"query":·"trend·over·time·growth·timeline·line·chart", + 100 │ + ······"domain":·"chart", + 101 │ + ······"judgments":·[ + 102 │ + ········{·"identity":·{·"Data·Type":·"Trend·Over·Time"·},·"grade":·2·}, + 103 │ + ········{·"identity":·{·"Data·Type":·"Time-Series·Forecast"·},·"grade":·1·} + 104 │ + ······], + 105 │ + ······"tags":·["exact-intent",·"domain-positive"], + 106 │ + ······"notes":·"Forecasting·is·acceptable·only·as·a·secondary·interpretation." + 107 │ + ····}, + 108 │ + ····{ + 109 │ + ······"id":·"domain-chart-correlation-paraphrase", + 110 │ + ······"split":·"held_out", + 111 │ + ······"mode":·"domain", + 112 │ + ······"query":·"show·whether·two·measures·move·together·using·dots·and·bubbles", + 113 │ + ······"domain":·"chart", + 114 │ + ······"judgments":·[{·"identity":·{·"Data·Type":·"Correlation·/·Distribution"·},·"grade":·2·}], + 115 │ + ······"tags":·["paraphrase",·"domain-positive"], + 116 │ + ······"notes":·"Avoids·the·canonical·words·scatter·and·correlation." + 117 │ + ····}, + 118 │ + ····{ + 119 │ + ······"id":·"domain-landing-pricing", + 120 │ + ······"split":·"calibration", + 121 │ + ······"mode":·"domain", + 122 │ + ······"query":·"pricing·plans·tiers·comparison·landing·CTA", + 123 │ + ······"domain":·"landing", + 124 │ + ······"judgments":·[ + 125 │ + ········{·"identity":·{·"Pattern·Name":·"Pricing·Page·+·CTA"·},·"grade":·2·}, + 126 │ + ········{·"identity":·{·"Pattern·Name":·"Pricing-Focused·Landing"·},·"grade":·2·}, + 127 │ + ········{·"identity":·{·"Pattern·Name":·"Comparison·Table·+·CTA"·},·"grade":·1·} + 128 │ + ······], + 129 │ + ······"tags":·["multi-acceptable",·"domain-positive"], + 130 │ + ······"notes":·"Both·dedicated·pricing·patterns·are·equally·valid." + 131 │ + ····}, + 132 │ + ····{ + 1440 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json format ━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 14 14 │ "tolerancePolicy": "A 1e-12 numeric tolerance permits floating-point representation only. Current known failures remain visible in relevance-baseline.json; the gate prevents regressions and does not claim final quality targets are met.", + 15 15 │ "metrics": { + 16 │ - ····"routingAccuracy":·{"floor":·0.875,·"tolerance":·1e-12}, + 17 │ - ····"precisionAt1":·{"floor":·0.7631578947368421,·"tolerance":·1e-12}, + 18 │ - ····"precisionAt3":·{"floor":·0.3815789473684211,·"tolerance":·1e-12}, + 19 │ - ····"mrrAt3":·{"floor":·0.8355263157894737,·"tolerance":·1e-12}, + 20 │ - ····"ndcgAt3":·{"floor":·0.8366350964266653,·"tolerance":·1e-12}, + 21 │ - ····"negativeAbstention":·{"floor":·0.9117647058823529,·"tolerance":·1e-12}, + 22 │ - ····"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 23 │ - ····"designSystemCoherence":·{"floor":·0.71875,·"tolerance":·1e-12} + 16 │ + ····"routingAccuracy":·{·"floor":·0.875,·"tolerance":·1e-12·}, + 17 │ + ····"precisionAt1":·{·"floor":·0.7631578947368421,·"tolerance":·1e-12·}, + 18 │ + ····"precisionAt3":·{·"floor":·0.3815789473684211,·"tolerance":·1e-12·}, + 19 │ + ····"mrrAt3":·{·"floor":·0.8355263157894737,·"tolerance":·1e-12·}, + 20 │ + ····"ndcgAt3":·{·"floor":·0.8366350964266653,·"tolerance":·1e-12·}, + 21 │ + ····"negativeAbstention":·{·"floor":·0.9117647058823529,·"tolerance":·1e-12·}, + 22 │ + ····"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 23 │ + ····"designSystemCoherence":·{·"floor":·0.71875,·"tolerance":·1e-12·} + 24 24 │ }, + 25 25 │ "sampleMinimums": { + ······· │ + 46 46 │ "calibration": { + 47 47 │ "metrics": { + 48 │ - ········"routingAccuracy":·{"floor":·0.8,·"tolerance":·1e-12}, + 49 │ - ········"precisionAt1":·{"floor":·0.8974358974358975,·"tolerance":·1e-12}, + 50 │ - ········"precisionAt3":·{"floor":·0.40170940170940167,·"tolerance":·1e-12}, + 51 │ - ········"mrrAt3":·{"floor":·0.9230769230769231,·"tolerance":·1e-12}, + 52 │ - ········"ndcgAt3":·{"floor":·0.9103072109232644,·"tolerance":·1e-12}, + 53 │ - ········"negativeAbstention":·{"floor":·0.9411764705882353,·"tolerance":·1e-12}, + 54 │ - ········"typoRecoveryAt3":·{"floor":·0.0,·"tolerance":·1e-12}, + 55 │ - ········"designSystemCoherence":·{"floor":·0.6875,·"tolerance":·1e-12} + 48 │ + ········"routingAccuracy":·{·"floor":·0.8,·"tolerance":·1e-12·}, + 49 │ + ········"precisionAt1":·{·"floor":·0.8974358974358975,·"tolerance":·1e-12·}, + 50 │ + ········"precisionAt3":·{·"floor":·0.40170940170940167,·"tolerance":·1e-12·}, + 51 │ + ········"mrrAt3":·{·"floor":·0.9230769230769231,·"tolerance":·1e-12·}, + 52 │ + ········"ndcgAt3":·{·"floor":·0.9103072109232644,·"tolerance":·1e-12·}, + 53 │ + ········"negativeAbstention":·{·"floor":·0.9411764705882353,·"tolerance":·1e-12·}, + 54 │ + ········"typoRecoveryAt3":·{·"floor":·0.0,·"tolerance":·1e-12·}, + 55 │ + ········"designSystemCoherence":·{·"floor":·0.6875,·"tolerance":·1e-12·} + 56 56 │ }, + 57 │ - ······"sampleMinimums":·{"cases":·46,·"retrieval":·39,·"routing":·5,·"negativeChecks":·102,·"typo":·0,·"designSystem":·4} + 57 │ + ······"sampleMinimums":·{ + 58 │ + ········"cases":·46, + 59 │ + ········"retrieval":·39, + 60 │ + ········"routing":·5, + 61 │ + ········"negativeChecks":·102, + 62 │ + ········"typo":·0, + 63 │ + ········"designSystem":·4 + 64 │ + ······} + 58 65 │ }, + 59 66 │ "held_out": { + 60 67 │ "metrics": { + 61 │ - ········"routingAccuracy":·{"floor":·1.0,·"tolerance":·1e-12}, + 62 │ - ········"precisionAt1":·{"floor":·0.6216216216216216,·"tolerance":·1e-12}, + 63 │ - ········"precisionAt3":·{"floor":·0.36036036036036034,·"tolerance":·1e-12}, + 64 │ - ········"mrrAt3":·{"floor":·0.7432432432432432,·"tolerance":·1e-12}, + 65 │ - ········"ndcgAt3":·{"floor":·0.7589807054707906,·"tolerance":·1e-12}, + 66 │ - ········"negativeAbstention":·{"floor":·0.8823529411764706,·"tolerance":·1e-12}, + 67 │ - ········"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 68 │ - ········"designSystemCoherence":·{"floor":·0.75,·"tolerance":·1e-12} + 68 │ + ········"routingAccuracy":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 69 │ + ········"precisionAt1":·{·"floor":·0.6216216216216216,·"tolerance":·1e-12·}, + 70 │ + ········"precisionAt3":·{·"floor":·0.36036036036036034,·"tolerance":·1e-12·}, + 71 │ + ········"mrrAt3":·{·"floor":·0.7432432432432432,·"tolerance":·1e-12·}, + 72 │ + ········"ndcgAt3":·{·"floor":·0.7589807054707906,·"tolerance":·1e-12·}, + 73 │ + ········"negativeAbstention":·{·"floor":·0.8823529411764706,·"tolerance":·1e-12·}, + 74 │ + ········"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 75 │ + ········"designSystemCoherence":·{·"floor":·0.75,·"tolerance":·1e-12·} + 69 76 │ }, + 70 │ - ······"sampleMinimums":·{"cases":·44,·"retrieval":·37,·"routing":·3,·"negativeChecks":·102,·"typo":·5,·"designSystem":·4} + 77 │ + ······"sampleMinimums":·{ + 78 │ + ········"cases":·44, + 79 │ + ········"retrieval":·37, + 80 │ + ········"routing":·3, + 81 │ + ········"negativeChecks":·102, + 82 │ + ········"typo":·5, + 83 │ + ········"designSystem":·4 + 84 │ + ······} + 71 85 │ } + 72 86 │ }, + 73 87 │ "lockedCases": { + 74 │ - ····"domain-style-glassmorphism":·{"withinTop":·1,·"minimumGrade":·2}, + 75 │ - ····"domain-color-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 76 │ - ····"domain-chart-time-series":·{"withinTop":·1,·"minimumGrade":·2}, + 77 │ - ····"domain-landing-pricing":·{"withinTop":·1,·"minimumGrade":·2}, + 78 │ - ····"domain-product-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 79 │ - ····"domain-ux-keyboard-focus":·{"withinTop":·1,·"minimumGrade":·2}, + 80 │ - ····"domain-typography-luxury":·{"withinTop":·1,·"minimumGrade":·2}, + 81 │ - ····"domain-icons-search":·{"withinTop":·1,·"minimumGrade":·2}, + 82 │ - ····"domain-gsap-scroll-reveal":·{"withinTop":·1,·"minimumGrade":·2}, + 83 │ - ····"domain-react-parallel-promises":·{"withinTop":·1,·"minimumGrade":·2}, + 84 │ - ····"domain-web-icon-label":·{"withinTop":·1,·"minimumGrade":·2}, + 85 │ - ····"domain-google-fonts-inter":·{"withinTop":·1,·"minimumGrade":·2}, + 86 │ - ····"stack-swiftui-navigation":·{"withinTop":·1,·"minimumGrade":·2}, + 87 │ - ····"stack-threejs-orbitcontrols":·{"withinTop":·1,·"minimumGrade":·2}, + 88 │ - ····"stack-uwp-migration":·{"withinTop":·1,·"minimumGrade":·2}, + 89 │ - ····"stack-winui-dispatcherqueue":·{"withinTop":·1,·"minimumGrade":·2} + 88 │ + ····"domain-style-glassmorphism":·{·"withinTop":·1,·"minimumGrade":·2·}, + 89 │ + ····"domain-color-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 90 │ + ····"domain-chart-time-series":·{·"withinTop":·1,·"minimumGrade":·2·}, + 91 │ + ····"domain-landing-pricing":·{·"withinTop":·1,·"minimumGrade":·2·}, + 92 │ + ····"domain-product-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 93 │ + ····"domain-ux-keyboard-focus":·{·"withinTop":·1,·"minimumGrade":·2·}, + 94 │ + ····"domain-typography-luxury":·{·"withinTop":·1,·"minimumGrade":·2·}, + 95 │ + ····"domain-icons-search":·{·"withinTop":·1,·"minimumGrade":·2·}, + 96 │ + ····"domain-gsap-scroll-reveal":·{·"withinTop":·1,·"minimumGrade":·2·}, + 97 │ + ····"domain-react-parallel-promises":·{·"withinTop":·1,·"minimumGrade":·2·}, + 98 │ + ····"domain-web-icon-label":·{·"withinTop":·1,·"minimumGrade":·2·}, + 99 │ + ····"domain-google-fonts-inter":·{·"withinTop":·1,·"minimumGrade":·2·}, + 100 │ + ····"stack-swiftui-navigation":·{·"withinTop":·1,·"minimumGrade":·2·}, + 101 │ + ····"stack-threejs-orbitcontrols":·{·"withinTop":·1,·"minimumGrade":·2·}, + 102 │ + ····"stack-uwp-migration":·{·"withinTop":·1,·"minimumGrade":·2·}, + 103 │ + ····"stack-winui-dispatcherqueue":·{·"withinTop":·1,·"minimumGrade":·2·} + 90 104 │ }, + 91 105 │ "proposedFinalTargets": { + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems-closure/schema.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 16491 16491 │ "migration": { + 16492 16492 │ "mode": "scoped", + 16493 │ - ····"completed":·[ + 16494 │ - ······"scope", + 16495 │ - ······"ownerCheck", + 16496 │ - ······"integrationCheck", + 16497 │ - ······"nullableOwner" + 16498 │ - ····] + 16493 │ + ····"completed":·["scope",·"ownerCheck",·"integrationCheck",·"nullableOwner"] + 16499 16494 │ }, + 16500 16495 │ "repeatedMigration": "no changes", + ··········· │ + 17018 17013 │ } + 17019 17014 │ ] + 17020 │ - } + 17015 │ + } + 17016 │ + + + +.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-unblock/mariadb/legacy-evolution.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems-unblock/mariadb/schema.json format ━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 16491 16491 │ "migration": { + 16492 16492 │ "mode": "scoped", + 16493 │ - ····"completed":·[ + 16494 │ - ······"scope", + 16495 │ - ······"ownerCheck", + 16496 │ - ······"integrationCheck", + 16497 │ - ······"nullableOwner" + 16498 │ - ····] + 16493 │ + ····"completed":·["scope",·"ownerCheck",·"integrationCheck",·"nullableOwner"] + 16499 16494 │ }, + 16500 16495 │ "repeatedMigration": "no changes", + ··········· │ + 17018 17013 │ } + 17019 17014 │ ] + 17020 │ - } + 17015 │ + } + 17016 │ + + + +.artifacts/resources-global-operating-systems/global-operating-systems-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 10 10 │ "contract": 3, + 11 11 │ "gatesEnabledOnlyInDisposableTest": true + 12 │ - } + 12 │ + } + 13 │ + + + +.inspect-catalog-db.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + 2 2 │ import { QueryTypes } from "sequelize"; + 3 │ - const·db=createDatabase(readDatabaseEnvironment(process.env)); + 4 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL",{type:QueryTypes.SELECT})); + 5 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()",{type:QueryTypes.SELECT})); + 6 │ - await·db.close(); + 3 │ + const·db·=·createDatabase(readDatabaseEnvironment(process.env)); + 4 │ + console.log( + 5 │ + ··await·db.query( + 6 │ + ····"SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL", + 7 │ + ····{·type:·QueryTypes.SELECT·} + 8 │ + ··) + 9 │ + ); + 10 │ + console.log( + 11 │ + ··await·db.query( + 12 │ + ····"SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()", + 13 │ + ····{·type:·QueryTypes.SELECT·} + 14 │ + ··) + 15 │ + ); + 16 │ + await·db.close(); + 17 │ + + + +.inspect-catalog-db.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { QueryTypes } from "sequelize"; + 3 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + + i Safe fix: Organize Imports (Biome) + + 1 │ - import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 2 │ - import·{·QueryTypes·}·from·"sequelize"; + 1 │ + import·{·QueryTypes·}·from·"sequelize"; + 2 │ + + 3 │ + import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 4 │ + + 3 5 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + 4 6 │ console.log(await db.query("SELECT TABLE_NAME AS child,COLUMN_NAME AS col,REFERENCED_TABLE_NAME AS parent,REFERENCED_COLUMN_NAME AS parentCol FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL",{type:QueryTypes.SELECT})); + + +UniFi_Inventario_20261018_141642_88f7af54-98f8-306a-a1c7-c9349722b1f6.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - {␍ + 2 │ - ····"metadata":··{␍ + 3 │ - ·····················"fecha_utc":··"2026-10-18T12:16:04.8493583Z",␍ + 4 │ - ·····················"consola_id":··"0ac1312d-4eb0-46d6-b659-f1e6099d19a2",␍ + 5 │ - ·····················"sitio_id":··"88f7af54-98f8-306a-a1c7-c9349722b1f6",␍ + 6 │ - ·····················"sitio_nombre":··"Default",␍ + 7 │ - ·····················"network_version":··"10.6.106",␍ + 8 │ - ·····················"origen":··"UniFi·Network·Integration·API·/·Cloud·Connector",␍ + 9 │ - ·····················"nota":··"Datos·accesibles·mediante·endpoints·GET;·no·es·un·backup·integral."␍ + 10 │ - ·················},␍ + 11 │ - ····"datos":··{␍ + 12 │ - ··················"dispositivos":··[␍ + 13 │ - ·······································[␍ + 14 │ - ···········································{␍ + 15 │ - ···············································"id":··"41d0c3de-ed8f-3645-bd8e-ce1cfbd5c1b3",␍ + 16 │ - ···············································"macAddress":··"68:d7:9a:48:64:58",␍ + 17 │ - ···············································"ipAddress":··"192.168.5.21",␍ + 18 │ - ···············································"name":··"USW·Pro·24",␍ + 19 │ - ···············································"model":··"USW·Pro·24",␍ + 20 │ - ···············································"state":··"ONLINE",␍ + 21 │ - ···············································"supported":··true,␍ + 22 │ - ···············································"firmwareVersion":··"7.5.15",␍ + 23 │ - ···············································"firmwareUpdatable":··false,␍ + 24 │ - ···············································"features":··[␍ + 25 │ - ································································"switching"␍ + 26 │ - ····························································],␍ + 27 │ - ···············································"interfaces":··[␍ + 28 │ - ··································································"ports"␍ + 29 │ - ······························································]␍ + 30 │ - ···········································},␍ + 31 │ - ···········································{␍ + 32 │ - ···············································"id":··"5cf9095e-dc23-30a3-a869-feb55c369cfe",␍ + 33 │ - ···············································"macAddress":··"68:d7:9a:34:31:f0",␍ + 34 │ - ···············································"ipAddress":··"192.168.5.20",␍ + 35 │ - ···············································"name":··"USW·Pro·48·(Rack)",␍ + 36 │ - ···············································"model":··"USW·Pro·48",␍ + 37 │ - ···············································"state":··"ONLINE",␍ + 38 │ - ···············································"supported":··true,␍ + 39 │ - ···············································"firmwareVersion":··"7.5.15",␍ + 40 │ - ···············································"firmwareUpdatable":··false,␍ + 41 │ - ···············································"features":··[␍ + 42 │ - ································································"switching"␍ + 43 │ - ····························································],␍ + 44 │ - ···············································"interfaces":··[␍ + 45 │ - ··································································"ports"␍ + 46 │ - ······························································]␍ + 47 │ - ···········································},␍ + 48 │ - ···········································{␍ + 49 │ - ···············································"id":··"09d922f5-6113-3686-bd39-be46c5b2889f",␍ + 50 │ - ···············································"macAddress":··"24:5a:4c:1e:0e:b0",␍ + 51 │ - ···············································"ipAddress":··"192.168.5.22",␍ + 52 │ - ···············································"name":··"U6-Lite·Oficina",␍ + 53 │ - ···············································"model":··"U6·Lite",␍ + 54 │ - ···············································"state":··"ONLINE",␍ + 55 │ - ···············································"supported":··true,␍ + 56 │ - ···············································"firmwareVersion":··"6.7.57",␍ + 57 │ - ···············································"firmwareUpdatable":··false,␍ + 58 │ - ···············································"features":··[␍ + 59 │ - ································································"accessPoint"␍ + 60 │ - ····························································],␍ + 61 │ - ···············································"interfaces":··[␍ + 62 │ - ··································································"radios"␍ + 63 │ - ······························································]␍ + 64 │ - ···········································},␍ + 65 │ - ···········································{␍ + 66 │ - ···············································"id":··"769f9f32-0b30-3e40-add6-bec8b2e355df",␍ + 67 │ - ···············································"macAddress":··"24:5a:4c:1e:12:a0",␍ + 68 │ - ···············································"ipAddress":··"192.168.5.11",␍ + 69 │ - ···············································"name":··"U6-Lite·Reuniones",␍ + 70 │ - ···············································"model":··"U6·Lite",␍ + 71 │ - ···············································"state":··"ONLINE",␍ + 72 │ - ···············································"supported":··true,␍ + 73 │ - ···············································"firmwareVersion":··"6.7.57",␍ + 74 │ - ···············································"firmwareUpdatable":··false,␍ + 75 │ - ···············································"features":··[␍ + 76 │ - ································································"accessPoint"␍ + 77 │ - ····························································],␍ + 78 │ - ···············································"interfaces":··[␍ + 79 │ - ··································································"radios"␍ + 80 │ - ······························································]␍ + 81 │ - ···········································},␍ + 82 │ - ···········································{␍ + 83 │ - ···············································"id":··"f6062d18-5484-35c4-9277-0b7988036b9b",␍ + 84 │ - ···············································"macAddress":··"24:5a:4c:1e:10:4c",␍ + 85 │ - ···············································"ipAddress":··"192.168.5.15",␍ + 86 │ - ···············································"name":··"U6-Lite·Cafetería",␍ + 87 │ - ···············································"model":··"U6·Lite",␍ + 88 │ - ···············································"state":··"ONLINE",␍ + 89 │ - ···············································"supported":··true,␍ + 90 │ - ···············································"firmwareVersion":··"6.7.57",␍ + 91 │ - ···············································"firmwareUpdatable":··false,␍ + 92 │ - ···············································"features":··[␍ + 93 │ - ································································"accessPoint"␍ + 94 │ - ····························································],␍ + 95 │ - ···············································"interfaces":··[␍ + 96 │ - ··································································"radios"␍ + 97 │ - ······························································]␍ + 98 │ - ···········································},␍ + 99 │ - ···········································{␍ + 100 │ - ···············································"id":··"14a950a7-cbaa-3215-8ca0-404439733f89",␍ + 101 │ - ···············································"macAddress":··"24:5a:4c:1e:1c:38",␍ + 102 │ - ···············································"ipAddress":··"192.168.5.19",␍ + 103 │ - ···············································"name":··"U6-Lite·Exposición",␍ + 104 │ - ···············································"model":··"U6·Lite",␍ + 105 │ - ···············································"state":··"ONLINE",␍ + 106 │ - ···············································"supported":··true,␍ + 107 │ - ···············································"firmwareVersion":··"6.7.57",␍ + 108 │ - ···············································"firmwareUpdatable":··false,␍ + 109 │ - ···············································"features":··[␍ + 110 │ - ································································"accessPoint"␍ + 111 │ - ····························································],␍ + 112 │ - ···············································"interfaces":··[␍ + 113 │ - ··································································"radios"␍ + 114 │ - ······························································]␍ + 115 │ - ···········································},␍ + 116 │ - ···········································{␍ + 117 │ - ···············································"id":··"8babce50-d1e3-3728-b152-52685cba3cb3",␍ + 118 │ - ···············································"macAddress":··"68:d7:9a:5e:53:89",␍ + 119 │ - ···············································"ipAddress":··"217.124.116.61",␍ + 120 │ - ···············································"name":··"Uecko",␍ + 121 │ - ···············································"model":··"UDM·Pro",␍ + 122 │ - ···············································"state":··"ONLINE",␍ + 123 │ - ···············································"supported":··true,␍ + 124 │ - ···············································"firmwareVersion":··"5.1.33",␍ + 125 │ - ···············································"firmwareUpdatable":··false,␍ + 126 │ - ···············································"features":··[␍ + 127 │ - ································································"switching"␍ + 128 │ - ····························································],␍ + 129 │ - ···············································"interfaces":··[␍ + 130 │ - ··································································"ports"␍ + 131 │ - ······························································]␍ + 132 │ - ···········································},␍ + 133 │ - ···········································{␍ + 134 │ - ···············································"id":··"779c6b93-fff8-3538-a483-8267437721f0",␍ + 135 │ - ···············································"macAddress":··"28:70:4e:c8:b3:56",␍ + 136 │ - ···············································"ipAddress":··"192.168.5.43",␍ + 137 │ - ···············································"name":··"USW-Lite-8-PoE·(Empaquetadora)",␍ + 138 │ - ···············································"model":··"USW-Lite-8-PoE",␍ + 139 │ - ···············································"state":··"ONLINE",␍ + 140 │ - ···············································"supported":··true,␍ + 141 │ - ···············································"firmwareVersion":··"7.5.15",␍ + 142 │ - ···············································"firmwareUpdatable":··false,␍ + 143 │ - ···············································"features":··[␍ + 144 │ - ································································"switching"␍ + 145 │ - ····························································],␍ + 146 │ - ···············································"interfaces":··[␍ + 147 │ - ··································································"ports"␍ + 148 │ - ······························································]␍ + 149 │ - ···········································},␍ + 150 │ - ···········································{␍ + 7887 more lines truncated + + +docs/auditorias/ficha-puesto-trabajo/implementacion-v2.1/mediciones.json format ━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 28 28 │ }, + 29 29 │ "rows": 2, + 30 │ - ········"headers":·[ + 31 │ - ··········"Perfil", + 32 │ - ··········"Persona", + 33 │ - ··········"Cuenta", + 34 │ - ··········"Estado", + 35 │ - ··········"Configuraciones" + 36 │ - ········], + 30 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 37 31 │ "firstRowHeight": 233, + 38 32 │ "firstRowLinks": [ + ········· │ + 71 65 │ }, + 72 66 │ "rows": 2, + 73 │ - ········"headers":·[ + 74 │ - ··········"Perfil", + 75 │ - ··········"Persona", + 76 │ - ··········"Cuenta", + 77 │ - ··········"Estado", + 78 │ - ··········"Configuraciones" + 79 │ - ········], + 67 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 80 68 │ "firstRowHeight": 233, + 81 69 │ "firstRowLinks": [ + ········· │ + 114 102 │ }, + 115 103 │ "rows": 2, + 116 │ - ········"headers":·[ + 117 │ - ··········"Perfil", + 118 │ - ··········"Persona", + 119 │ - ··········"Cuenta", + 120 │ - ··········"Estado", + 121 │ - ··········"Configuraciones" + 122 │ - ········], + 104 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 123 105 │ "firstRowHeight": 233, + 124 106 │ "firstRowLinks": [ + ········· │ + 157 139 │ }, + 158 140 │ "rows": 2, + 159 │ - ········"headers":·[ + 160 │ - ··········"Perfil", + 161 │ - ··········"Persona", + 162 │ - ··········"Cuenta", + 163 │ - ··········"Estado", + 164 │ - ··········"Configuraciones" + 165 │ - ········], + 141 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 166 142 │ "firstRowHeight": 233, + 167 143 │ "firstRowLinks": [ + ········· │ + 200 176 │ }, + 201 177 │ "rows": 2, + 202 │ - ········"headers":·[ + 203 │ - ··········"Perfil", + 204 │ - ··········"Persona", + 205 │ - ··········"Cuenta", + 206 │ - ··········"Estado", + 207 │ - ··········"Configuraciones" + 208 │ - ········], + 178 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 209 179 │ "firstRowHeight": 233, + 210 180 │ "firstRowLinks": [ + ········· │ + 243 213 │ }, + 244 214 │ "rows": 2, + 245 │ - ········"headers":·[ + 246 │ - ··········"Perfil", + 247 │ - ··········"Persona", + 248 │ - ··········"Cuenta", + 249 │ - ··········"Estado", + 250 │ - ··········"Configuraciones" + 251 │ - ········], + 215 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 252 216 │ "firstRowHeight": 233, + 253 217 │ "firstRowLinks": [ + ········· │ + 286 250 │ }, + 287 251 │ "rows": 2, + 288 │ - ········"headers":·[ + 289 │ - ··········"Perfil", + 290 │ - ··········"Persona", + 291 │ - ··········"Cuenta", + 292 │ - ··········"Estado", + 293 │ - ··········"Configuraciones" + 294 │ - ········], + 252 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 295 253 │ "firstRowHeight": 233, + 296 254 │ "firstRowLinks": [ + ········· │ + 329 287 │ }, + 330 288 │ "rows": 2, + 331 │ - ········"headers":·[ + 332 │ - ··········"Perfil", + 333 │ - ··········"Persona", + 334 │ - ··········"Cuenta", + 335 │ - ··········"Estado", + 336 │ - ··········"Configuraciones" + 337 │ - ········], + 289 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 338 290 │ "firstRowHeight": 233, + 339 291 │ "firstRowLinks": [ + ········· │ + 372 324 │ }, + 373 325 │ "rows": 2, + 374 │ - ········"headers":·[ + 375 │ - ··········"Perfil", + 376 │ - ··········"Persona", + 377 │ - ··········"Cuenta", + 378 │ - ··········"Estado", + 379 │ - ··········"Configuraciones" + 380 │ - ········], + 326 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 381 327 │ "firstRowHeight": 233, + 382 328 │ "firstRowLinks": [ + ········· │ + 415 361 │ }, + 416 362 │ "rows": 2, + 417 │ - ········"headers":·[ + 418 │ - ··········"Perfil", + 419 │ - ··········"Persona", + 420 │ - ··········"Cuenta", + 421 │ - ··········"Estado", + 422 │ - ··········"Configuraciones" + 423 │ - ········], + 363 │ + ········"headers":·["Perfil",·"Persona",·"Cuenta",·"Estado",·"Configuraciones"], + 424 364 │ "firstRowHeight": 233, + 425 365 │ "firstRowLinks": [ + ········· │ + 458 398 │ }, + 459 399 │ "rows": 2, + 460 │ - ········"headers":·[ + 461 │ - ··········"Perfil", + 462 │ - ··········"Configuraciones" + 463 │ - ········], + 400 │ + ········"headers":·["Perfil",·"Configuraciones"], + 464 401 │ "firstRowHeight": 213, + 465 402 │ "firstRowLinks": [ + ········· │ + 498 435 │ }, + 499 436 │ "rows": 2, + 500 │ - ········"headers":·[ + 501 │ - ··········"Perfil", + 502 │ - ··········"Configuraciones" + 503 │ - ········], + 437 │ + ········"headers":·["Perfil",·"Configuraciones"], + 504 438 │ "firstRowHeight": 213, + 505 439 │ "firstRowLinks": [ + ········· │ + 538 472 │ }, + 539 473 │ "rows": 2, + 540 │ - ········"headers":·[ + 541 │ - ··········"Perfil", + 542 │ - ··········"Configuraciones" + 543 │ - ········], + 474 │ + ········"headers":·["Perfil",·"Configuraciones"], + 544 475 │ "firstRowHeight": 301, + 545 476 │ "firstRowLinks": [ + ········· │ + 578 509 │ }, + 579 510 │ "rows": 2, + 580 │ - ········"headers":·[ + 662 more lines truncated + + +docs/auditorias/ficha-puesto-trabajo/implementacion-v2.1/validaciones.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 1 │ { + 2 │ - ··"scope":·[ + 3 │ - ····"M03", + 4 │ - ····"M04", + 5 │ - ····"M06" + 6 │ - ··], + 2 │ + ··"scope":·["M03",·"M04",·"M06"], + 7 3 │ "runtime": { + 8 4 │ "node": "24.20.0", + ······· │ + 56 52 │ "passed": 229, + 57 53 │ "total": 231, + 58 │ - ········"failures":·[ + 59 │ - ··········"companies-page.test.tsx:180", + 60 │ - ··········"companies-page.test.tsx:210" + 61 │ - ········] + 54 │ + ········"failures":·["companies-page.test.tsx:180",·"companies-page.test.tsx:210"] + 62 55 │ } + 63 56 │ } + ······· │ + 83 76 │ "v1Passed": 5, + 84 77 │ "viewports": [ + 85 │ - ······[ + 86 │ - ········1600, + 87 │ - ········1000 + 88 │ - ······], + 89 │ - ······[ + 90 │ - ········1440, + 91 │ - ········900 + 92 │ - ······], + 93 │ - ······[ + 94 │ - ········1280, + 95 │ - ········900 + 96 │ - ······], + 97 │ - ······[ + 98 │ - ········1024, + 99 │ - ········768 + 100 │ - ······], + 101 │ - ······[ + 102 │ - ········768, + 103 │ - ········1024 + 104 │ - ······], + 105 │ - ······[ + 106 │ - ········390, + 107 │ - ········844 + 108 │ - ······], + 109 │ - ······[ + 110 │ - ········320, + 111 │ - ········720 + 112 │ - ······] + 78 │ + ······[1600,·1000], + 79 │ + ······[1440,·900], + 80 │ + ······[1280,·900], + 81 │ + ······[1024,·768], + 82 │ + ······[768,·1024], + 83 │ + ······[390,·844], + 84 │ + ······[320,·720] + 113 85 │ ], + 114 │ - ····"containerWidths":·[ + 115 │ - ······599, + 116 │ - ······600, + 117 │ - ······601, + 118 │ - ······839, + 119 │ - ······840, + 120 │ - ······841 + 121 │ - ····], + 86 │ + ····"containerWidths":·[599,·600,·601,·839,·840,·841], + 122 87 │ "fixtures": { + 123 88 │ "companies": 15, + + +docs/auditorias/workplace-dashboard/07-datos-ejemplo.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 118 118 │ "siteId": "019a0a00-0000-7000-8000-000000000003", + 119 119 │ "personId": "019a0a00-0000-7000-8000-000000000004", + 120 │ - ················"assetIds":·[ + 121 │ - ··················"019a0a00-0000-7000-8000-000000000020" + 122 │ - ················], + 120 │ + ················"assetIds":·["019a0a00-0000-7000-8000-000000000020"], + 123 121 │ "computerAssetId": "019a0a00-0000-7000-8000-000000000020" + 124 122 │ }, + ········· │ + 154 152 │ "siteId": "019a0a00-0000-7000-8000-000000000003", + 155 153 │ "personId": null, + 156 │ - ············"assetIds":·[ + 157 │ - ··············"019a0a00-0000-7000-8000-000000000023" + 158 │ - ············], + 154 │ + ············"assetIds":·["019a0a00-0000-7000-8000-000000000023"], + 159 155 │ "computerAssetId": "019a0a00-0000-7000-8000-000000000023" + 160 156 │ }, + ········· │ + 167 163 │ "siteId": "019a0a00-0000-7000-8000-000000000003", + 168 164 │ "personId": null, + 169 │ - ················"assetIds":·[ + 170 │ - ··················"019a0a00-0000-7000-8000-000000000023" + 171 │ - ················], + 165 │ + ················"assetIds":·["019a0a00-0000-7000-8000-000000000023"], + 172 166 │ "computerAssetId": "019a0a00-0000-7000-8000-000000000023" + 173 167 │ }, + ········· │ + 223 217 │ "personId": "019a0a00-0000-7000-8000-000000000004", + 224 218 │ "computerAssetId": "019a0a00-0000-7000-8000-000000000020", + 225 │ - ················"assetIds":·[ + 226 │ - ··················"019a0a00-0000-7000-8000-000000000020" + 227 │ - ················] + 219 │ + ················"assetIds":·["019a0a00-0000-7000-8000-000000000020"] + 228 220 │ }, + 229 221 │ "actorId": "019a0a00-0000-7000-8000-000000000002", + ········· │ + 1175 1167 │ "personId": "019a0a00-0000-7000-8000-000000000004", + 1176 1168 │ "resourceId": "019a0a00-0000-7000-8000-000000000053", + 1177 │ - ············"permissionIds":·[ + 1178 │ - ··············"019a0a00-0000-7000-8000-000000000045" + 1179 │ - ············], + 1169 │ + ············"permissionIds":·["019a0a00-0000-7000-8000-000000000045"], + 1180 1170 │ "startDate": "2026-09-01", + 1181 1171 │ "endDate": null, + ········· │ + 1189 1179 │ "personId": "019a0a00-0000-7000-8000-000000000004", + 1190 1180 │ "resourceId": "019a0a00-0000-7000-8000-000000000053", + 1191 │ - ················"permissionIds":·[ + 1192 │ - ··················"019a0a00-0000-7000-8000-000000000045" + 1193 │ - ················], + 1181 │ + ················"permissionIds":·["019a0a00-0000-7000-8000-000000000045"], + 1194 1182 │ "startDate": "2026-09-01", + 1195 1183 │ "endDate": null, + ········· │ + 1749 1737 │ "name": "Error parcial simulado de presentación", + 1750 1738 │ "baseWorkstationId": "019a0a00-0000-7000-8000-000000000010", + 1751 │ - ······"displayUnavailable":·[ + 1752 │ - ········"profiles", + 1753 │ - ········"folders" + 1754 │ - ······] + 1739 │ + ······"displayUnavailable":·["profiles",·"folders"] + 1755 1740 │ }, + 1756 1741 │ { + + +modules/assets/src/web/assets/detail/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AssetDetailDialog } from "./asset-detail-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AssetSelectionPanel } from "./asset-selection-panel"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AssetDetailDialog } from "./asset-detail-dialog"; + 2 │ - + 3 2 │ export { AssetSelectionPanel } from "./asset-selection-panel"; + 4 3 │ + + +modules/assets/src/web/assets/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { WorkstationAssetCreateDialog } from "./create"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AssetInventoryPage } from "./list"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { WorkstationAssetCreateDialog } from "./create"; + 2 │ - + 3 2 │ export { AssetInventoryPage } from "./list"; + 4 │ - + 5 3 │ export { AssetForm } from "./shared"; + 6 │ - + 7 4 │ export type { InventoryLookups } from "./shared/types"; + 8 5 │ + + +modules/assets/src/web/brands/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { BrandCatalogPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { BrandSelect } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { BrandCatalogPage } from "./list"; + 2 │ - + 3 2 │ export { BrandSelect } from "./shared"; + 4 3 │ + + +modules/assets/src/web/brands/shared/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { useBrandFormController } from "./use-brand-form-controller"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useBrandSelectController } from "./use-brand-select-controller"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { useBrandFormController } from "./use-brand-form-controller"; + 2 │ - + 3 2 │ export { useBrandSelectController } from "./use-brand-select-controller"; + 4 3 │ + + +modules/assets/src/web/brands/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { brandApi, brandKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { BrandEditorDialog, BrandSelect } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { brandApi, brandKeys } from "./api"; + 2 │ - + 3 2 │ export { BrandEditorDialog, BrandSelect } from "./ui"; + 4 3 │ + + +modules/assets/src/web/brands/shared/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { BrandFormProps } from "./brand-form-props"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { BrandSelectProps } from "./brand-select-props"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { BrandFormProps } from "./brand-form-props"; + 2 │ - + 3 2 │ export type { BrandSelectProps } from "./brand-select-props"; + 4 3 │ + + +modules/assets/src/web/brands/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { BrandEditorDialog } from "./brand-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { BrandForm } from "./brand-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { BrandEditorDialog } from "./brand-editor-dialog"; + 2 │ - + 3 2 │ export { BrandForm } from "./brand-form"; + 4 │ - + 5 3 │ export { BrandLogo } from "./brand-logo"; + 6 │ - + 7 4 │ export { BrandSelect } from "./brand-select"; + 8 5 │ + + +modules/assets/src/web/catalog-relations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CatalogRelationCreateDialog } from "./create"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogRelationForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CatalogRelationCreateDialog } from "./create"; + 2 │ - + 3 2 │ export { CatalogRelationForm } from "./shared"; + 4 3 │ + + +modules/assets/src/web/catalog-templates/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CatalogTemplateCreateDialog } from "./create"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogTemplateForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CatalogTemplateCreateDialog } from "./create"; + 2 │ - + 3 2 │ export { CatalogTemplateForm } from "./shared"; + 4 3 │ + + +modules/assets/src/web/catalog/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AssetCatalogPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogError } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AssetCatalogPage } from "./list"; + 2 │ - + 3 2 │ export { CatalogError } from "./shared"; + 4 │ - + 5 3 │ export { catalogApi, catalogKeys } from "./shared/api"; + 6 4 │ + + +modules/assets/src/web/catalog/shared/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { CatalogSaved } from "./use-catalog-save"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useCatalogSave } from "./use-catalog-save"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { CatalogSaved } from "./use-catalog-save"; + 2 │ - + 3 2 │ export { useCatalogSave } from "./use-catalog-save"; + 4 3 │ + + +modules/assets/src/web/catalog/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { catalogApi, catalogKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { CatalogEditor } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { catalogApi, catalogKeys } from "./api"; + 2 │ - + 3 2 │ export type { CatalogEditor } from "./ui"; + 4 │ - + 5 3 │ export { CatalogEditorDialog, CatalogError, CatalogHelp, CatalogName } from "./ui"; + 6 4 │ + + +modules/assets/src/web/catalog/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { CatalogEditor } from "./catalog-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogEditorDialog } from "./catalog-editor-dialog"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { CatalogEditor } from "./catalog-editor-dialog"; + 2 │ - + 3 2 │ export { CatalogEditorDialog } from "./catalog-editor-dialog"; + 4 │ - + 5 3 │ export { CatalogError } from "./catalog-error"; + 6 │ - + 7 4 │ export { CatalogHelp } from "./catalog-help"; + 8 │ - + 9 5 │ export { CatalogName } from "./catalog-name"; + 10 6 │ + + +modules/assets/src/web/shared/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { inventoryApi } from "./inventory-api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { InventoryApiError } from "./inventory-api-error"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { inventoryApi } from "./inventory-api"; + 2 │ - + 3 2 │ export { InventoryApiError } from "./inventory-api-error"; + 4 │ - + 5 3 │ export { SupportApiError } from "./support-api-error"; + 6 4 │ + + +modules/assets/src/web/shared/i18n.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { default as assetsEnglish } from "../../common/locales/en.json"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { default as assetsSpanish } from "../../common/locales/es.json"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { default as assetsEnglish } from "../../common/locales/en.json"; + 2 │ - + 3 2 │ export { default as assetsSpanish } from "../../common/locales/es.json"; + 4 3 │ + + +modules/assets/src/web/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { inventoryApi } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { assetsEnglish, assetsSpanish } from "./i18n"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { inventoryApi } from "./api"; + 2 │ - + 3 2 │ export { assetsEnglish, assetsSpanish } from "./i18n"; + 4 │ - + 5 3 │ export { inventoryKeys, supportKeys } from "./queries"; + 6 │ - + 7 4 │ export { InventoryFeedback, SupportFeedback } from "./ui"; + 8 5 │ + + +modules/assets/src/web/shared/queries/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { inventoryKeys } from "./inventory-query-keys"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { supportKeys } from "./support-query-keys"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { inventoryKeys } from "./inventory-query-keys"; + 2 │ - + 3 2 │ export { supportKeys } from "./support-query-keys"; + 4 3 │ + + +modules/assets/src/web/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { InventoryFeedback } from "./inventory-feedback"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { SupportFeedback } from "./support-feedback"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { InventoryFeedback } from "./inventory-feedback"; + 2 │ - + 3 2 │ export { SupportFeedback } from "./support-feedback"; + 4 3 │ + + +modules/assets/src/web/support-connections/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { SupportConnectionEditorDialog } from "./support-connection-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { SupportForm } from "./support-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { SupportConnectionEditorDialog } from "./support-connection-editor-dialog"; + 2 │ - + 3 2 │ export { SupportForm } from "./support-form"; + 4 3 │ + + +modules/assets/src/web/workstations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { WorkstationEditorDialog } from "./workstation-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { WorkstationForm } from "./workstation-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { WorkstationEditorDialog } from "./workstation-editor-dialog"; + 2 │ - + 3 2 │ export { WorkstationForm } from "./workstation-form"; + 4 3 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { Result } from "@repo/rdx-utils"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { z } from "zod/v4"; + 3 │ import { PERSON_PHOTO_LIMITS } from "../../common/person-photo"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ import { Result } from "@repo/rdx-utils"; + 2 2 │ import { z } from "zod/v4"; + 3 │ + + 3 4 │ import { PERSON_PHOTO_LIMITS } from "../../common/person-photo"; + 4 5 │ import { PersonPhotoError } from "../domain/person-photo-error"; + + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/http/person-photo.routes.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import type { Application, RequestHandler } from "express"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { Router, raw } from "express"; + 3 │ import { z } from "zod/v4"; + + i Safe fix: Organize Imports (Biome) + + 2 2 │ import { Router, raw } from "express"; + 3 3 │ import { z } from "zod/v4"; + 4 │ + + 4 5 │ import { PERSON_PHOTO_LIMITS, PersonPhotoVersionSchema } from "../../../common/person-photo"; + 5 6 │ import type { PersonPhotoUseCases } from "../../application/person-photo.use-cases"; + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts format ━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 9 9 │ + 10 10 │ if (rows.some((row) => row.name === "person_photos")) return; + 11 │ - ··await·database + 12 │ - ····.getQueryInterface() + 13 │ - ····.createTable("person_photos",·{ + 14 │ - ······personId:·{·type:·DataTypes.UUID,·primaryKey:·true·}, + 15 │ - ······companyId:·{·type:·DataTypes.UUID,·allowNull:·false·}, + 16 │ - ······data:·{·type:·DataTypes.BLOB("medium"),·allowNull:·false·}, + 17 │ - ······version:·{·type:·DataTypes.STRING(64),·allowNull:·false·}, + 18 │ - ······createdAt:·{·type:·DataTypes.DATE,·allowNull:·false,·defaultValue:·DataTypes.NOW·}, + 19 │ - ······updatedAt:·{·type:·DataTypes.DATE,·allowNull:·false,·defaultValue:·DataTypes.NOW·}, + 20 │ - ····}); + 11 │ + ··await·database.getQueryInterface().createTable("person_photos",·{ + 12 │ + ····personId:·{·type:·DataTypes.UUID,·primaryKey:·true·}, + 13 │ + ····companyId:·{·type:·DataTypes.UUID,·allowNull:·false·}, + 14 │ + ····data:·{·type:·DataTypes.BLOB("medium"),·allowNull:·false·}, + 15 │ + ····version:·{·type:·DataTypes.STRING(64),·allowNull:·false·}, + 16 │ + ····createdAt:·{·type:·DataTypes.DATE,·allowNull:·false,·defaultValue:·DataTypes.NOW·}, + 17 │ + ····updatedAt:·{·type:·DataTypes.DATE,·allowNull:·false,·defaultValue:·DataTypes.NOW·}, + 18 │ + ··}); + 21 19 │ await database.query( + 22 20 │ "ALTER TABLE person_photos ADD CONSTRAINT person_photos_person_fk FOREIGN KEY (personId, companyId) REFERENCES company_contacts (id, companyId) ON DELETE CASCADE" + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import type { InferAttributes, InferCreationAttributes, Sequelize } from "sequelize"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { DataTypes, Model } from "sequelize"; + 3 │ import type { IPersonPhotoRepository, PersonPhoto } from "../../application/person-photo.use-cases"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ import type { InferAttributes, InferCreationAttributes, Sequelize } from "sequelize"; + 2 2 │ import { DataTypes, Model } from "sequelize"; + 3 │ + + 3 4 │ import type { IPersonPhotoRepository, PersonPhoto } from "../../application/person-photo.use-cases"; + 5 │ + + 4 6 │ import { PersonModel } from "./company.model"; + 5 7 │ + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 15 │ }).metadata(); + 16 │ + > 17 │ if ( + │ ^^^^ + > 18 │ !metadata.width || + ... + > 23 │ ) + > 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 25 │ const output = await sharp(input) + 26 │ .rotate() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + 22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "") + 23 │ - ······) + 24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 23 │ + ······)·{ + 24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 25 │ + ······} + 25 26 │ const output = await sharp(input) + 26 27 │ .rotate() + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { createHash } from "node:crypto"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import sharp from "sharp"; + 3 │ import { Result } from "@repo/rdx-utils"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ import { createHash } from "node:crypto"; + 2 │ - import·sharp·from·"sharp"; + 3 │ - import·{·Result·}·from·"@repo/rdx-utils"; + 2 │ + + 3 │ + import·{·Result·}·from·"@repo/rdx-utils"; + 4 │ + import·sharp·from·"sharp"; + 5 │ + + 4 6 │ import { PERSON_PHOTO_LIMITS } from "../../common/person-photo"; + 5 7 │ import type { IPersonPhotoProcessor, PersonPhoto } from "../application/person-photo.use-cases"; + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ .toBuffer(); + 33 │ + > 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 36 │ + 37 │ return Result.ok({ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 32 32 │ .toBuffer(); + 33 33 │ + 34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes) + 35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{ + 35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 36 │ + ······} + 36 37 │ + 37 38 │ return Result.ok({ + + +modules/companies/src/common/application-configurations.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { ApplicationConfigurationInputSchema } from "../api/domain/application-configuration-values"; + + i Safe fix: Organize Imports (Biome) + + 4 4 │ + 5 5 │ export type { ApplicationConfigurationInput } from "../api/domain/application-configuration-values"; + 6 │ - + 7 6 │ export { + 8 7 │ APPLICATION_STATE_TRANSITIONS, + + +modules/companies/src/common/certificate-configurations.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { CertificateConfigurationInputSchema } from "../api/domain/certificate-configuration-values"; + + i Safe fix: Organize Imports (Biome) + + 4 4 │ + 5 5 │ export type { CertificateConfigurationInput } from "../api/domain/certificate-configuration-values"; + 6 │ - + 7 6 │ export { + 8 7 │ CERTIFICATE_STATE_TRANSITIONS, + + +modules/companies/src/common/dto/shared/people.dto.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { PersonPhotoVersionSchema } from "../../person-photo"; + 3 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ import { z } from "zod/v4"; + 2 │ + + 2 3 │ import { PersonPhotoVersionSchema } from "../../person-photo"; + 3 4 │ + + +modules/companies/src/common/mail-configurations.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { + + i Safe fix: Organize Imports (Biome) + + 7 7 │ + 8 8 │ export type { MailConfigurationInput } from "../api/domain/mail-configuration-values"; + 9 │ - + 10 9 │ export { + 11 10 │ MailConfigurationInputSchema, + + +modules/companies/src/common/printer-configurations.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { PrinterConfigurationInputSchema } from "../api/domain/printer-configuration-values"; + + i Safe fix: Organize Imports (Biome) + + 4 4 │ + 5 5 │ export type { PrinterConfigurationInput } from "../api/domain/printer-configuration-values"; + 6 │ - + 7 6 │ export { + 8 7 │ PRINTER_STATE_TRANSITIONS, + + +modules/companies/src/common/processes.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { + + i Safe fix: Organize Imports (Biome) + + 14 14 │ UpdateProcessInput, + 15 15 │ } from "../api/domain/process-values"; + 16 │ - + 17 16 │ export { + 18 17 │ ProcessReferenceSchema, + + +modules/companies/src/common/remote-connections.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { z } from "zod/v4"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { RemoteConnectionInputSchema } from "../api/domain/remote-connection-values"; + + i Safe fix: Organize Imports (Biome) + + 4 4 │ + 5 5 │ export type { RemoteConnectionInput } from "../api/domain/remote-connection-values"; + 6 │ - + 7 6 │ export { + 8 7 │ REMOTE_STATE_TRANSITIONS, + + +modules/companies/src/web/access/create/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { useAccessQuickEditorController } from "./use-access-quick-editor-controller"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useQuickCreateDialogController } from "./use-quick-create-dialog-controller"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { useAccessQuickEditorController } from "./use-access-quick-editor-controller"; + 2 │ - + 3 2 │ export { useQuickCreateDialogController } from "./use-quick-create-dialog-controller"; + 4 3 │ + + +modules/companies/src/web/access/create/helpers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { matches } from "./quick-create-dialog-values"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { QuickCreatePlan } from "./quick-create-plan"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { matches } from "./quick-create-dialog-values"; + 2 │ - + 3 2 │ export type { QuickCreatePlan } from "./quick-create-plan"; + 4 │ - + 5 3 │ export { matchesSubmittedValues, quickCreatePlan } from "./quick-create-plan"; + 6 4 │ + + +modules/companies/src/web/access/create/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { QuickCreatePlan } from "./helpers"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { matchesSubmittedValues, quickCreatePlan } from "./helpers"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { QuickCreatePlan } from "./helpers"; + 2 │ - + 3 2 │ export { matchesSubmittedValues, quickCreatePlan } from "./helpers"; + 4 │ - + 5 3 │ export { AccessQuickEditor } from "./ui"; + 6 4 │ + + +modules/companies/src/web/access/create/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { AccessQuickEditorProps } from "./access-quick-editor-props"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { QuickCreateDialogProps, QuickCreateTarget } from "./quick-create-dialog-props"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { AccessQuickEditorProps } from "./access-quick-editor-props"; + 2 │ - + 3 2 │ export type { QuickCreateDialogProps, QuickCreateTarget } from "./quick-create-dialog-props"; + 4 3 │ + + +modules/companies/src/web/access/help/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccessHelpDialog } from "./access-help-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { EntityHelp } from "./entity-help"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccessHelpDialog } from "./access-help-dialog"; + 2 │ - + 3 2 │ export { EntityHelp } from "./entity-help"; + 4 3 │ + + +modules/companies/src/web/access/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { EntityHelp } from "./help"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AccessWorkspacePage } from "./list"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { EntityHelp } from "./help"; + 2 │ - + 3 2 │ export { AccessWorkspacePage } from "./list"; + 4 │ - + 5 3 │ export { AccessForm, accessEnglish, accessSpanish } from "./shared"; + 6 │ - + 7 4 │ export { accessLabel } from "./shared/helpers"; + 8 │ - + 9 5 │ export { accessKeys } from "./shared/queries"; + 10 6 │ + + +modules/companies/src/web/access/shared/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccessApiError } from "./access-api-error"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { saveAccess } from "./save-access.api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccessApiError } from "./access-api-error"; + 2 │ - + 3 2 │ export { saveAccess } from "./save-access.api"; + 4 3 │ + + +modules/companies/src/web/access/shared/helpers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { AccessField } from "./access-fields"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { accessFields, createLabels } from "./access-fields"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { AccessField } from "./access-fields"; + 2 │ - + 3 2 │ export { accessFields, createLabels } from "./access-fields"; + 4 │ - + 5 3 │ export type { AccessFormValues } from "./access-form-values"; + 6 │ - + 7 4 │ export { compatibleOption, fieldDefault, formBody } from "./access-form-values"; + 8 │ - + 9 5 │ export { accessLabel } from "./access-labels"; + 10 6 │ + + +modules/companies/src/web/access/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccessApiError } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { accessFields, accessLabel, createLabels } from "./helpers"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccessApiError } from "./api"; + 2 │ - + 3 2 │ export { accessFields, accessLabel, createLabels } from "./helpers"; + 4 │ - + 5 3 │ export { accessEnglish, accessSpanish } from "./i18n"; + 6 │ - + 7 4 │ export { accessKeys } from "./queries"; + 8 │ - + 9 5 │ export { AccessEditorDialog, AccessForm } from "./ui"; + 10 6 │ + + +modules/companies/src/web/access/shared/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { Option } from "./access-field-option"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { AccessFormProps } from "./access-form-props"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { Option } from "./access-field-option"; + 2 │ - + 3 2 │ export type { AccessFormProps } from "./access-form-props"; + 4 3 │ + + +modules/companies/src/web/access/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccessEditorDialog } from "./access-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AccessForm } from "./access-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccessEditorDialog } from "./access-editor-dialog"; + 2 │ - + 3 2 │ export { AccessForm } from "./access-form"; + 4 3 │ + + +modules/companies/src/web/application-configurations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ApplicationConfigurationsPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { applicationApi, applicationKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ApplicationConfigurationsPage } from "./list"; + 2 │ - + 3 2 │ export { applicationApi, applicationKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/application-configurations/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { applicationApi, applicationKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ApplicationConfigurationEditorDialog, ApplicationFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { applicationApi, applicationKeys } from "./api"; + 2 │ - + 3 2 │ export { ApplicationConfigurationEditorDialog, ApplicationFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/application-configurations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ApplicationConfigurationEditorDialog } from "./application-configuration-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ApplicationConfigurationForm } from "./application-configuration-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ApplicationConfigurationEditorDialog } from "./application-configuration-editor-dialog"; + 2 │ - + 3 2 │ export { ApplicationConfigurationForm } from "./application-configuration-form"; + 4 │ - + 5 3 │ export { ApplicationFeedback } from "./application-feedback"; + 6 4 │ + + +modules/companies/src/web/assignments/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AssignmentHistoryDialog } from "./history"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AssignmentEditorDialog, AssignmentForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AssignmentHistoryDialog } from "./history"; + 2 │ - + 3 2 │ export { AssignmentEditorDialog, AssignmentForm } from "./shared"; + 4 3 │ + + +modules/companies/src/web/assignments/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AssignmentEditorDialog } from "./assignment-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { AssignmentForm } from "./assignment-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AssignmentEditorDialog } from "./assignment-editor-dialog"; + 2 │ - + 3 2 │ export { AssignmentForm } from "./assignment-form"; + 4 3 │ + + +modules/companies/src/web/certificate-configurations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CertificateConfigurationsPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { certificateApi, certificateKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CertificateConfigurationsPage } from "./list"; + 2 │ - + 3 2 │ export { certificateApi, certificateKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/certificate-configurations/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { certificateApi, certificateKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CertificateConfigurationEditorDialog, CertificateFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { certificateApi, certificateKeys } from "./api"; + 2 │ - + 3 2 │ export { CertificateConfigurationEditorDialog, CertificateFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/certificate-configurations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CertificateConfigurationEditorDialog } from "./certificate-configuration-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CertificateConfigurationForm } from "./certificate-configuration-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CertificateConfigurationEditorDialog } from "./certificate-configuration-editor-dialog"; + 2 │ - + 3 2 │ export { CertificateConfigurationForm } from "./certificate-configuration-form"; + 4 │ - + 5 3 │ export { CertificateFeedback } from "./certificate-feedback"; + 6 4 │ + + +modules/companies/src/web/companies/change-logo/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { saveCompanyLogo } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CompanyLogoField } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { saveCompanyLogo } from "./api"; + 2 │ - + 3 2 │ export { CompanyLogoField } from "./ui"; + 4 3 │ + + +modules/companies/src/web/companies/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CompanyDetail } from "./detail"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CompaniesPage } from "./list"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CompanyDetail } from "./detail"; + 2 │ - + 3 2 │ export { CompaniesPage } from "./list"; + 4 │ - + 5 3 │ export { + 6 4 │ CompanyAvatar, + ····· │ + 11 9 │ CompanySelect, + 12 10 │ } from "./shared"; + 13 │ - + 14 11 │ export { companyKeys } from "./shared/queries"; + 15 12 │ + + +modules/companies/src/web/companies/shared/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CompanyApiError } from "./company-api-error"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { saveCompany } from "./save-company.api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CompanyApiError } from "./company-api-error"; + 2 │ - + 3 2 │ export { saveCompany } from "./save-company.api"; + 4 3 │ + + +modules/companies/src/web/companies/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { companyKeys } from "./queries"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { CompanyTab } from "./types"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { companyKeys } from "./queries"; + 2 │ - + 3 2 │ export type { CompanyTab } from "./types"; + 4 │ - + 5 3 │ export { + 6 4 │ CompanyAvatar, + + +modules/companies/src/web/companies/shared/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { CompanyFormProps } from "./company-form-props"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { CompanyTab } from "./company-tab"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { CompanyFormProps } from "./company-form-props"; + 2 │ - + 3 2 │ export type { CompanyTab } from "./company-tab"; + 4 3 │ + + +modules/companies/src/web/companies/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CompanyAvatar } from "./company-avatar"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CompanyEditorDialog } from "./company-editor-dialog"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CompanyAvatar } from "./company-avatar"; + 2 │ - + 3 2 │ export { CompanyEditorDialog } from "./company-editor-dialog"; + 4 │ - + 5 3 │ export { CompanyFeedback } from "./company-feedback"; + 6 │ - + 7 4 │ export { CompanyForm } from "./company-form"; + 8 │ - + 9 5 │ export { CompanyIdentity } from "./company-identity"; + 10 │ - + 11 6 │ export { CompanySelect } from "./company-select"; + 12 7 │ + + +modules/companies/src/web/dashboard/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { DashboardNavigationButton, DashboardStateBadge, DashboardTable } from "./shared"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { dashboardKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { DashboardNavigationButton, DashboardStateBadge, DashboardTable } from "./shared"; + 2 │ - + 3 2 │ export { dashboardKeys } from "./shared/api"; + 4 │ - + 5 3 │ export type { DashboardNavigation } from "./shared/helpers"; + 6 │ - + 7 4 │ export { entryDestination } from "./shared/helpers"; + 8 │ - + 9 5 │ export { DashboardPage } from "./view"; + 10 6 │ + + +modules/companies/src/web/dashboard/shared/helpers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { KIND_ICONS } from "./dashboard-kind-icons"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { DashboardNavigation } from "./dashboard-navigation"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { KIND_ICONS } from "./dashboard-kind-icons"; + 2 │ - + 3 2 │ export type { DashboardNavigation } from "./dashboard-navigation"; + 4 │ - + 5 3 │ export { entryDestination } from "./dashboard-navigation"; + 6 4 │ + + +modules/companies/src/web/dashboard/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { dashboardApi, dashboardKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { DashboardNavigation } from "./helpers"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { dashboardApi, dashboardKeys } from "./api"; + 2 │ - + 3 2 │ export type { DashboardNavigation } from "./helpers"; + 4 │ - + 5 3 │ export { KIND_ICONS, entryDestination } from "./helpers"; + 6 │ - + 7 4 │ export { + 8 5 │ BlockState, + + +modules/companies/src/web/dashboard/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { BlockState } from "./dashboard-block"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { DashboardNavigationButton } from "./dashboard-navigation-button"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { BlockState } from "./dashboard-block"; + 2 │ - + 3 2 │ export { DashboardNavigationButton } from "./dashboard-navigation-button"; + 4 │ - + 5 3 │ export { DashboardPanel } from "./dashboard-panel"; + 6 │ - + 7 4 │ export { DashboardStateBadge } from "./dashboard-state-badge"; + 8 │ - + 9 5 │ export { DashboardTable } from "./dashboard-table"; + 10 6 │ + + +modules/companies/src/web/departments/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { DepartmentSection } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { DepartmentEditorDialog } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { DepartmentSection } from "./list"; + 2 │ - + 3 2 │ export { DepartmentEditorDialog } from "./shared"; + 4 3 │ + + +modules/companies/src/web/folder-mappings/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { FolderMappingsPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { folderApi, folderKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { FolderMappingsPage } from "./list"; + 2 │ - + 3 2 │ export { folderApi, folderKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/folder-mappings/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { folderApi, folderKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { FolderFeedback, FolderMappingEditorDialog } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { folderApi, folderKeys } from "./api"; + 2 │ - + 3 2 │ export { FolderFeedback, FolderMappingEditorDialog } from "./ui"; + 4 3 │ + + +modules/companies/src/web/folder-mappings/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { FolderFeedback } from "./folder-feedback"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { FolderMappingEditorDialog } from "./folder-mapping-editor-dialog"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { FolderFeedback } from "./folder-feedback"; + 2 │ - + 3 2 │ export { FolderMappingEditorDialog } from "./folder-mapping-editor-dialog"; + 4 3 │ + + +modules/companies/src/web/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccessWorkspacePage, accessEnglish, accessSpanish } from "./access"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CompaniesPage } from "./companies"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccessWorkspacePage, accessEnglish, accessSpanish } from "./access"; + 2 │ - + 3 2 │ export { CompaniesPage } from "./companies"; + 4 │ - + 5 3 │ export { companyKeys } from "./companies/shared/queries"; + 6 │ - + 7 4 │ export { companiesEnglish, companiesSpanish } from "./shared"; + 8 │ - + 9 5 │ export { CompaniesWorkspace } from "./workspace"; + 10 6 │ + + +modules/companies/src/web/mail-configurations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailConfigurationsPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { mailApi, mailKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailConfigurationsPage } from "./list"; + 2 │ - + 3 2 │ export { mailApi, mailKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/mail-configurations/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { mailApi, mailKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailConfigurationEditorDialog, MailFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { mailApi, mailKeys } from "./api"; + 2 │ - + 3 2 │ export { MailConfigurationEditorDialog, MailFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/mail-configurations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailConfigurationEditorDialog } from "./mail-configuration-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailConfigurationForm } from "./mail-configuration-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailConfigurationEditorDialog } from "./mail-configuration-editor-dialog"; + 2 │ - + 3 2 │ export { MailConfigurationForm } from "./mail-configuration-form"; + 4 │ - + 5 3 │ export { MailFeedback } from "./mail-feedback"; + 6 4 │ + + +modules/companies/src/web/mailbox-uses/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailboxUsagePrompt } from "./create"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailboxUseEditorDialog, MailboxUseForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailboxUsagePrompt } from "./create"; + 2 │ - + 3 2 │ export { MailboxUseEditorDialog, MailboxUseForm } from "./shared"; + 4 3 │ + + +modules/companies/src/web/mailbox-uses/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailboxUseEditorDialog } from "./mailbox-use-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailboxUseForm } from "./mailbox-use-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailboxUseEditorDialog } from "./mailbox-use-editor-dialog"; + 2 │ - + 3 2 │ export { MailboxUseForm } from "./mailbox-use-form"; + 4 3 │ + + +modules/companies/src/web/mailboxes/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailboxForm, MailboxRelations } from "./shared"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { mailboxKeys } from "./shared/queries"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailboxForm, MailboxRelations } from "./shared"; + 2 │ - + 3 2 │ export { mailboxKeys } from "./shared/queries"; + 4 3 │ + + +modules/companies/src/web/mailboxes/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { mailboxKeys } from "./queries"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailboxForm, MailboxRelations } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { mailboxKeys } from "./queries"; + 2 │ - + 3 2 │ export { MailboxForm, MailboxRelations } from "./ui"; + 4 3 │ + + +modules/companies/src/web/mailboxes/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { MailboxForm } from "./mailbox-form"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { MailboxRelations } from "./mailbox-relations"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { MailboxForm } from "./mailbox-form"; + 2 │ - + 3 2 │ export { MailboxRelations } from "./mailbox-relations"; + 4 3 │ + + +modules/companies/src/web/printer-configurations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { PrinterConfigurationsPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { printerApi, printerKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { PrinterConfigurationsPage } from "./list"; + 2 │ - + 3 2 │ export { printerApi, printerKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/printer-configurations/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { printerApi, printerKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { PrinterConfigurationEditorDialog, PrinterFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { printerApi, printerKeys } from "./api"; + 2 │ - + 3 2 │ export { PrinterConfigurationEditorDialog, PrinterFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/printer-configurations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { PrinterConfigurationEditorDialog } from "./printer-configuration-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { PrinterConfigurationForm } from "./printer-configuration-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { PrinterConfigurationEditorDialog } from "./printer-configuration-editor-dialog"; + 2 │ - + 3 2 │ export { PrinterConfigurationForm } from "./printer-configuration-form"; + 4 │ - + 5 3 │ export { PrinterFeedback } from "./printer-feedback"; + 6 4 │ + + +modules/companies/src/web/process-templates/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProcessTemplatesPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ProcessTemplateForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProcessTemplatesPage } from "./list"; + 2 │ - + 3 2 │ export { ProcessTemplateForm } from "./shared"; + 4 3 │ + + +modules/companies/src/web/process-templates/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProcessTemplateEditorDialog } from "./process-template-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ProcessTemplateForm } from "./process-template-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProcessTemplateEditorDialog } from "./process-template-editor-dialog"; + 2 │ - + 3 2 │ export { ProcessTemplateForm } from "./process-template-form"; + 4 3 │ + + +modules/companies/src/web/processes/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { processReferenceTitle, processTaskTitle } from "./helpers"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { processKeys } from "./queries"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { processReferenceTitle, processTaskTitle } from "./helpers"; + 2 │ - + 3 2 │ export { processKeys } from "./queries"; + 4 │ - + 5 3 │ export { ProcessFeedback, ProcessHelp } from "./ui"; + 6 4 │ + + +modules/companies/src/web/processes/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProcessFeedback } from "./process-feedback"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ProcessHelp } from "./process-help"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProcessFeedback } from "./process-feedback"; + 2 │ - + 3 2 │ export { ProcessHelp } from "./process-help"; + 4 3 │ + + +modules/companies/src/web/processes/start/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { getProcessReview } from "./get-process-review.api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { startProcess } from "./start-process.api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { getProcessReview } from "./get-process-review.api"; + 2 │ - + 3 2 │ export { startProcess } from "./start-process.api"; + 4 3 │ + + +modules/companies/src/web/processes/start/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProcessStartDialog } from "./process-start-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ProcessStartForm } from "./process-start-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProcessStartDialog } from "./process-start-dialog"; + 2 │ - + 3 2 │ export { ProcessStartForm } from "./process-start-form"; + 4 3 │ + + +modules/companies/src/web/processes/update/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProcessEditDialog } from "./process-edit-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ProcessEditForm } from "./process-edit-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProcessEditDialog } from "./process-edit-dialog"; + 2 │ - + 3 2 │ export { ProcessEditForm } from "./process-edit-form"; + 4 3 │ + + +modules/companies/src/web/remote-connections/create/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { RemoteQuickKind } from "./ui"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteQuickEditor } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { RemoteQuickKind } from "./ui"; + 2 │ - + 3 2 │ export { RemoteQuickEditor } from "./ui"; + 4 3 │ + + +modules/companies/src/web/remote-connections/create/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { RemoteQuickKind } from "./remote-quick-editor"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteQuickEditor } from "./remote-quick-editor"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { RemoteQuickKind } from "./remote-quick-editor"; + 2 │ - + 3 2 │ export { RemoteQuickEditor } from "./remote-quick-editor"; + 4 3 │ + + +modules/companies/src/web/remote-connections/detail/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { remoteEndpoints } from "./helpers"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteSummary } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { remoteEndpoints } from "./helpers"; + 2 │ - + 3 2 │ export { RemoteSummary } from "./ui"; + 4 3 │ + + +modules/companies/src/web/remote-connections/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { RemoteSummary } from "./detail"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteConnectionsPage } from "./list"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { RemoteSummary } from "./detail"; + 2 │ - + 3 2 │ export { RemoteConnectionsPage } from "./list"; + 4 │ - + 5 3 │ export { remoteApi, remoteKeys } from "./shared/api"; + 6 4 │ + + +modules/companies/src/web/remote-connections/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { remoteApi, remoteKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteConnectionEditorDialog, RemoteFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { remoteApi, remoteKeys } from "./api"; + 2 │ - + 3 2 │ export { RemoteConnectionEditorDialog, RemoteFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/remote-connections/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { RemoteConnectionEditorDialog } from "./remote-connection-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { RemoteConnectionForm } from "./remote-connection-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { RemoteConnectionEditorDialog } from "./remote-connection-editor-dialog"; + 2 │ - + 3 2 │ export { RemoteConnectionForm } from "./remote-connection-form"; + 4 │ - + 5 3 │ export { RemoteFeedback } from "./remote-feedback"; + 6 4 │ + + +modules/companies/src/web/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { companiesEnglish, companiesSpanish } from "./i18n"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { ConfigurationQuickKind } from "./types"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { companiesEnglish, companiesSpanish } from "./i18n"; + 2 │ - + 3 2 │ export type { ConfigurationQuickKind } from "./types"; + 4 │ - + 5 3 │ export { ConfigurationQuickEditor, InitialsAvatar } from "./ui"; + 6 4 │ + + +modules/companies/src/web/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ConfigurationQuickEditor } from "./configuration-quick-editor"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { InitialsAvatar } from "./initials-avatar"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ConfigurationQuickEditor } from "./configuration-quick-editor"; + 2 │ - + 3 2 │ export { InitialsAvatar } from "./initials-avatar"; + 4 3 │ + + +modules/companies/src/web/sites/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { SiteSection } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { SiteForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { SiteSection } from "./list"; + 2 │ - + 3 2 │ export { SiteForm } from "./shared"; + 4 3 │ + + +modules/companies/src/web/sites/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { SiteEditorDialog } from "./site-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { SiteForm } from "./site-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { SiteEditorDialog } from "./site-editor-dialog"; + 2 │ - + 3 2 │ export { SiteForm } from "./site-form"; + 4 3 │ + + +modules/companies/src/web/telework-authorizations/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { TeleworkAuthorizationSummary } from "./detail"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { TeleworkAuthorizationsPage } from "./list"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { TeleworkAuthorizationSummary } from "./detail"; + 2 │ - + 3 2 │ export { TeleworkAuthorizationsPage } from "./list"; + 4 │ - + 5 3 │ export { teleworkApi, teleworkKeys } from "./shared/api"; + 6 4 │ + + +modules/companies/src/web/telework-authorizations/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { teleworkApi, teleworkKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { TeleworkAuthorizationEditorDialog, TeleworkFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { teleworkApi, teleworkKeys } from "./api"; + 2 │ - + 3 2 │ export { TeleworkAuthorizationEditorDialog, TeleworkFeedback } from "./ui"; + 4 3 │ + + +modules/companies/src/web/telework-authorizations/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { TeleworkAuthorizationEditorDialog } from "./telework-authorization-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { TeleworkAuthorizationForm } from "./telework-authorization-form"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { TeleworkAuthorizationEditorDialog } from "./telework-authorization-editor-dialog"; + 2 │ - + 3 2 │ export { TeleworkAuthorizationForm } from "./telework-authorization-form"; + 4 │ - + 5 3 │ export { TeleworkFeedback } from "./telework-feedback"; + 6 4 │ + + +modules/companies/src/web/work-environments/detail/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ProfileConfigurations } from "./profile-configurations"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { WorkEnvironmentPage } from "./work-environment-page"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ProfileConfigurations } from "./profile-configurations"; + 2 │ - + 3 2 │ export { WorkEnvironmentPage } from "./work-environment-page"; + 4 3 │ + + +modules/companies/src/web/work-environments/shared/helpers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { + │ ^^^^^^^^^^^^^ + > 2 │ EnvironmentRow, + > 3 │ EnvironmentSources, + > 4 │ ProfileConfigurationKind, + > 5 │ } from "./work-environment.model"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 6 │ + 7 │ export { buildEnvironment } from "./work-environment.model"; + + i Safe fix: Organize Imports (Biome) + + 4 4 │ ProfileConfigurationKind, + 5 5 │ } from "./work-environment.model"; + 6 │ - + 7 6 │ export { buildEnvironment } from "./work-environment.model"; + 8 7 │ + + +modules/companies/src/web/work-environments/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { EnvironmentRow, EnvironmentSources, ProfileConfigurationKind } from "./helpers"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { buildEnvironment } from "./helpers"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { EnvironmentRow, EnvironmentSources, ProfileConfigurationKind } from "./helpers"; + 2 │ - + 3 2 │ export { buildEnvironment } from "./helpers"; + 4 3 │ + + +modules/companies/src/web/work-profiles/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { WorkProfilesPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { profileKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { WorkProfilesPage } from "./list"; + 2 │ - + 3 2 │ export { profileKeys } from "./shared/api"; + 4 3 │ + + +modules/companies/src/web/workspace/catalogs/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { GlobalCatalogContent } from "./ui"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogOverview } from "./ui/catalog-overview"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { GlobalCatalogContent } from "./ui"; + 2 │ - + 3 2 │ export { CatalogOverview } from "./ui/catalog-overview"; + 4 3 │ + + +modules/companies/src/web/workspace/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { companySectionHref, parseWorkspaceUrl, workspaceHref } from "./helpers"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { WorkspaceLocation } from "./types"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { companySectionHref, parseWorkspaceUrl, workspaceHref } from "./helpers"; + 2 │ - + 3 2 │ export type { WorkspaceLocation } from "./types"; + 4 │ - + 5 3 │ export { WorkspaceNavigationButton } from "./ui"; + 6 4 │ + + +modules/core/src/common/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { GetHealthRequestDTO } from "./dto/request/get-health.request.dto"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { GetHealthRequestSchema } from "./dto/request/get-health.request.dto"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { GetHealthRequestDTO } from "./dto/request/get-health.request.dto"; + 2 │ - + 3 2 │ export { GetHealthRequestSchema } from "./dto/request/get-health.request.dto"; + 4 │ - + 5 3 │ export type { GetHealthResponseDTO } from "./dto/response/get-health.response.dto"; + 6 │ - + 7 4 │ export { GetHealthResponseSchema } from "./dto/response/get-health.response.dto"; + 8 │ - + 9 5 │ export type { HttpErrorResponseDTO } from "./dto/response/http-error.response.dto"; + 10 │ - + 11 6 │ export { HttpErrorResponseSchema } from "./dto/response/http-error.response.dto"; + 12 7 │ + + +modules/core/src/web/health/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { getHealth } from "./check/api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { coreQueryKeys } from "./shared/queries"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { getHealth } from "./check/api"; + 2 │ - + 3 2 │ export { coreQueryKeys } from "./shared/queries"; + 4 3 │ + + +modules/identity/src/common/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export * from "./dto/request/identity.request.dto"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export * from "./dto/response/identity.response.dto"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export * from "./dto/request/identity.request.dto"; + 2 │ - + 3 2 │ export * from "./dto/response/identity.response.dto"; + 4 │ - + 5 3 │ export * from "./dto/shared/user.dto"; + 6 4 │ + + +modules/identity/src/web/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { identityEnglish, identitySpanish } from "./shared"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { identityApi } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { identityEnglish, identitySpanish } from "./shared"; + 2 │ - + 3 2 │ export { identityApi } from "./shared/api"; + 4 │ - + 5 3 │ export { identityKeys } from "./shared/queries"; + 6 │ - + 7 4 │ export { IdentityWorkspace } from "./workspace"; + 8 5 │ + + +modules/identity/src/web/passwords/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AccountPasswordDialog } from "./change"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { PasswordForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AccountPasswordDialog } from "./change"; + 2 │ - + 3 2 │ export { PasswordForm } from "./shared"; + 4 3 │ + + +modules/identity/src/web/sessions/shared/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { authenticate } from "./authenticate.api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { getSession } from "./get-session.api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { authenticate } from "./authenticate.api"; + 2 │ - + 3 2 │ export { getSession } from "./get-session.api"; + 4 │ - + 5 3 │ export { logout } from "./logout.api"; + 6 4 │ + + +modules/identity/src/web/shared/api/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { identityApi } from "./identity-api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { IdentityApiError } from "./identity-api-error"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { identityApi } from "./identity-api"; + 2 │ - + 3 2 │ export { IdentityApiError } from "./identity-api-error"; + 4 3 │ + + +modules/identity/src/web/shared/i18n.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { default as identityEnglish } from "../../common/locales/en.json"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { default as identitySpanish } from "../../common/locales/es.json"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { default as identityEnglish } from "../../common/locales/en.json"; + 2 │ - + 3 2 │ export { default as identitySpanish } from "../../common/locales/es.json"; + 4 3 │ + + +modules/identity/src/web/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { identityApi } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { identityEnglish, identitySpanish } from "./i18n"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { identityApi } from "./api"; + 2 │ - + 3 2 │ export { identityEnglish, identitySpanish } from "./i18n"; + 4 │ - + 5 3 │ export { identityKeys } from "./queries"; + 6 │ - + 7 4 │ export { FormFeedback } from "./ui"; + 8 5 │ + + +modules/identity/src/web/workspace/view/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { useAuthenticatedWorkspaceController } from "./use-authenticated-workspace-controller"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useIdentityWorkspaceController } from "./use-identity-workspace-controller"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { useAuthenticatedWorkspaceController } from "./use-authenticated-workspace-controller"; + 2 │ - + 3 2 │ export { useIdentityWorkspaceController } from "./use-identity-workspace-controller"; + 4 3 │ + + +modules/identity/src/web/workspace/view/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { AuthenticatedWorkspaceProps } from "./authenticated-workspace-props"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { IdentityWorkspaceProps } from "./identity-workspace-props"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { AuthenticatedWorkspaceProps } from "./authenticated-workspace-props"; + 2 │ - + 3 2 │ export type { IdentityWorkspaceProps } from "./identity-workspace-props"; + 4 3 │ + + +modules/resources/src/web/catalog-templates/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { CatalogTemplateCreateDialog } from "./create"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogTemplateForm } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { CatalogTemplateCreateDialog } from "./create"; + 2 │ - + 3 2 │ export { CatalogTemplateForm } from "./shared"; + 4 3 │ + + +modules/resources/src/web/catalog/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ResourceCatalogPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { catalogApi, catalogKeys } from "./shared/api"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ResourceCatalogPage } from "./list"; + 2 │ - + 3 2 │ export { catalogApi, catalogKeys } from "./shared/api"; + 4 3 │ + + +modules/resources/src/web/catalog/shared/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { CatalogSaved } from "./use-catalog-save"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useCatalogSave } from "./use-catalog-save"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { CatalogSaved } from "./use-catalog-save"; + 2 │ - + 3 2 │ export { useCatalogSave } from "./use-catalog-save"; + 4 3 │ + + +modules/resources/src/web/catalog/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { catalogApi, catalogKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { CatalogEditor } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { catalogApi, catalogKeys } from "./api"; + 2 │ - + 3 2 │ export type { CatalogEditor } from "./ui"; + 4 │ - + 5 3 │ export { CatalogEditorDialog, CatalogError, CatalogHelp, CatalogName } from "./ui"; + 6 4 │ + + +modules/resources/src/web/catalog/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { CatalogEditor } from "./catalog-editor-dialog"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { CatalogEditorDialog } from "./catalog-editor-dialog"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { CatalogEditor } from "./catalog-editor-dialog"; + 2 │ - + 3 2 │ export { CatalogEditorDialog } from "./catalog-editor-dialog"; + 4 │ - + 5 3 │ export { CatalogError } from "./catalog-error"; + 6 │ - + 7 4 │ export { CatalogHelp } from "./catalog-help"; + 8 │ - + 9 5 │ export { CatalogName } from "./catalog-name"; + 10 6 │ + + +modules/resources/src/web/resources/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ResourcesPage } from "./list"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ResourceEditor } from "./shared"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ResourcesPage } from "./list"; + 2 │ - + 3 2 │ export { ResourceEditor } from "./shared"; + 4 │ - + 5 3 │ export { inventoryApi, inventoryKeys } from "./shared/api"; + 6 4 │ + + +modules/resources/src/web/resources/shared/controllers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { useResourceEditorController } from "./use-resource-editor-controller"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { useResourceFormController } from "./use-resource-form-controller"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { useResourceEditorController } from "./use-resource-editor-controller"; + 2 │ - + 3 2 │ export { useResourceFormController } from "./use-resource-form-controller"; + 4 3 │ + + +modules/resources/src/web/resources/shared/helpers/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { requireMailboxAddress, resourceDefaults, resourceFields } from "./resource-form-values"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { mailboxIntegration } from "./resource-integration-values"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { requireMailboxAddress, resourceDefaults, resourceFields } from "./resource-form-values"; + 2 │ - + 3 2 │ export { mailboxIntegration } from "./resource-integration-values"; + 4 3 │ + + +modules/resources/src/web/resources/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { inventoryApi, inventoryKeys } from "./api"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ResourceEditor, ResourceEditorDialog } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { inventoryApi, inventoryKeys } from "./api"; + 2 │ - + 3 2 │ export { ResourceEditor, ResourceEditorDialog } from "./ui"; + 4 3 │ + + +modules/resources/src/web/resources/shared/types/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export type { ResourceEditorProps } from "./resource-editor-props"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export type { ResourceFormProps } from "./resource-form-props"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export type { ResourceEditorProps } from "./resource-editor-props"; + 2 │ - + 3 2 │ export type { ResourceFormProps } from "./resource-form-props"; + 4 3 │ + + +modules/resources/src/web/resources/shared/ui/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { ResourceEditor } from "./resource-editor"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { ResourceEditorDialog } from "./resource-editor-dialog"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { ResourceEditor } from "./resource-editor"; + 2 │ - + 3 2 │ export { ResourceEditorDialog } from "./resource-editor-dialog"; + 4 │ - + 5 3 │ export { ResourceForm } from "./resource-form"; + 6 4 │ + + +modules/resources/src/web/shared/i18n.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { default as resourcesEnglish } from "../../common/locales/en.json"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { default as resourcesSpanish } from "../../common/locales/es.json"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { default as resourcesEnglish } from "../../common/locales/en.json"; + 2 │ - + 3 2 │ export { default as resourcesSpanish } from "../../common/locales/es.json"; + 4 3 │ + + +modules/resources/src/web/shared/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { resourcesEnglish, resourcesSpanish } from "./i18n"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { InventoryFeedback } from "./ui"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { resourcesEnglish, resourcesSpanish } from "./i18n"; + 2 │ - + 3 2 │ export { InventoryFeedback } from "./ui"; + 4 3 │ + + +packages/rdx-ddd/src/index.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ export { AggregateRoot } from "./aggregate-root"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ export { DomainEntity } from "./domain-entity"; + + i Safe fix: Organize Imports (Biome) + + 1 1 │ export { AggregateRoot } from "./aggregate-root"; + 2 │ - + 3 2 │ export { DomainEntity } from "./domain-entity"; + 4 │ - + 5 3 │ export { EmailAddress } from "./value-objects/email-address.vo"; + 6 │ - + 7 4 │ export { Name } from "./value-objects/name.vo"; + 8 │ - + 9 5 │ export { UniqueID } from "./value-objects/unique-id.vo"; + 10 │ - + 11 6 │ export { ValueObject } from "./value-objects/value-object.vo"; + 12 7 │ + + +Checked 2223 files in 863ms. No fixes applied. +Found 173 errors. +Found 1 warning. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/root-check.log b/.artifacts/resources-global-operating-systems-preflight/technical/root-check.log new file mode 100644 index 00000000..b79f0869 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/root-check.log @@ -0,0 +1,1233 @@ +$ biome check . +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 │ - const·defaultStates·=·[ + 6 │ - ··"default", + 7 │ - ··"hover", + 8 │ - ··"focus", + 9 │ - ··"active", + 10 │ - ··"disabled", + 11 │ - ]·as·const + 5 │ + const·defaultStates·=·["default",·"hover",·"focus",·"active",·"disabled"]·as·const; + 12 6 │ + 13 7 │ export function StateMatrix({ + ····· │ + 17 11 │ className, + 18 12 │ }: { + 19 │ - ··rows:·readonly·Row[] + 20 │ - ··states?:·readonly·string[] + 21 │ - ··render:·(row:·Row,·state:·string)·=>·React.ReactNode + 22 │ - ··className?:·string + 13 │ + ··rows:·readonly·Row[]; + 14 │ + ··states?:·readonly·string[]; + 15 │ + ··render:·(row:·Row,·state:·string)·=>·React.ReactNode; + 16 │ + ··className?:·string; + 23 17 │ }) { + 24 18 │ return ( + ····· │ + 56 50 │ + 57 51 │
+ 58 │ - ··) + 52 │ + ··); + 59 53 │ } + 60 54 │ + ····· │ + 62 56 │ export function previewState(state: string) { + 63 57 │ if (state === "disabled") { + 64 │ - ····return·{·disabled:·true·} + 58 │ + ····return·{·disabled:·true·}; + 65 59 │ } + 66 60 │ + 67 61 │ if (["hover", "focus", "active"].includes(state)) { + 68 │ - ····return·{·"data-preview":·state·} + 62 │ + ····return·{·"data-preview":·state·}; + 69 63 │ } + 70 64 │ + 71 │ - ··return·{} + 65 │ + ··return·{}; + 72 66 │ } + 73 67 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json format ━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 14 14 │ "tolerancePolicy": "A 1e-12 numeric tolerance permits floating-point representation only. Current known failures remain visible in relevance-baseline.json; the gate prevents regressions and does not claim final quality targets are met.", + 15 15 │ "metrics": { + 16 │ - ····"routingAccuracy":·{"floor":·0.875,·"tolerance":·1e-12}, + 17 │ - ····"precisionAt1":·{"floor":·0.7631578947368421,·"tolerance":·1e-12}, + 18 │ - ····"precisionAt3":·{"floor":·0.3815789473684211,·"tolerance":·1e-12}, + 19 │ - ····"mrrAt3":·{"floor":·0.8355263157894737,·"tolerance":·1e-12}, + 20 │ - ····"ndcgAt3":·{"floor":·0.8366350964266653,·"tolerance":·1e-12}, + 21 │ - ····"negativeAbstention":·{"floor":·0.9117647058823529,·"tolerance":·1e-12}, + 22 │ - ····"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 23 │ - ····"designSystemCoherence":·{"floor":·0.71875,·"tolerance":·1e-12} + 16 │ + ····"routingAccuracy":·{·"floor":·0.875,·"tolerance":·1e-12·}, + 17 │ + ····"precisionAt1":·{·"floor":·0.7631578947368421,·"tolerance":·1e-12·}, + 18 │ + ····"precisionAt3":·{·"floor":·0.3815789473684211,·"tolerance":·1e-12·}, + 19 │ + ····"mrrAt3":·{·"floor":·0.8355263157894737,·"tolerance":·1e-12·}, + 20 │ + ····"ndcgAt3":·{·"floor":·0.8366350964266653,·"tolerance":·1e-12·}, + 21 │ + ····"negativeAbstention":·{·"floor":·0.9117647058823529,·"tolerance":·1e-12·}, + 22 │ + ····"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 23 │ + ····"designSystemCoherence":·{·"floor":·0.71875,·"tolerance":·1e-12·} + 24 24 │ }, + 25 25 │ "sampleMinimums": { + ······· │ + 46 46 │ "calibration": { + 47 47 │ "metrics": { + 48 │ - ········"routingAccuracy":·{"floor":·0.8,·"tolerance":·1e-12}, + 49 │ - ········"precisionAt1":·{"floor":·0.8974358974358975,·"tolerance":·1e-12}, + 50 │ - ········"precisionAt3":·{"floor":·0.40170940170940167,·"tolerance":·1e-12}, + 51 │ - ········"mrrAt3":·{"floor":·0.9230769230769231,·"tolerance":·1e-12}, + 52 │ - ········"ndcgAt3":·{"floor":·0.9103072109232644,·"tolerance":·1e-12}, + 53 │ - ········"negativeAbstention":·{"floor":·0.9411764705882353,·"tolerance":·1e-12}, + 54 │ - ········"typoRecoveryAt3":·{"floor":·0.0,·"tolerance":·1e-12}, + 55 │ - ········"designSystemCoherence":·{"floor":·0.6875,·"tolerance":·1e-12} + 48 │ + ········"routingAccuracy":·{·"floor":·0.8,·"tolerance":·1e-12·}, + 49 │ + ········"precisionAt1":·{·"floor":·0.8974358974358975,·"tolerance":·1e-12·}, + 50 │ + ········"precisionAt3":·{·"floor":·0.40170940170940167,·"tolerance":·1e-12·}, + 51 │ + ········"mrrAt3":·{·"floor":·0.9230769230769231,·"tolerance":·1e-12·}, + 52 │ + ········"ndcgAt3":·{·"floor":·0.9103072109232644,·"tolerance":·1e-12·}, + 53 │ + ········"negativeAbstention":·{·"floor":·0.9411764705882353,·"tolerance":·1e-12·}, + 54 │ + ········"typoRecoveryAt3":·{·"floor":·0.0,·"tolerance":·1e-12·}, + 55 │ + ········"designSystemCoherence":·{·"floor":·0.6875,·"tolerance":·1e-12·} + 56 56 │ }, + 57 │ - ······"sampleMinimums":·{"cases":·46,·"retrieval":·39,·"routing":·5,·"negativeChecks":·102,·"typo":·0,·"designSystem":·4} + 57 │ + ······"sampleMinimums":·{ + 58 │ + ········"cases":·46, + 59 │ + ········"retrieval":·39, + 60 │ + ········"routing":·5, + 61 │ + ········"negativeChecks":·102, + 62 │ + ········"typo":·0, + 63 │ + ········"designSystem":·4 + 64 │ + ······} + 58 65 │ }, + 59 66 │ "held_out": { + 60 67 │ "metrics": { + 61 │ - ········"routingAccuracy":·{"floor":·1.0,·"tolerance":·1e-12}, + 62 │ - ········"precisionAt1":·{"floor":·0.6216216216216216,·"tolerance":·1e-12}, + 63 │ - ········"precisionAt3":·{"floor":·0.36036036036036034,·"tolerance":·1e-12}, + 64 │ - ········"mrrAt3":·{"floor":·0.7432432432432432,·"tolerance":·1e-12}, + 65 │ - ········"ndcgAt3":·{"floor":·0.7589807054707906,·"tolerance":·1e-12}, + 66 │ - ········"negativeAbstention":·{"floor":·0.8823529411764706,·"tolerance":·1e-12}, + 67 │ - ········"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 68 │ - ········"designSystemCoherence":·{"floor":·0.75,·"tolerance":·1e-12} + 68 │ + ········"routingAccuracy":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 69 │ + ········"precisionAt1":·{·"floor":·0.6216216216216216,·"tolerance":·1e-12·}, + 70 │ + ········"precisionAt3":·{·"floor":·0.36036036036036034,·"tolerance":·1e-12·}, + 71 │ + ········"mrrAt3":·{·"floor":·0.7432432432432432,·"tolerance":·1e-12·}, + 72 │ + ········"ndcgAt3":·{·"floor":·0.7589807054707906,·"tolerance":·1e-12·}, + 73 │ + ········"negativeAbstention":·{·"floor":·0.8823529411764706,·"tolerance":·1e-12·}, + 74 │ + ········"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 75 │ + ········"designSystemCoherence":·{·"floor":·0.75,·"tolerance":·1e-12·} + 69 76 │ }, + 70 │ - ······"sampleMinimums":·{"cases":·44,·"retrieval":·37,·"routing":·3,·"negativeChecks":·102,·"typo":·5,·"designSystem":·4} + 77 │ + ······"sampleMinimums":·{ + 78 │ + ········"cases":·44, + 79 │ + ········"retrieval":·37, + 80 │ + ········"routing":·3, + 81 │ + ········"negativeChecks":·102, + 82 │ + ········"typo":·5, + 83 │ + ········"designSystem":·4 + 84 │ + ······} + 71 85 │ } + 72 86 │ }, + 73 87 │ "lockedCases": { + 74 │ - ····"domain-style-glassmorphism":·{"withinTop":·1,·"minimumGrade":·2}, + 75 │ - ····"domain-color-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 76 │ - ····"domain-chart-time-series":·{"withinTop":·1,·"minimumGrade":·2}, + 77 │ - ····"domain-landing-pricing":·{"withinTop":·1,·"minimumGrade":·2}, + 78 │ - ····"domain-product-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 79 │ - ····"domain-ux-keyboard-focus":·{"withinTop":·1,·"minimumGrade":·2}, + 80 │ - ····"domain-typography-luxury":·{"withinTop":·1,·"minimumGrade":·2}, + 81 │ - ····"domain-icons-search":·{"withinTop":·1,·"minimumGrade":·2}, + 82 │ - ····"domain-gsap-scroll-reveal":·{"withinTop":·1,·"minimumGrade":·2}, + 83 │ - ····"domain-react-parallel-promises":·{"withinTop":·1,·"minimumGrade":·2}, + 84 │ - ····"domain-web-icon-label":·{"withinTop":·1,·"minimumGrade":·2}, + 85 │ - ····"domain-google-fonts-inter":·{"withinTop":·1,·"minimumGrade":·2}, + 86 │ - ····"stack-swiftui-navigation":·{"withinTop":·1,·"minimumGrade":·2}, + 87 │ - ····"stack-threejs-orbitcontrols":·{"withinTop":·1,·"minimumGrade":·2}, + 88 │ - ····"stack-uwp-migration":·{"withinTop":·1,·"minimumGrade":·2}, + 89 │ - ····"stack-winui-dispatcherqueue":·{"withinTop":·1,·"minimumGrade":·2} + 88 │ + ····"domain-style-glassmorphism":·{·"withinTop":·1,·"minimumGrade":·2·}, + 89 │ + ····"domain-color-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 90 │ + ····"domain-chart-time-series":·{·"withinTop":·1,·"minimumGrade":·2·}, + 91 │ + ····"domain-landing-pricing":·{·"withinTop":·1,·"minimumGrade":·2·}, + 92 │ + ····"domain-product-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 93 │ + ····"domain-ux-keyboard-focus":·{·"withinTop":·1,·"minimumGrade":·2·}, + 94 │ + ····"domain-typography-luxury":·{·"withinTop":·1,·"minimumGrade":·2·}, + 95 │ + ····"domain-icons-search":·{·"withinTop":·1,·"minimumGrade":·2·}, + 96 │ + ····"domain-gsap-scroll-reveal":·{·"withinTop":·1,·"minimumGrade":·2·}, + 97 │ + ····"domain-react-parallel-promises":·{·"withinTop":·1,·"minimumGrade":·2·}, + 98 │ + ····"domain-web-icon-label":·{·"withinTop":·1,·"minimumGrade":·2·}, + 99 │ + ····"domain-google-fonts-inter":·{·"withinTop":·1,·"minimumGrade":·2·}, + 100 │ + ····"stack-swiftui-navigation":·{·"withinTop":·1,·"minimumGrade":·2·}, + 101 │ + ····"stack-threejs-orbitcontrols":·{·"withinTop":·1,·"minimumGrade":·2·}, + 102 │ + ····"stack-uwp-migration":·{·"withinTop":·1,·"minimumGrade":·2·}, + 103 │ + ····"stack-winui-dispatcherqueue":·{·"withinTop":·1,·"minimumGrade":·2·} + 90 104 │ }, + 91 105 │ "proposedFinalTargets": { + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-closure/legacy-evolution.json format ━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems-unblock/mariadb/legacy-evolution.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 99 99 │ "customizationPreserved": true, + 100 100 │ "availabilityPreserved": true + 101 │ - } + 101 │ + } + 102 │ + + + +.artifacts/resources-global-operating-systems/global-operating-systems-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 10 10 │ "contract": 3, + 11 11 │ "gatesEnabledOnlyInDisposableTest": true + 12 │ - } + 12 │ + } + 13 │ + + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 159. +Checked 2221 files in 1109ms. No fixes applied. +Found 173 errors. +Found 1 warning. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/root-lint.log b/.artifacts/resources-global-operating-systems-preflight/technical/root-lint.log new file mode 100644 index 00000000..611563c1 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/root-lint.log @@ -0,0 +1,471 @@ +$ biome lint . +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 17 │ if ( + > 18 │ !metadata.width || + │ ^^^^^^^^^^^^^^^^^^ + > 19 │ !metadata.height || + │ ^^^^^^^^^^^^^^^^ + 20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + i Safe fix: Reduce the complexity of the logical expression. + + 16 16 │ + 17 17 │ if ( + 18 │ - ········!metadata.width·|| + 19 │ - ········!metadata.height·|| + 18 │ + ········!(metadata.width·&&metadata.height·)·|| + 20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 15 │ }).metadata(); + 16 │ + > 17 │ if ( + │ ^^^^ + > 18 │ !metadata.width || + ... + > 23 │ ) + > 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 25 │ const output = await sharp(input) + 26 │ .rotate() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + 22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "") + 23 │ - ······) + 24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 23 │ + ······)·{ + 24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 25 │ + ······} + 25 26 │ const output = await sharp(input) + 26 27 │ .rotate() + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ .toBuffer(); + 33 │ + > 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 36 │ + 37 │ return Result.ok({ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 32 32 │ .toBuffer(); + 33 33 │ + 34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes) + 35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{ + 35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 36 │ + ······} + 36 37 │ + 37 38 │ return Result.ok({ + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 1. +Checked 2221 files in 857ms. No fixes applied. +Found 15 errors. +Found 1 warning. +Found 5 infos. +lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-preflight/technical/root-types.log b/.artifacts/resources-global-operating-systems-preflight/technical/root-types.log new file mode 100644 index 00000000..e6f2a32a --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/technical/root-types.log @@ -0,0 +1,29 @@ +$ turbo run typecheck +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running typecheck in 13 packages + • Remote caching disabled + +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 4.871s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) +[ELIFECYCLE] Command failed with exit code 2. diff --git a/.artifacts/resources-global-operating-systems-preflight/traceability.json b/.artifacts/resources-global-operating-systems-preflight/traceability.json new file mode 100644 index 00000000..a3c5a7ec --- /dev/null +++ b/.artifacts/resources-global-operating-systems-preflight/traceability.json @@ -0,0 +1,11 @@ +{ + "head": "d2bf856c973419277f0b30f6437242cd82f7d720", + "branch": "main", + "sourceMatches": 1884, + "overlayMatches": 40, + "differences": [], + "restoration": "git archive HEAD de los archivos requeridos + overlay; todas las huellas verificadas en directorio temporal eliminado", + "lockfileSha256": "bcd468ab1f127fffeb7f37ef3bdb5f2c5e85d40c192f3bc4a7cae5b2209b7c17", + "overlaySha256": "96c1e316c77ac603d910385534d72703d4e008b3447998cda6e85d81248377ed", + "note": "No equivale a instalar dependencias ni construir desde checkout limpio." +} diff --git a/.artifacts/resources-global-operating-systems-unblock/manifest.json b/.artifacts/resources-global-operating-systems-unblock/manifest.json new file mode 100644 index 00000000..b3ad5c63 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/manifest.json @@ -0,0 +1,256 @@ +{ + "recordedAt": "2026-10-25T21:28:07.054832+00:00", + "head": "d2bf856c973419277f0b30f6437242cd82f7d720", + "node": "24.20.0", + "pnpm": "11.25.0", + "verdict": "GO técnico para el snapshot; no autorización ni activación de producción", + "productionActivated": false, + "sourceSnapshotUnchanged": true, + "commands": [ + { + "command": "cd modules/companies; TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test --test-isolation=none src/web/software-installations/shared/software.test.tsx", + "exitCode": 0, + "log": "technical/fixed-test.log" + }, + { + "command": "Copia temporal del test de HEAD contra el consumidor actual, con configuración TSX del paquete", + "exitCode": 1, + "log": "technical/before-fixture.log" + }, + { + "command": "Seis ficheros dirigidos de Companies, node --import tsx --test --test-isolation=none", + "exitCode": 0, + "log": "technical/directed.log" + }, + { + "command": "pnpm --filter @metis/resources test (loopback permitido)", + "exitCode": 0, + "log": "technical/resources.log" + }, + { + "command": "Suite Companies con --test-isolation=none: solo dos fallos preexistentes", + "exitCode": 1, + "log": "technical/companies.log" + }, + { + "command": "pnpm --filter @metis/assets test", + "exitCode": 0, + "log": "technical/assets.log" + }, + { + "command": "pnpm --filter @metis/web test", + "exitCode": 0, + "log": "technical/web.log" + }, + { + "command": "pnpm exec biome check sobre 26 archivos modificados", + "exitCode": 0, + "log": "technical/biome.log" + }, + { + "command": "pnpm exec eslint sobre los mismos archivos", + "exitCode": 0, + "log": "technical/eslint.log" + }, + { + "command": "pnpm build", + "exitCode": 0, + "log": "technical/build.log" + }, + { + "command": "pnpm typecheck", + "exitCode": 2, + "log": "technical/root-types.log" + }, + { + "command": "pnpm lint", + "exitCode": 1, + "log": "technical/root-lint.log" + }, + { + "command": "pnpm check", + "exitCode": 1, + "log": "technical/root-check.log" + }, + { + "command": "python3 scripts/resource-scope-test.py --operating-systems-closure --regressions", + "exitCode": 0, + "log": "technical/sql.log" + }, + { + "command": "python3 scripts/visual-audit.py --global-operating-systems --check", + "exitCode": 0, + "log": "technical/ui-final.log" + }, + { + "command": "bash scripts/setup-playwright-wsl.sh", + "exitCode": 0, + "log": "technical/playwright-setup.log" + }, + { + "command": "pnpm --filter @metis/companies typecheck", + "exitCode": 0, + "log": "technical/companies-types.log" + }, + { + "command": "pnpm --filter @metis/assets typecheck", + "exitCode": 0, + "log": "technical/assets-types.log" + }, + { + "command": "pnpm --filter @metis/resources typecheck", + "exitCode": 0, + "log": "technical/resources-types.log" + }, + { + "command": "pnpm --filter @metis/web typecheck", + "exitCode": 0, + "log": "technical/web-types.log" + } + ], + "files": { + "mariadb/closure-results.json": "cc1bf4d8d95066d2d26a3a311c2faa47ca1708e740a81b3f5add4885334d1ab0", + "mariadb/commands.json": "3be89d419e1522940dca425372f8819cdccb2b105b51f52b47c3853f2b679797", + "mariadb/integration.log": "e00585674ea26535c4036c702a4b07df1c7b47a054f8d5092b1629acadf16a2e", + "mariadb/legacy-evolution.json": "2d7573f1fec50a999cdb6ddcc457ebc217ed3389b4682703205ef3fc1fbb8d5e", + "mariadb/migration-cli.log": "00b8b6468d8f1f12accbd3bda2ffb89b19026a4b79c54e2368e2f3e4b29e1511", + "mariadb/regressions.log": "db28a510adbde7d77f581afcc04d2a2af6656acc9c15462cdb1b5698d8a78c04", + "mariadb/schema.json": "00a5a6e6bdd2fc21d4a59b8113785ee9c7d193a840667690343c5c5fcd647296", + "playwright/global-os-asset-current-os.png": "04d91e8ac9d5c63e88825316722810c2c591590542217f7fa4634c2264b97f2d", + "playwright/global-os-consumer-asset-dark-1280.png": "1e4f5a1ed065b971bfed04b56118698aeaecbc6e4165be9b9a51d768afbd9ed4", + "playwright/global-os-consumer-asset-dark-1600.png": "738d52c39d9a2e6979092b41ab52f2546545d79ec3c77f646de3afe697ef129a", + "playwright/global-os-consumer-asset-dark-320.png": "879c852042ff4725af15329d91c1370ab7169049e7090ae4fb26efd0bc45ce0c", + "playwright/global-os-consumer-asset-dark-390.png": "bebadc5e239f012f9d3130e411084834046b635e17e0f18d5e4992328b09d634", + "playwright/global-os-consumer-asset-dark-768.png": "9cc39d75301c3a90e5adb3271e057867f91840299dc374f8452c9fa4fbb8f806", + "playwright/global-os-consumer-asset-light-1280.png": "7fe7c80e2577c2ef8677bb3af5aedf093f8c00baac699fea54262d018700cb35", + "playwright/global-os-consumer-asset-light-1600.png": "b159572983b68cbae5716ce0f696542557bab1820b4c8dbe986a17ff76e3f71f", + "playwright/global-os-consumer-asset-light-320.png": "2ed77dc6230c94ca58903113608c54b30ffd027a3d1c23b35eb0f554a00a9358", + "playwright/global-os-consumer-asset-light-390.png": "7bd0ef9010677b3c2fcc1ed120fc2c826378cf5a5fbea2a7fed521d335f0509a", + "playwright/global-os-consumer-asset-light-768.png": "0c304c20b205290eb292464778fed476be9d219433c5d3a323de3642a1381d99", + "playwright/global-os-consumer-editor-dark-1280.png": "d7250e7951b4c93c1157223016f66aae9d17bdf48e79bfbf6d0cb4907e40289c", + "playwright/global-os-consumer-editor-dark-1600.png": "31c7738bab9f2b4de1b27b681e2cc6b20e4be309e0cbf6b30e7100f8dedaa7eb", + "playwright/global-os-consumer-editor-dark-320.png": "47ead965242ba39836270bafc8e7d8e93eeb3f408cdfddccac8218ebab59c68b", + "playwright/global-os-consumer-editor-dark-390.png": "8df556a016285b8f94efb2f37187653567479699badaab0041283329fe14f691", + "playwright/global-os-consumer-editor-dark-768.png": "e8a9ddabb99b989b7cf505ef620f742157f48abd2a69fe527abea76bfe2790e6", + "playwright/global-os-consumer-editor-light-1280.png": "8f263e156a83a3a2c4156e6e503a2bd35c7b63ecda10d3ebfdf3d7cd3035956e", + "playwright/global-os-consumer-editor-light-1600.png": "cbb8f70af2f6905029cce28b171b9361bf0bbd6de9aa55f2d1dc1e939b4be84e", + "playwright/global-os-consumer-editor-light-320.png": "a38101e979acf6b4e068da330bf353aac3968825bfb0844c7fc4b3562b526384", + "playwright/global-os-consumer-editor-light-390.png": "64d35e47d100f959d16e8a70d36bc5cd30ae6d2ed976d99440434715fbe2592d", + "playwright/global-os-consumer-editor-light-768.png": "195dabae571e2c51463d7300186935c0616495430cb514702f8ff68e428d05a6", + "playwright/global-os-consumer-english-editor.png": "63114ee4f460e4d10264844759b83bf4e64fdccb7cad9f3be3ee86d9f17fdf4e", + "playwright/global-os-consumer-history-dark-1280.png": "2e247fcce762deac5251d0fcaf1b066c0f9e80a027cfaab2a763b0e3f21d8999", + "playwright/global-os-consumer-history-dark-1600.png": "1f2b8d364c45e19b527175a329309dabf0ef3a771a715ce043ca877183b32ca5", + "playwright/global-os-consumer-history-dark-320.png": "f128274530f6f6a74576891bdc0095f4f366171a5c55d50999b317f7b4844a49", + "playwright/global-os-consumer-history-dark-390.png": "edebe2f879eca035d9d89742e98944ed9a9258f0291d324a72e65b5cd3794ae3", + "playwright/global-os-consumer-history-dark-768.png": "b066d5d7729839fc7fe6b32d56c3d51d882a36cee745fc10cd92f6dfcee6a06e", + "playwright/global-os-consumer-history-light-1280.png": "8a6e7801dd9ea68897d8c86a3234a65a1b00a00d7dc9b1adc5f321646069e127", + "playwright/global-os-consumer-history-light-1600.png": "2500a71eac4002e3c70a3a604aa62c31f6636a7feae54e19854aaecbee2d9f79", + "playwright/global-os-consumer-history-light-320.png": "913e736a486b61b2e70bb5926a7e1696034d90c867d12190254a55d78c387f4d", + "playwright/global-os-consumer-history-light-390.png": "0da5b9088ccae931e93ad7d7b4d7c5b9444128413800a9ffb55c1f34a33a8d23", + "playwright/global-os-consumer-history-light-768.png": "89a451ce8cc5cdf33a93a74eb35a21fd76c9db300958ae356869ea1273a22a84", + "playwright/global-os-consumer-menu-dark-1280.png": "58f79b61f176004473206cd32afcb07a1a84ffd2b1acfe79637242cdeb64d5f4", + "playwright/global-os-consumer-menu-dark-1600.png": "ce3fc1aa225a35b79679b031175d17ae55cbe178ffea0dbcead00605f85cde5e", + "playwright/global-os-consumer-menu-dark-320.png": "cc80c1fbc0500dde23ec2922c22abf729a42f26546e1d78acfe920437f26f7c2", + "playwright/global-os-consumer-menu-dark-390.png": "f1bb3e0217c25b98d122413b9184b0ab33dac89a00f547f8d853fbbbec046c4a", + "playwright/global-os-consumer-menu-dark-768.png": "f5dec8d1b02aba58ffed0a8da3e33a24a247654724932da7f504f40c30ba9615", + "playwright/global-os-consumer-menu-light-1280.png": "8416692a0ba13b42305f63be9ba4b741461e9a80204ad73372246c92320859ec", + "playwright/global-os-consumer-menu-light-1600.png": "2d7be3a26da1aae3b6860d44fb0c1736cfce2590fae5770615445171bfad09fc", + "playwright/global-os-consumer-menu-light-320.png": "c63aa18fcde5542d75d579f3566b069ac9a0b1e5bcfdf10dc9b198b707936a9a", + "playwright/global-os-consumer-menu-light-390.png": "a7251e892c57027e0850ae4c762447d6134735eb2083246d0404db7955991d77", + "playwright/global-os-consumer-menu-light-768.png": "211e3067f05d6bbd1b87bc376c042134f94edd04ea6ee90d719bae759e999c72", + "playwright/global-os-consumer-version-updated.png": "a549e26ed8eb7764f15d9f40ea9835d8ec642a6261af7dd4e4562f4f6fc297a5", + "playwright/global-os-create-review.png": "8fa14c0b22d9929687b8c0dec5fb2d92d2b781a363ca38334a701e16be71b790", + "playwright/global-os-created-detail.png": "d6f649bfd68ae62137afffa75fe1cf62ebf192f64affe3901911dc82faa618ef", + "playwright/global-os-empty.png": "945bc2240b0a97430856bc635f0db4c84217d4264c57e9fddbb1cfff9e5d803e", + "playwright/global-os-english-form.png": "227d5f682315b8c256589fb9e5bdc93d3dfca4cb5508ed78b6e43c4d886289c6", + "playwright/global-os-identity-error.png": "d4d5b049b34acc9a13a3eced5e2572798852e3fbae266c59771bd82945fd33b1", + "playwright/global-os-installation-history-global-link.png": "f92554b2058618e06afe57bc2c2088d40dfb9e25230d26c3c0a8872867f75df5", + "playwright/global-os-list-dark-1024.png": "5246d3cde105d8922dd4e0bb8b677f7f24704864dffd6c0fa07bbcc0bd68dc62", + "playwright/global-os-list-dark-1280.png": "011defd978d3525a93664f795c9d3ececd0809eea62038d4e47e7435a372e1c9", + "playwright/global-os-list-dark-1600.png": "f67e198bb5af48beaaebd43f63c6daa9210befd69506b2be496e1a1d455fbb98", + "playwright/global-os-list-dark-320.png": "fc6c5f6f89914a863200082079e2af563ab9537fdf87201082d5ef4e5d14c101", + "playwright/global-os-list-dark-390.png": "3090626d0526ccaaa4b8b80ea0868dfe2451ee8644d498922e6ca11562609f38", + "playwright/global-os-list-dark-768.png": "02ce9944bdd51afd79aa8c98f82d4e718fd3ea488e41fc2d376cb219d2d5e0fa", + "playwright/global-os-list-error.png": "d9cf753aa3b8860682a384ce49cef16447df2e2e9201fe34e596e9d90a3e0c8f", + "playwright/global-os-list-light-1024.png": "73a89add6661dd90c360dce567cb23d088e132c4fce396648f272435903d60c6", + "playwright/global-os-list-light-1280.png": "7727d4a0339da4b2122a35f1fff5ac4814e16fcafc4485ddbca1a98a76ac2f40", + "playwright/global-os-list-light-1600.png": "36f901f92df98cb4c9b612c29c3a773a7144c439d79e7975294507f3d81ee153", + "playwright/global-os-list-light-320.png": "891cdc1875a12ed6275a2b4e69cdcd2a2a4aaf92a5922df9b17aa2ae6895412a", + "playwright/global-os-list-light-390.png": "42a0a2f27df0f17b2d117ef5709344bc0cba2cfc40fc6a04652673bac0d175d3", + "playwright/global-os-list-light-768.png": "54cee20c8cac78ef32e20ada33552829e3ea738b7f7791900ca013afeb97bf49", + "playwright/global-os-list-loading.png": "36a4f535a36e594587470d50b6c06a9eccf2bb937f49ff0ea329cd98f519f55a", + "playwright/global-os-mixed-picker.png": "1c4ac0eca0418d66934e44f21e383ddbdac26905857dbb666eb2bbe02cfdbd55", + "playwright/global-os-mobile-form.png": "a031175d5e23ecf7dffa3972a13f4b0341df633d481889d52a9ca3c0f6e1f130", + "playwright/global-os-no-results.png": "958c0e1eff95f0eabc5b283a8c4dd033ccbb408d0fe94dc79897073bf39615b7", + "playwright/global-os-ordinary-detail.png": "8c0aaed14ee140cc92d60163f93c7a8eb470209db3c016b44ebf8e8312008583", + "playwright/global-os-workplace-map-global-os.png": "2955406b5c9788d9ffa731e2a027dc859b57548d7f595e934777f81da5573479", + "playwright/global-os-workstation-current-os.png": "800d98c9df1bf717f301c04c205968610bc9518afdc1fb6bc5f8bfb1ccde9099", + "playwright/report.json": "a38ee16a8ee485ea6d4c86ee24807b445761c5b45d12206a1b59a5c8dd8ab021", + "source-snapshot.json": "920f525ca209709cc2b7c7dae72543b7a6caca88ff1dc2a762dc124f8da2a764", + "technical/assets-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/assets.log": "c6a6f00c76b95873c8388f30b2d774d4602b17f2e650ed65c1e00cdc14ffe2ea", + "technical/before-fixture.log": "207e8874c0c570fe933f4df33b8a35e4d43737b2f94a4a6ada8dcc335c3028e2", + "technical/biome.log": "c496253de0796337b5b000a511393b2df95d357ad33d2b58463adf2d10ca021b", + "technical/build.log": "798d761887f0c907bf788c8745ff339ed9b8e88656c9dcf452281c993d3cf1d1", + "technical/companies-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/companies.log": "8ff55b6400189e0839ac6417851d69ef776c2eadd63c2ba27b39acec5da06c9a", + "technical/directed.log": "01e490e8a96edafdfc53603896176fcddd5cd8e47070e368e937ec50df83c424", + "technical/eslint.log": "5ed6a4f57ac7a5a545c51b8a7f7dea5962a279a44e0db5e3c6ceebc995cd8626", + "technical/fixed-test.log": "0c2834971f9a0dbc81ade36935c995e69def9404c2fdc952da38048d27e99ab9", + "technical/original-test.log": "5955606b21e43d7371d2eebdd65bc19e09ebbc4b86de4540f85bc71365ebd7f0", + "technical/playwright-setup.log": "2565becd5de35225e582e0a8d5711f943995eacdd2fbd40636b7e6343d0feec6", + "technical/resources-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/resources.log": "327609f1b30f5190063114e0338ef5ff4b38f52af5e67017a0bf98474c872334", + "technical/root-check.log": "98cf029b9c142508e72ab64334583ff8780488444037f5bb234e7114f12ec485", + "technical/root-lint.log": "fc961500ea6e3b89bf9a64cef55767946063bc0700416eea087e6a0a4ef84434", + "technical/root-types.log": "d8628051881132d802ffc8e49e87b4d820ec119b81ee76dab800efcb4055742a", + "technical/sql.log": "f9cf09b1fcc7504596980256bb2212f868cc280ccaa32ecd3c992d5a2dfed978", + "technical/ui-extended.log": "4852f17572f9a7c5354013e3ec092d129de29ca4a6003046ae29ec1151d67c08", + "technical/ui-final.log": "98f59a442168847cc8eef69e29009424898b3151c1a3e2dc4f99cac0f5cc1466", + "technical/ui.log": "1723367d86da3f3b15166f05aed42ded21c0aadfca5f9a734ffbfb70172c19d6", + "technical/web-types.log": "29c5ee0f6b0b20dbb259b99d01276198c3d28190090706394608d4deda6d2c0b", + "technical/web.log": "8f18dca363602c6102560fd668aa44f2ac3d0ec67c27de4417ec5490528a210e" + }, + "workingSources": { + "apps/server/src/global-operating-systems-closure.integration.test.ts": "771ccf735641dbd257569b4366f0ac70eb81d63cc729db2d5f4ed5e30358669a", + "apps/server/src/global-operating-systems-legacy.fixture.ts": "45f10913233b328f157bd1d0d098f04dc8176aa263f368f9d3a80de98f537a19", + "docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md": "6f13d080cacda801606b8edf0d4f6ee70715c0f1b56e4b792567b550f89582f8", + "docs/auditorias/workplace-node-actions/01-inventario-entidades-acciones.md": "b2b2334e9180860f135e36c7a7f2f05c2c8f48d9d393173d98c419ed3bdf1eb3", + "docs/auditorias/workplace-node-actions/02-matriz-acciones.md": "5bfaf864392130853424363d1c8f8544ddfa06bc8ee7c8bef7fc67a1c1a6edbb", + "docs/auditorias/workplace-node-actions/03-contrato-ui.md": "69a9f98bcc4ca4bd41ea1f35c02446e2ec25ceeffcdcee38ba92c0d34c66973f", + "docs/auditorias/workplace-node-actions/04-trazabilidad.md": "89bfc1cad84bb7fb38d9504d1cf5524b648ba5f44a390c5c14f0fefd65ce83a9", + "modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx": "757b575359249cb6ee3191449430e8087fbaeb118f46e3456486e530e691b65e", + "modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts": "71fef135cf5b273d38ae23372d4d81e06ea0586f11d75148af195d9eeef5732d", + "modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts": "76ec297ee00a6b45f3b6a6f18df6d4497d86e7acaf05a763884451f9174f468f", + "modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts": "c3d0c108c20010daef39f2088ffc6416a753bb4e00c6e784c906cf7c53b397ff", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx": "295a95f4b80fc7a2c1254dce75df6dd4b62e198853db351681031870723d370e", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts": "360617bc875971ddee5928405627866a0f37b2f8672555a8448a943d55961cc7", + "modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx": "76548ae75d060bf0556eb37cec8aa6984b8e976a93457311bb34e901a06c1b61", + "modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx": "6dcd900dad363eb354811c94b1b2851cfb11bc7014e05bb12912c8899535b0fd", + "modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx": "5212e4b69914b655219740feeae1ddbf2bb557a75211cf087c09142886df65a6", + "modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx": "6009e0a8ec172ba288919af684bf8eb0467d644b3783a036e5f76008d919998b", + "modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx": "d1653c1ea696c8ee371de56b11d96b087d0600f678098731cfd4d6a1cecf73a8", + "modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx": "13bc0cf7919a384f9cd463a2aca40542fc56932cbef7dcbd3fd3dc4050b6d11f", + "docs/architecture/implementacion-catalogo-global-sistemas-operativos.md": "2dd63c3a5ce7112fd19fd03ffb1a7d0e466ed24e249f9657d9becc4bcb934ad5", + "docs/componentes-de-interfaz.md": "31c6daca423c90658fa297429ec8911849ade9145c5126d60352242ea55028ef", + "docs/mapa-visual-del-puesto.md": "c4bd910596642520bdaa967996ba4bf44a87864db28ababb506a2d5fb1cef570", + "modules/assets/src/common/locales/en.json": "ea4529d517d5e64202a572eb812c68ac8f2a88816630793d6bc7bf1e9b0c27f6", + "modules/assets/src/common/locales/es.json": "0a36b2693a5cc69d7f5ae12d8b814b34d3d59e921678522f87b98317185b5aac", + "modules/assets/src/web/index.ts": "30a8c78828a2bad2707b129bb8c96c059915680a3e075618250fd0a2dcaf2332", + "modules/companies/package.json": "4ec1fae0055094934c42e4e72c21488094e7da124e2bcc73729eebaba88dc146", + "modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx": "2fed9ead7fceaddc4c4a17252ac43b3623b6a79af4ade3c9ca3c45aa1cc991df", + "modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx": "bf345d28c796deeec3ed9486325b8e36142ab5667d881c2460dd236585dce048", + "modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx": "81105f06893f3016b808611e571dc0cbb0d61dc590ab7ec972150acb029b2ccf", + "modules/companies/src/web/software-installations/shared/software.test.tsx": "54b06b4342de3a6376c340f34b8fa630a693cbd72704f905d0f3511b4b7dbfb5", + "modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx": "d89d4a6f793b4d615538e8d0bf3db7a23a63bafaaf52b7514414f8184d381620", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts": "bf25c7e88b8c8bf318c398986dbc08f3ec2f77eb739588555e711fe1e123cb4c", + "modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx": "e0eda9c6a7c39d731a172d776bafdbb47f33cdcdfc86e9eba01271742b146194", + "modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx": "28bb03f91e3a86ac5fe18920862b9653956b9e1199997a2846bf7e6942ff29ba", + "modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx": "aee738391e04ff12444fc0f02fdc0307cd9d34b8357a96628368951c911de1c6", + "modules/companies/src/web/workstations/detail/ui/workstation-software-dialog.tsx": "9ec3268fd9b7ffbc4e092a131e37f6a7a3f6948a437f97b77e677c3b97daeea9", + "package.json": "c86cf84959bf2c01e6cda2e7c85c03db48b535ab0b2f47432fb28e173ad5b30a", + "scripts/global-operating-systems-ui-audit.py": "f1cf327720de201823b2a7997c8640ba36b343d308ee59d1a1615678cbceab99", + "scripts/resource-scope-test.py": "b4c06cf30ee7b8d6695119e32d2c3460af9b92a915aa366ea5ad22bdde36f0c7", + "scripts/workplace-visual-map.test.py": "d745a0f12dd8a39c958d6ab0947f805c794c511ac944a447c43cf590253a0ad1" + } +} diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json b/.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json new file mode 100644 index 00000000..eb7be142 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/closure-results.json @@ -0,0 +1,225 @@ +{ + "results": [ + { + "id": "B3", + "result": "pass: two persisted evolutions; legacy root and two revisions unchanged" + }, + { + "id": "DB-SO-01", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-02", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-03", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-04", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-05", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-06", + "result": "pass", + "http": [ + 201 + ] + }, + { + "id": "DB-SO-07", + "result": "pass", + "http": [ + 201, + 200 + ] + }, + { + "id": "DB-SO-08", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-09", + "result": "pass", + "http": [ + 404 + ] + }, + { + "id": "DB-SO-10", + "result": "pass", + "http": [ + 404 + ] + }, + { + "id": "DB-SO-11", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-12", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-13", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-14", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-15", + "result": "pass", + "http": [ + 409 + ] + }, + { + "id": "DB-SO-16", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-17", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "DB-SO-18", + "result": "pass", + "http": [ + 200, + 200 + ] + }, + { + "id": "DB-SO-19", + "result": "pass: stock accepted; copied/support/SMB/access/certificate/license rejected", + "http": [ + 201, + 409 + ] + }, + { + "id": "DB-SO-20", + "result": "pass", + "http": [ + 200 + ] + }, + { + "id": "C1", + "result": "pass: observed InnoDB catalog wait; one equivalent persisted", + "http": [ + 201, + 409 + ] + }, + { + "id": "C2", + "result": "pass: deactivation first, waiting installation rejected", + "http": [ + 200, + 409 + ] + }, + { + "id": "C3", + "result": "pass: commercial identity fixed; exactly one optimistic admin update", + "http": [ + 409, + 201, + 200, + 409 + ] + }, + { + "id": "C4a", + "result": "pass: rollback of root/values/revisions, same creation UUID retry succeeds", + "http": [ + 500, + 201 + ] + }, + { + "id": "C4b", + "result": "pass: no partial installation or orphan revision; Resource unchanged", + "http": [ + 500 + ] + }, + { + "id": "D", + "result": "pass: exact capabilities v2, v3 OS, incompatible reads and unauthorized writes rejected", + "http": [ + 200, + 409, + 400, + 403 + ] + }, + { + "id": "F", + "result": "pass: all six gates closed; read/history/removal preserved", + "http": [ + 200, + 409 + ] + } + ], + "databaseCases": 20, + "companies": 15, + "principal": { + "people": 50, + "assets": 50, + "workstations": 50, + "profiles": 50, + "resourcesAtLeast": 53 + }, + "orphanRevisions": 0, + "semanticSqlUnique": false, + "productionActivated": false +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/commands.json b/.artifacts/resources-global-operating-systems-unblock/mariadb/commands.json new file mode 100644 index 00000000..e6ea2b03 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/commands.json @@ -0,0 +1,4 @@ +{ + "integration": 0, + "regressions": 0 +} diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/integration.log b/.artifacts/resources-global-operating-systems-unblock/mariadb/integration.log new file mode 100644 index 00000000..2d1a2959 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/integration.log @@ -0,0 +1,38 @@ +▶ Cierre SO: matriz DB-SO, evolución, integridad y concurrencia real + ✔ B3 — evolución SQL doble conserva campos, valores, personalizaciones y revisiones (0.701606ms) + ✔ DB-SO-01 crear SO global (42.871762ms) + ✔ DB-SO-02 crear aplicación global mantiene su tipo (42.436359ms) + ✔ DB-SO-03 licencia global rechazada sin raíz persistida (21.908985ms) + ✔ DB-SO-04 instalación válida desde A (121.539228ms) + ✔ DB-SO-05 mismo producto desde B, instalación y licencia independientes (162.366074ms) + ✔ DB-SO-06 dos activos de A usan el mismo SO global (315.915072ms) + ✔ DB-SO-07 particulares y globales equivalentes conservan UUID e instalaciones (137.643465ms) + ✔ DB-SO-08 licencia de A válida y particular (117.865997ms) + ✔ DB-SO-09 licencia de A no puede vincularse desde B (157.376231ms) + ✔ DB-SO-10 SO excluido de ApplicationConfiguration (126.53987ms) + ✔ DB-SO-11 desactivar conserva instalaciones usadas (50.935631ms) + ✔ DB-SO-12 inactivo bloquea nueva instalación (108.274915ms) + ✔ DB-SO-13 historial y resolver conservan SO inactivo (29.59105ms) + ✔ DB-SO-14 versión instalada genera revisión sin cambiar producto (365.216789ms) + ✔ DB-SO-15 destino de instalación inmutable (223.936693ms) + ✔ DB-SO-16 retirada de instalación de producto inactivo (570.283255ms) + ✔ DB-SO-17 replay de creación no duplica ni reactiva (33.73864ms) + ✔ DB-SO-18 activar/desactivar preserva UUID, historial y referencias (177.183762ms) + ✔ DB-SO-19 solo stock: copia y otros tipos no adquieren globalidad (315.072142ms) + ✔ DB-SO-20 particular anterior incompleto sigue siendo editable y local (145.260533ms) + ✔ C1 — equivalentes concurrentes esperan el lock de catálogo y solo uno persiste (230.848842ms) + ✔ C2 — desactivación confirma primero y asociación revalida después de esperar (468.860536ms) + ✔ C3 — identidad, instalación, metadatos y desactivación concurrentes (288.411751ms) + ✔ C4a — fallo tras escribir raíz global revierte raíz, características y revisiones (76.707246ms) + ✔ C4b — fallo en revisión de instalación revierte instalación completa (146.788844ms) + ✔ D — contratos v2/v3, propósito, capabilities y autorización (248.643069ms) + ✔ F — cerrar gates conserva lectura, historial y retirada legítima (1726.083172ms) +✔ Cierre SO: matriz DB-SO, evolución, integridad y concurrencia real (47759.450137ms) +ℹ tests 29 +ℹ suites 0 +ℹ pass 29 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 49098.971929 diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/legacy-evolution.json b/.artifacts/resources-global-operating-systems-unblock/mariadb/legacy-evolution.json new file mode 100644 index 00000000..f8bab7b9 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/legacy-evolution.json @@ -0,0 +1,101 @@ +{ + "resourceId": "01a174ef-6735-710e-91a9-8bca64fef0dc", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "originalBindings": [ + { + "id": "01a174ee-f269-72eb-9e8e-de87e373415b", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f266-714f-ab98-ef87f8982b5f", + "required": 0, + "position": 0, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-ee01d44d287d", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-91610b309fd2", + "required": 0, + "position": 1, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-f37d9579e79c", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-6fbf417e65f2", + "required": 0, + "position": 2, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-66ee-7763-8065-815a5c68b2cf", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-66ae-77ec-8d19-1ef89cb4745c", + "required": 0, + "position": 3, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + } + ], + "evolvedBindings": [ + { + "id": "01a174ee-f269-72eb-9e8e-de87e373415b", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f266-714f-ab98-ef87f8982b5f", + "required": 0, + "position": 0, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-ee01d44d287d", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-91610b309fd2", + "required": 0, + "position": 1, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ee-f269-72eb-9e8e-f37d9579e79c", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ee-f267-762b-ae6a-6fbf417e65f2", + "required": 0, + "position": 2, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-66ee-7763-8065-815a5c68b2cf", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-66ae-77ec-8d19-1ef89cb4745c", + "required": 0, + "position": 3, + "sectionId": "01a174ef-66e7-77fa-b64c-2667d71f05a9" + }, + { + "id": "01a174ef-6805-739a-8977-95d3221286d2", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-b10560610789", + "required": 0, + "position": 4, + "sectionId": null + }, + { + "id": "01a174ef-6805-739a-8977-99e426769780", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-b4deee355760", + "required": 0, + "position": 5, + "sectionId": null + }, + { + "id": "01a174ef-6805-739a-8977-9d7c602e1672", + "templateId": "01a174ee-f269-72eb-9e8e-fb11658300fc", + "fieldId": "01a174ef-6804-747b-b42c-bb5123934ce6", + "required": 0, + "position": 6, + "sectionId": null + } + ], + "originalResourcesUnchanged": true, + "revisionsPreserved": 2, + "evolutionRuns": 2, + "customizationPreserved": true, + "availabilityPreserved": true +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/migration-cli.log b/.artifacts/resources-global-operating-systems-unblock/mariadb/migration-cli.log new file mode 100644 index 00000000..b25d5f44 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/migration-cli.log @@ -0,0 +1 @@ +Resource scope: scoped; pasos aplicados: ninguno. diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/regressions.log b/.artifacts/resources-global-operating-systems-unblock/mariadb/regressions.log new file mode 100644 index 00000000..c869cd34 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/regressions.log @@ -0,0 +1,70 @@ +✔ HTTP real: estado, contrato, errores y trazas sin datos sensibles (64.878761ms) +✔ HTTP real: entrada JSON inválida y errores internos conservan un contrato seguro (27.548096ms) +✔ MariaDB y HTTP: pertenencias, controladores, transiciones, aislamiento e integridad (2213.707827ms) +✔ el puerto usa un valor local por defecto y acepta los límites válidos (0.364602ms) +✔ el arranque rechaza puertos inválidos sin revelar el valor recibido (0.816006ms) +✔ MariaDB: dominios, contexto atómico, concurrencia, integridad y ciclo de vida (792.630633ms) +✔ HTTP infraestructura: sesión, pertenencia, validación, identidad e idempotencia (30.063319ms) +✔ diagnóstico: causas de Sequelize, ciclos y valores lanzados que no son Error (0.571405ms) +✔ diagnóstico: mensajes multilínea, propiedades y cadenas largas no se vuelcan (0.524903ms) +✔ contextos de servidor: sesión vigente, ámbito existente, copias y revocación (0.955607ms) +▶ MariaDB: publicaciones SMB, historial, proveedor y HTTP autenticado + ✔ registro y cardinalidad; publicador desconocido y distintos tipos sin AD (356.392903ms) + ✔ traslado atómico, replay estable y finalización identificada sin tocar accesos (111.981018ms) + ✔ concurrencia: altas iguales, publicadores distintos, traslados y finalización (148.241983ms) + ✔ restricciones SQL y protección de borrado también después de finalizar (119.178071ms) + ✔ fallo al insertar sucesor revierte el cierre anterior (118.745467ms) + ✔ proveedor: SQL keyset, orientación, historial y cursores ligados a consulta (28.355508ms) + ✔ resolución SMB por lotes: no confunde dominios, recursos ordinarios o compañías (165.029105ms) + ✔ estados y desactivación concurrente conservan publicaciones documentadas (514.990061ms) + ✔ UI 3.5: selector remoto filtra en SQL y pagina sin hidratar el inventario (1436.471586ms) + ✔ HTTP: sesión, CSRF, validación, idempotencia y consultas paginadas (123.198399ms) +✔ MariaDB: publicaciones SMB, historial, proveedor y HTTP autenticado (4756.605138ms) +▶ MariaDB: SMB, unicidad vigente, historial, diagnóstico e integridad + ✔ alta, presentación, lector público y aislamiento (38.900183ms) + ✔ conflicto funcional, rollback, alias e inactivos (142.198937ms) + ✔ edición atómica, UUID estable, idempotencia y revisión de UNC (95.592397ms) + ✔ desactivación libera dirección y reactivación conflictiva conserva estado (163.774395ms) + ✔ concurrencia: una sola alta y ninguna raíz huérfana (82.283001ms) + ✔ restricciones SQL: compañía, 1:1, protocolo y unicidad (47.664648ms) + ✔ legado: ausente, inválido, válido, duplicado y candidato access; diagnóstico sin escritura (439.420705ms) + ✔ integración access existente y cambio de UNC conservan contexto y referencias (175.55068ms) + ✔ FolderMapping conserva UNC, letra e historial y detecta dirección desactualizada (409.768588ms) + ✔ HTTP autenticado: contrato SMB y diagnóstico acotado sin aceptar parámetros (65.420477ms) + ✔ borrado sin referencias limpia proyección; una FK externa impide borrado (261.540007ms) +✔ MariaDB: SMB, unicidad vigente, historial, diagnóstico e integridad (2639.933755ms) +▶ MariaDB: nuevas carpetas SMB integradas con accesos sin adoptar históricos + ✔ alta automática: misma identidad, ninguna dependencia de dominio o publicador (12.60939ms) + ✔ renombrar el tipo de acceso conserva su UUID para las siguientes altas (55.298894ms) + ✔ el cliente no puede imponer buzón, otro tipo ni contexto; se revierte el tipo preparado (74.970834ms) + ✔ renombrado, UNC y estados sincronizan valores y UUID de todas las revisiones (133.734351ms) + ✔ necesidad y concesiones AD y NAS local: cobertura documental y borrado protegido (1191.363179ms) + ✔ fallo después de escribir acceso revierte Resource, SMB, AccessItem y tipo (38.852577ms) + ✔ carpeta anterior sin integración: lectura, edición y estado no la adoptan (158.133526ms) +✔ MariaDB: nuevas carpetas SMB integradas con accesos sin adoptar históricos (2343.789395ms) +✔ MariaDB: las plantillas propagan estructura en todas las compañías de forma atómica e idempotente (1585.94158ms) +▶ MariaDB: proveedor real, lotes, seguridad, SQL paginado y transiciones de pertenencias + ✔ registro estático y consultas vacías desde ambos extremos (6.754748ms) + ✔ directa, inversa, either, roles y UUID canónicos sin duplicados (40.533589ms) + ✔ keyset SQL: páginas de uno, fin y cursores ligados a consulta (26.276387ms) + ✔ lotes reales sin N+1, orden, repetidos, estados y referencias inaccesibles (19.499839ms) + ✔ traslado y fin conservan identidad, estado y rol histórico (38.136271ms) + ✔ ámbito, contextos falsificados, sesión revocada y acceso inverso (18.632432ms) + ✔ EXPLAIN real e índices disponibles para ambos extremos (6.075043ms) +✔ MariaDB: proveedor real, lotes, seguridad, SQL paginado y transiciones de pertenencias (1486.420567ms) +ℹ {"column":"assetId","includeEnded":false,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"assetId","includeEnded":false,"forcedIndexPlan":[{"key":"directory_membership_asset","Extra":"Using index condition; Using where"}]} +ℹ {"column":"assetId","includeEnded":true,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"assetId","includeEnded":true,"forcedIndexPlan":[{"key":"directory_membership_asset","Extra":"Using index condition"}]} +ℹ {"column":"domainResourceId","includeEnded":false,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_fk,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":false,"forcedIndexPlan":[{"key":"directory_membership_domain_page","Extra":"Using index condition; Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":true,"plan":[{"id":1,"select_type":"SIMPLE","table":"asset_directory_memberships","type":"range","possible_keys":"PRIMARY,directory_membership_identity_scope,directory_membership_asset,directory_membership_domain,directory_membership_domain_fk,directory_membership_domain_page","key":"PRIMARY","key_len":"144","ref":null,"rows":"4","Extra":"Using where"}]} +ℹ {"column":"domainResourceId","includeEnded":true,"forcedIndexPlan":[{"key":"directory_membership_domain_page","Extra":"Using index condition"}]} +ℹ tests 50 +ℹ suites 0 +ℹ pass 50 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 17252.621293 diff --git a/.artifacts/resources-global-operating-systems-unblock/mariadb/schema.json b/.artifacts/resources-global-operating-systems-unblock/mariadb/schema.json new file mode 100644 index 00000000..e29c31a2 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/mariadb/schema.json @@ -0,0 +1,17020 @@ +{ + "version": [ + { + "version": "11.8.9-MariaDB-ubu2404", + "sqlMode": "IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION", + "checkConstraints": 1, + "foreignKeys": 1, + "collationName": "utf8mb4_uca1400_ai_ci" + } + ], + "columns": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_person_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_account_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_coverage_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(14)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_unicode_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(4)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_current_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_environments", + "COLUMN_NAME": "itemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'environment'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_directory_systems", + "COLUMN_NAME": "itemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'system'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_environment_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_environment_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_grant_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_revision_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_group_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(14)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "''", + "COLLATION_NAME": "utf8mb4_unicode_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(4)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "login", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "mediumtext", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "identifier", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "grantId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "accountPersonId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_historical_values", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_items", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "workspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "environmentKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'environment'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "systemKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'system'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "identityScope", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'local-device'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "startedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "startedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "groupId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_membership_values", + "COLUMN_NAME": "configuration", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_need_permissions", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "COLUMN_NAME": "permissionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_need_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_permission_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_person_references", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_person_references", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_references", + "COLUMN_NAME": "targetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_type_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "reference", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_resource_values", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "sequence", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_system_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_revision_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "access_template_values", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "access_workspaces", + "COLUMN_NAME": "scopeKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "delivery", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "delivery", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "brandId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "registeredOn", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "brandDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "assets", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "definitionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_availability", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "builtin", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_brands", + "COLUMN_NAME": "logoSvg", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_catalogs", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_catalogs", + "COLUMN_NAME": "catalogKey", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "stockKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "icon", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "inverseName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "symmetric", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_definitions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "domainResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "predecessorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "COLUMN_NAME": "activeAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "membershipId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "infrastructureId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "COLUMN_NAME": "role", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "interfaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "address", + "COLUMN_TYPE": "varchar(45)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "mac", + "COLUMN_TYPE": "varchar(17)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "predecessorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "startedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "startedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "COLUMN_NAME": "activeResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "sourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "targetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "typeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "inverseName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "symmetric", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "createdBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "endedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "endedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_relationships", + "COLUMN_NAME": "activeKey", + "COLUMN_TYPE": "varchar(150)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "brandId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "registeredOn", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "brandDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "destination", + "COLUMN_TYPE": "varchar(300)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "preferred", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support", + "COLUMN_NAME": "preferredKey", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "connectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "destination", + "COLUMN_TYPE": "varchar(300)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "preferred", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_support_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "asset_template_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "brand_catalog_lock", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "brand_catalog_lock", + "COLUMN_NAME": "logosImported", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "location", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "location", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "companies", + "COLUMN_NAME": "logoVersion", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "email", + "COLUMN_TYPE": "varchar(254)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "phone", + "COLUMN_TYPE": "varchar(50)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "photoVersion", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_contacts", + "COLUMN_NAME": "isContact", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "1", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "nameKey", + "COLUMN_TYPE": "varchar(200)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_departments", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "data", + "COLUMN_TYPE": "mediumblob", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_logos", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "1", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "address", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "company_sites", + "COLUMN_NAME": "phone", + "COLUMN_TYPE": "varchar(50)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "assignmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "sequence", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "isPrimary", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "department_assignment_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "path", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "driveLetter", + "COLUMN_TYPE": "varchar(2)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(110)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "driveKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mappings", + "COLUMN_NAME": "accessAccountKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'account'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "mappingId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "needId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "path", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "driveLetter", + "COLUMN_TYPE": "varchar(2)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountWorkspaceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "accessAccountKind", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'account'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "sid", + "COLUMN_TYPE": "varchar(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "expires", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "userId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "authVersion", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "csrfToken", + "COLUMN_TYPE": "varchar(128)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieExpires", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "originalMaxAge", + "COLUMN_TYPE": "bigint(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePath", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieDomain", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieSecure", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieHttpOnly", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookieSameSite", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePartitioned", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "cookiePriority", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "http_sessions", + "COLUMN_NAME": "updatedAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "identity_state", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "identity_state", + "COLUMN_NAME": "initialAdminId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "departmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "startDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "endDate", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_department_assignments", + "COLUMN_NAME": "isPrimary", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "data", + "COLUMN_TYPE": "mediumblob", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "createdAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_photos", + "COLUMN_NAME": "updatedAt", + "COLUMN_TYPE": "datetime", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_processes", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "taskId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "referenceLabel", + "COLUMN_TYPE": "varchar(500)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "taskId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "status", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "referenceLabel", + "COLUMN_TYPE": "varchar(500)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "person_process_tasks", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "printerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "connection", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "isDefault", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configurations", + "COLUMN_NAME": "defaultKey", + "COLUMN_TYPE": "varchar(40)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "printerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "connection", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "isDefault", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_catalog_lock", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "nameKey", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_templates", + "COLUMN_NAME": "builtinKey", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_instructions", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "process_template_revisions", + "COLUMN_NAME": "itemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "ownerId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "COLUMN_NAME": "title", + "COLUMN_TYPE": "varchar(160)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "sourceAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetKind", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "targetResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "method", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connections", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(64)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "connectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "sourceKind", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "sourceAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetKind", + "COLUMN_TYPE": "varchar(16)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "targetResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "method", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "requiresVpn", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "integrationKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "addressFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "contextFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "mailboxKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "referenceFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resources", + "COLUMN_NAME": "scope", + "COLUMN_TYPE": "varchar(7)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'company'", + "COLLATION_NAME": "ascii_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "definitionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_availability", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_catalogs", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_catalogs", + "COLUMN_NAME": "catalogKey", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "catalogId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "stockKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "icon", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "usage", + "COLUMN_TYPE": "varchar(15)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "0", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_definitions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "templateKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'template:windows_domain'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "normalizedDns", + "COLUMN_TYPE": "varchar(253)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "ascii_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "associatedBy", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_directory_domains", + "COLUMN_NAME": "associatedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "templateKey", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'template:shared_folder'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "protocol", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": "'smb'", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "normalizedAddress", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_network_shares", + "COLUMN_NAME": "activeAddress", + "COLUMN_TYPE": "varchar(255)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "integrationKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "addressFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "contextFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "mailboxKind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "referenceFieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "resourceTypeId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "systemId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "environmentId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "valueType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "textValue", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "numberValue", + "COLUMN_TYPE": "double", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "booleanValue", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "COLUMN_NAME": "dateValue", + "COLUMN_TYPE": "date", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "templateName", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "COLUMN_NAME": "sectionsDefined", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "fieldType", + "COLUMN_TYPE": "varchar(12)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "unit", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "COLUMN_NAME": "value", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_specification_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "fieldId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "required", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "resource_template_fields", + "COLUMN_NAME": "sectionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "templateId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "description", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "resource_template_sections", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "licenseResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installations", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "configurationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "resourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "licenseResourceId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "version", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "state", + "COLUMN_TYPE": "varchar(20)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "software_installation_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "startsOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorizations", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "authorizationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "startsOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "expiresOn", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "email", + "COLUMN_TYPE": "varchar(254)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "passwordHash", + "COLUMN_TYPE": "varchar(256)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "isInitialAdmin", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "users", + "COLUMN_NAME": "authVersion", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "computerAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstations", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_assets", + "COLUMN_NAME": "activeKey", + "COLUMN_TYPE": "varchar(80)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_members", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "workstationId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "siteId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "computerAssetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(30)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "revisionId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "kind", + "COLUMN_TYPE": "varchar(10)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "workstation_revision_members", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "companyId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profiles", + "COLUMN_NAME": "currentKey", + "COLUMN_TYPE": "varchar(110)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "id", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "profileId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "position", + "COLUMN_TYPE": "int(11)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "actorId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "recordedAt", + "COLUMN_TYPE": "varchar(24)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "name", + "COLUMN_TYPE": "varchar(100)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "personId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "assetId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "accountId", + "COLUMN_TYPE": "char(36)", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_bin" + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "active", + "COLUMN_TYPE": "tinyint(1)", + "IS_NULLABLE": "NO", + "COLUMN_DEFAULT": null, + "COLLATION_NAME": null + }, + { + "TABLE_NAME": "work_profile_revisions", + "COLUMN_NAME": "notes", + "COLUMN_TYPE": "text", + "IS_NULLABLE": "YES", + "COLUMN_DEFAULT": "NULL", + "COLLATION_NAME": "utf8mb4_uca1400_ai_ci" + } + ], + "indexes": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_account_person_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_account_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "accountPersonId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountPersonId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "grantId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "grantId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "membershipId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "accountPersonId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountPersonId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "grantId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "grantId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "membershipId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "access_coverage_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "itemKind" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "directory_environment_system", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_environments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "itemKind" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "directory_system_workspace", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_directory_systems", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_environment_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_environment_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_grant_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_group_revision_values", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_group_values", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "directory_item_scope_kind", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "kind" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_items", + "INDEX_NAME": "workspaceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_asset_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_end_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_environment_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "environmentKind" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_start_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "startedBy" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "systemWorkspaceId" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "local_identity_system_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "systemKind" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "groupId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "groupId" + }, + { + "TABLE_NAME": "access_membership_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "access_need_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "access_need_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "access_need_revision_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "access_need_revision_permissions_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "permissionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "permissionId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_revision_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_need_values", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_permission_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_permission_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_person_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "access_reference_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "access_reference_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_references", + "INDEX_NAME": "targetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_type_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "access_resource_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "access_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "access_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sequence" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "access_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_system_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_system_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_revision_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_revision_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_template_values", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "access_template_values", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "directory_workspace_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "directory_workspace_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "access_workspaces", + "INDEX_NAME": "scopeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "scopeKey" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "application_configurations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "application_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "application_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "assets_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "assets_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "brandId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "brandId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "assets", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "asset_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "asset_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "definitionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "asset_availability", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_brands", + "INDEX_NAME": "name", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "name" + }, + { + "TABLE_NAME": "asset_brands", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_catalogs", + "INDEX_NAME": "catalogKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogKey" + }, + { + "TABLE_NAME": "asset_catalogs", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_definitions", + "INDEX_NAME": "stockKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_active", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeAssetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "role" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 4, + "COLUMN_NAME": "endedAt" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 5, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "domainResourceId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_domain_page", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_identity_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_predecessor", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "directory_membership_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_order", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "membershipId" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "directory_membership_revision_order", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "infrastructure_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "infrastructure_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_infrastructure", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "infrastructure_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "infrastructureId" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "infrastructure_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "role" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "interface_address_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "interface_address_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "interfaceId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_active_resource", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeResourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_asset", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_end_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_previous_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_share_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_share_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_start_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "startedBy" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "INDEX_NAME": "publication_successor", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "predecessorId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "activeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeKey" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "createdBy", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "createdBy" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "endedBy", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "endedBy" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_source_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_source_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sourceId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_target_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "relationship_target_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "sourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "targetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetId" + }, + { + "TABLE_NAME": "asset_relationships", + "INDEX_NAME": "typeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "typeId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "asset_revision_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "asset_revision_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "brandId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "brandId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "asset_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "asset_value_revision_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "asset_value_revision_owner", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "asset_snapshot_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "asset_snapshot_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "asset_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "asset_support_resource_reference", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "preferredKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "preferredKey" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_resource_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "asset_support", + "INDEX_NAME": "support_resource_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "asset_support_revisions_resource_reference", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "connectionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "connectionId" + }, + { + "TABLE_NAME": "asset_support_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_binding_section_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_binding_section_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "asset_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "asset_template_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "asset_section_template_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "asset_section_template_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "asset_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "brand_catalog_lock", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "certificate_configurations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "certificate_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "certificate_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "companies", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "person_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "person_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_contacts", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_identity_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_name_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "department_company_name_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "nameKey" + }, + { + "TABLE_NAME": "company_departments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "company_logos", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_sites", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "company_sites", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "assignment_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assignmentId" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "assignment_revision_sequence_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sequence" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "driveKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "driveKey" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "accessAccountKind" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_mapping_company_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "folder_mapping_company_scope", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mappings", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_mapping_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "mappingId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_mapping_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accessAccountId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "accessAccountWorkspaceId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_item", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "accessAccountKind" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_mapping", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "mappingId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "folder_revision_account_mapping", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "needId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "needId" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "http_sessions_expires", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "expires" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sid" + }, + { + "TABLE_NAME": "http_sessions", + "INDEX_NAME": "userId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "userId" + }, + { + "TABLE_NAME": "identity_state", + "INDEX_NAME": "initialAdminId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "initialAdminId" + }, + { + "TABLE_NAME": "identity_state", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_department_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "departmentId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_department_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_person_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "assignment_person_company_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_department_assignments", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "person_photos_person_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "person_photos_person_fk", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_photos", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_processes", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "person_process_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "person_process_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "person_process_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "person_process_revision_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "person_process_revision_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "taskId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "person_process_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "person_process_tasks_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "person_process_tasks", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "taskId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "defaultKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "defaultKey" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "printerId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "printerId" + }, + { + "TABLE_NAME": "printer_configurations", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printerId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "printerId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printer_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "printer_configuration_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "INDEX_NAME": "profileId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "process_catalog_lock", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "builtinKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "builtinKey" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "nameKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "nameKey" + }, + { + "TABLE_NAME": "process_templates", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "process_template_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_instructions", + "INDEX_NAME": "process_template_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "process_template_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "itemId" + }, + { + "TABLE_NAME": "process_template_revisions", + "INDEX_NAME": "process_template_revisions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "process_template_revision_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "ownerId" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "INDEX_NAME": "process_template_revision_instructions_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "sourceAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceAssetId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "targetAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetAssetId" + }, + { + "TABLE_NAME": "remote_connections", + "INDEX_NAME": "targetResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetResourceId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "remote_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "connectionId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "remote_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "sourceAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "sourceAssetId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "targetAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetAssetId" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "INDEX_NAME": "targetResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "targetResourceId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "addressFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "addressFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "contextFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "contextFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "directory_resource_scope_template", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "referenceFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "referenceFieldId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resource_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "resource_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "resources", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "definitionId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "resource_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_availability", + "INDEX_NAME": "resource_company_availability_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "definitionId" + }, + { + "TABLE_NAME": "resource_catalogs", + "INDEX_NAME": "catalogKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogKey" + }, + { + "TABLE_NAME": "resource_catalogs", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "catalogId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "catalogId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "directory_template_key", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "directory_template_key", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_definitions", + "INDEX_NAME": "stockKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "stockKey" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_association_actor", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "associatedBy" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_context", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_context", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_dns_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_dns_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "normalizedDns" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_environment_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_resource_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "directory_template", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateKey" + }, + { + "TABLE_NAME": "resource_directory_domains", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_active_address", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_active_address", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "activeAddress" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_company", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_definition", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_definition", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateKey" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "network_share_resource", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_network_shares", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "addressFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "addressFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "contextFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "contextFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "environmentId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "environmentId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "referenceFieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "referenceFieldId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resourceTypeId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceTypeId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resource_revision_position_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "resource_revision_position_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "systemId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "systemId" + }, + { + "TABLE_NAME": "resource_revisions", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 3, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "resource_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "resource_specification_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "fieldId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_section", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "sectionId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_fields", + "INDEX_NAME": "resource_template_field_unique", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "fieldId" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "resource_template_sections", + "INDEX_NAME": "templateId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "templateId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "licenseResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "licenseResourceId" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "software_installations", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "licenseResourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "licenseResourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "resourceId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "resourceId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "software_installation_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "configurationId" + }, + { + "TABLE_NAME": "software_installation_revisions", + "INDEX_NAME": "software_installation_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "telework_authorizations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "telework_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "authorizationId" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "INDEX_NAME": "telework_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + }, + { + "TABLE_NAME": "users", + "INDEX_NAME": "email", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "email" + }, + { + "TABLE_NAME": "users", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "computerAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "computerAssetId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "workstations_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstations", + "INDEX_NAME": "workstations_company_identity", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "activeKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "activeKey" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_asset_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_owner_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "workstation_assets", + "INDEX_NAME": "workstation_owner_company", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "computerAssetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "computerAssetId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "siteId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "siteId" + }, + { + "TABLE_NAME": "workstation_revisions", + "INDEX_NAME": "workstationId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "workstationId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "revisionId" + }, + { + "TABLE_NAME": "workstation_revision_members", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "companyId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "companyId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "currentKey", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "currentKey" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "work_profiles", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "accountId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "accountId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "actorId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "actorId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "assetId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "assetId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "personId", + "NON_UNIQUE": 1, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "personId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "PRIMARY", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "id" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "profile_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 1, + "COLUMN_NAME": "profileId" + }, + { + "TABLE_NAME": "work_profile_revisions", + "INDEX_NAME": "profile_revision_position", + "NON_UNIQUE": 0, + "SEQ_IN_INDEX": 2, + "COLUMN_NAME": "position" + } + ], + "foreignKeys": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_revision_values", + "CONSTRAINT_NAME": "access_account_person_revision_values_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_person_values", + "CONSTRAINT_NAME": "access_account_person_values_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_revision_values", + "CONSTRAINT_NAME": "access_account_revision_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_account_values", + "CONSTRAINT_NAME": "access_account_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_2", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_3", + "COLUMN_NAME": "grantId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_4", + "COLUMN_NAME": "accountPersonId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "CONSTRAINT_NAME": "access_coverage_revision_values_ibfk_5", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_2", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_3", + "COLUMN_NAME": "grantId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_4", + "COLUMN_NAME": "accountPersonId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_coverage_values", + "CONSTRAINT_NAME": "access_coverage_values_ibfk_5", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_item", + "COLUMN_NAME": "itemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "systemId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_system", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_directory_systems", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_item", + "COLUMN_NAME": "itemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "CONSTRAINT_NAME": "access_environment_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "CONSTRAINT_NAME": "access_environment_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_environment_values", + "CONSTRAINT_NAME": "access_environment_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_environment_values", + "CONSTRAINT_NAME": "access_environment_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_3", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "CONSTRAINT_NAME": "access_grant_revision_values_ibfk_5", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_3", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_grant_values", + "CONSTRAINT_NAME": "access_grant_values_ibfk_5", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_revision_values", + "CONSTRAINT_NAME": "access_group_revision_values_ibfk_4", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_3", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_group_values", + "CONSTRAINT_NAME": "access_group_values_ibfk_4", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_items", + "CONSTRAINT_NAME": "access_items_ibfk_1", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_company", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_end_actor", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "workspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_environment_fk", + "COLUMN_NAME": "environmentKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_start_actor", + "COLUMN_NAME": "startedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_system_fk", + "COLUMN_NAME": "systemKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "CONSTRAINT_NAME": "access_membership_revision_values_ibfk_3", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_2", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_membership_values", + "CONSTRAINT_NAME": "access_membership_values_ibfk_3", + "COLUMN_NAME": "groupId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_permissions", + "CONSTRAINT_NAME": "access_need_permissions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_need_values", + "REFERENCED_COLUMN_NAME": "ownerId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_permissions", + "CONSTRAINT_NAME": "access_need_permissions_ibfk_2", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "CONSTRAINT_NAME": "access_need_revision_permissions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_need_revision_values", + "REFERENCED_COLUMN_NAME": "ownerId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "CONSTRAINT_NAME": "access_need_revision_permissions_ibfk_2", + "COLUMN_NAME": "permissionId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_revision_values", + "CONSTRAINT_NAME": "access_need_revision_values_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_need_values", + "CONSTRAINT_NAME": "access_need_values_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "CONSTRAINT_NAME": "access_permission_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "CONSTRAINT_NAME": "access_permission_revision_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_permission_values", + "CONSTRAINT_NAME": "access_permission_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_permission_values", + "CONSTRAINT_NAME": "access_permission_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_person_references", + "CONSTRAINT_NAME": "access_person_references_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_person_references", + "CONSTRAINT_NAME": "access_person_references_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_references", + "CONSTRAINT_NAME": "access_references_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_references", + "CONSTRAINT_NAME": "access_references_ibfk_2", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_3", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "CONSTRAINT_NAME": "access_resource_revision_values_ibfk_4", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "CONSTRAINT_NAME": "access_resource_type_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_type_values", + "CONSTRAINT_NAME": "access_resource_type_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_2", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_3", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_resource_values", + "CONSTRAINT_NAME": "access_resource_values_ibfk_4", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_revisions", + "CONSTRAINT_NAME": "access_revisions_ibfk_1", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_revisions", + "CONSTRAINT_NAME": "access_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_system_revision_values", + "CONSTRAINT_NAME": "access_system_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_system_values", + "CONSTRAINT_NAME": "access_system_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_revision_values", + "CONSTRAINT_NAME": "access_template_revision_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_revision_values", + "CONSTRAINT_NAME": "access_template_revision_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_template_values", + "CONSTRAINT_NAME": "access_template_values_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "access_template_values", + "CONSTRAINT_NAME": "access_template_values_ibfk_2", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "access_workspaces", + "CONSTRAINT_NAME": "access_workspaces_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configurations", + "CONSTRAINT_NAME": "application_configurations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "application_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "CONSTRAINT_NAME": "application_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_ibfk_4", + "COLUMN_NAME": "brandId", + "REFERENCED_TABLE_NAME": "asset_brands", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "asset_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_availability", + "CONSTRAINT_NAME": "asset_availability_ibfk_3", + "COLUMN_NAME": "definitionId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_snapshot", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definitions_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "asset_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definitions_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_domain_fk", + "COLUMN_NAME": "domainResourceId", + "REFERENCED_TABLE_NAME": "resource_directory_domains", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_domain_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resource_directory_domains", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "predecessorId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_previous_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_actor", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_owner", + "COLUMN_NAME": "membershipId", + "REFERENCED_TABLE_NAME": "asset_directory_memberships", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_field_choices", + "CONSTRAINT_NAME": "asset_field_choices_ibfk_1", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "asset_infrastructure_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "asset_infrastructure_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "infrastructure_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure", + "CONSTRAINT_NAME": "infrastructure_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "CONSTRAINT_NAME": "asset_infrastructure_revisions_ibfk_1", + "COLUMN_NAME": "infrastructureId", + "REFERENCED_TABLE_NAME": "asset_infrastructure", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "CONSTRAINT_NAME": "asset_infrastructure_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "CONSTRAINT_NAME": "asset_infrastructure_roles_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "asset_interface_address_snapshots_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "interface_address_owner", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_interface_snapshots", + "REFERENCED_COLUMN_NAME": "revisionId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "CONSTRAINT_NAME": "interface_address_owner", + "COLUMN_NAME": "interfaceId", + "REFERENCED_TABLE_NAME": "asset_interface_snapshots", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "CONSTRAINT_NAME": "asset_interface_snapshots_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_infrastructure_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_asset_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_asset_fk", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_end_actor", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "predecessorId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_fk", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "asset_network_share_publications", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_share_fk", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resource_network_shares", + "REFERENCED_COLUMN_NAME": "resourceId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_share_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resource_network_shares", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_start_actor", + "COLUMN_NAME": "startedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_2", + "COLUMN_NAME": "sourceId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_3", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_4", + "COLUMN_NAME": "typeId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_5", + "COLUMN_NAME": "createdBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "asset_relationships_ibfk_6", + "COLUMN_NAME": "endedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_source_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_source_company", + "COLUMN_NAME": "sourceId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_target_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_relationships", + "CONSTRAINT_NAME": "relationship_target_company", + "COLUMN_NAME": "targetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_4", + "COLUMN_NAME": "brandId", + "REFERENCED_TABLE_NAME": "asset_brands", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_ibfk_5", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_historical_field_snapshot", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revision_specification_fields", + "REFERENCED_COLUMN_NAME": "revisionId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_historical_field_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_revision_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_value_revision_owner", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_value_revision_owner", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "CONSTRAINT_NAME": "asset_revision_specifications_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "CONSTRAINT_NAME": "asset_revision_specifications_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "CONSTRAINT_NAME": "asset_revision_specification_choices_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "CONSTRAINT_NAME": "asset_revision_specification_choices_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "CONSTRAINT_NAME": "asset_revision_specification_fields_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "CONSTRAINT_NAME": "asset_revision_specification_sections_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "asset_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "CONSTRAINT_NAME": "asset_revision_specification_sections_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_snapshot_section", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_sections", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_snapshot_section", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "asset_specification_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_specification_fields_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_specification_fields", + "CONSTRAINT_NAME": "asset_specification_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_snapshot", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "assetId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "CONSTRAINT_NAME": "asset_specification_field_choices_snapshot", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_specification_fields", + "REFERENCED_COLUMN_NAME": "fieldId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_specification_sections", + "CONSTRAINT_NAME": "asset_specification_sections_ibfk_1", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "asset_support_resource_reference", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_resource_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support", + "CONSTRAINT_NAME": "support_resource_company", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_ibfk_1", + "COLUMN_NAME": "connectionId", + "REFERENCED_TABLE_NAME": "asset_support", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_support_revisions", + "CONSTRAINT_NAME": "asset_support_revisions_resource_reference", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_binding_section_template", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_template_sections", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_binding_section_template", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "asset_template_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_template_fields_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_fields", + "CONSTRAINT_NAME": "asset_template_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "asset_template_sections", + "CONSTRAINT_NAME": "asset_template_sections_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "asset_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configurations", + "CONSTRAINT_NAME": "certificate_configurations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "certificate_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "CONSTRAINT_NAME": "certificate_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_contacts", + "CONSTRAINT_NAME": "company_contacts_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_departments", + "CONSTRAINT_NAME": "company_departments_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "company_logos", + "CONSTRAINT_NAME": "company_logos_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "company_sites", + "CONSTRAINT_NAME": "company_sites_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "CONSTRAINT_NAME": "department_assignment_revisions_ibfk_1", + "COLUMN_NAME": "assignmentId", + "REFERENCED_TABLE_NAME": "person_department_assignments", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_company", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_item", + "COLUMN_NAME": "accessAccountKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_3", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_mappings_ibfk_4", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_1", + "COLUMN_NAME": "mappingId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_3", + "COLUMN_NAME": "needId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_4", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_mapping_revisions_ibfk_5", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_company", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_workspaces", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountWorkspaceId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "workspaceId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_item", + "COLUMN_NAME": "accessAccountKind", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "kind", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_mapping", + "COLUMN_NAME": "mappingId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_mapping", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "folder_mappings", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "http_sessions", + "CONSTRAINT_NAME": "http_sessions_ibfk_1", + "COLUMN_NAME": "userId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "SET NULL" + }, + { + "TABLE_NAME": "identity_state", + "CONSTRAINT_NAME": "identity_state_ibfk_1", + "COLUMN_NAME": "initialAdminId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_department_company_fk", + "COLUMN_NAME": "departmentId", + "REFERENCED_TABLE_NAME": "company_departments", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_department_company_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_departments", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_person_company_fk", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "assignment_person_company_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_department_assignments", + "CONSTRAINT_NAME": "person_department_assignments_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_photos", + "CONSTRAINT_NAME": "person_photos_person_fk", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_photos", + "CONSTRAINT_NAME": "person_photos_person_fk", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_1", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_processes", + "CONSTRAINT_NAME": "person_processes_ibfk_3", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_1", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_3", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revisions", + "CONSTRAINT_NAME": "person_process_revisions_ibfk_4", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "person_processes", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "CONSTRAINT_NAME": "person_process_revision_tasks_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "person_process_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "person_process_tasks", + "CONSTRAINT_NAME": "person_process_tasks_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "person_processes", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configurations", + "CONSTRAINT_NAME": "printer_configurations_ibfk_3", + "COLUMN_NAME": "printerId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "printer_configurations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_2", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_3", + "COLUMN_NAME": "printerId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "CONSTRAINT_NAME": "printer_configuration_revisions_ibfk_4", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_instructions", + "CONSTRAINT_NAME": "process_template_instructions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "process_template_revisions", + "CONSTRAINT_NAME": "process_template_revisions_ibfk_1", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_revisions", + "CONSTRAINT_NAME": "process_template_revisions_ibfk_2", + "COLUMN_NAME": "itemId", + "REFERENCED_TABLE_NAME": "process_templates", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "CONSTRAINT_NAME": "process_template_revision_instructions_ibfk_1", + "COLUMN_NAME": "ownerId", + "REFERENCED_TABLE_NAME": "process_template_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_3", + "COLUMN_NAME": "sourceAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_4", + "COLUMN_NAME": "targetAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_5", + "COLUMN_NAME": "targetResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_ibfk_6", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_1", + "COLUMN_NAME": "connectionId", + "REFERENCED_TABLE_NAME": "remote_connections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_4", + "COLUMN_NAME": "sourceAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_5", + "COLUMN_NAME": "targetAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_6", + "COLUMN_NAME": "targetResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_ibfk_7", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_2", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_3", + "COLUMN_NAME": "addressFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_4", + "COLUMN_NAME": "contextFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_6", + "COLUMN_NAME": "referenceFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_7", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_8", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resources_ibfk_9", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "resource_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_availability", + "CONSTRAINT_NAME": "resource_availability_ibfk_3", + "COLUMN_NAME": "definitionId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_characteristics", + "CONSTRAINT_NAME": "resource_characteristics_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_characteristics", + "CONSTRAINT_NAME": "resource_characteristics_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_definitions", + "CONSTRAINT_NAME": "resource_definitions_ibfk_1", + "COLUMN_NAME": "catalogId", + "REFERENCED_TABLE_NAME": "resource_catalogs", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_definitions", + "CONSTRAINT_NAME": "resource_definitions_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_association_actor", + "COLUMN_NAME": "associatedBy", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_context", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_directory_environments", + "REFERENCED_COLUMN_NAME": "environmentId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_context", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "access_directory_environments", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_resource", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template", + "COLUMN_NAME": "templateKey", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "stockKey", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_field_choices", + "CONSTRAINT_NAME": "resource_field_choices_ibfk_1", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_definition", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_definition", + "COLUMN_NAME": "templateKey", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "stockKey", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_resource", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 3, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_10", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_3", + "COLUMN_NAME": "addressFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_4", + "COLUMN_NAME": "contextFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_6", + "COLUMN_NAME": "referenceFieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_7", + "COLUMN_NAME": "resourceTypeId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_8", + "COLUMN_NAME": "systemId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revisions", + "CONSTRAINT_NAME": "resource_revisions_ibfk_9", + "COLUMN_NAME": "environmentId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "CONSTRAINT_NAME": "resource_revision_characteristics_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "CONSTRAINT_NAME": "resource_revision_specifications_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "CONSTRAINT_NAME": "resource_revision_specifications_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "CONSTRAINT_NAME": "resource_revision_specification_choices_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "CONSTRAINT_NAME": "resource_revision_specification_choices_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "CONSTRAINT_NAME": "resource_revision_specification_fields_ibfk_3", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "CONSTRAINT_NAME": "resource_revision_specification_sections_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "resource_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "CONSTRAINT_NAME": "resource_revision_specification_sections_ibfk_2", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_fields", + "CONSTRAINT_NAME": "resource_specification_fields_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_specification_fields", + "CONSTRAINT_NAME": "resource_specification_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "CONSTRAINT_NAME": "resource_specification_field_choices_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "CONSTRAINT_NAME": "resource_specification_field_choices_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_specification_sections", + "CONSTRAINT_NAME": "resource_specification_sections_ibfk_1", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_fields_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_fields_ibfk_2", + "COLUMN_NAME": "fieldId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_field_section", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_template_sections", + "REFERENCED_COLUMN_NAME": "templateId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_fields", + "CONSTRAINT_NAME": "resource_template_field_section", + "COLUMN_NAME": "sectionId", + "REFERENCED_TABLE_NAME": "resource_template_sections", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "resource_template_sections", + "CONSTRAINT_NAME": "resource_template_sections_ibfk_1", + "COLUMN_NAME": "templateId", + "REFERENCED_TABLE_NAME": "resource_definitions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installations", + "CONSTRAINT_NAME": "software_installations_ibfk_4", + "COLUMN_NAME": "licenseResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_1", + "COLUMN_NAME": "configurationId", + "REFERENCED_TABLE_NAME": "software_installations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_3", + "COLUMN_NAME": "resourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_4", + "COLUMN_NAME": "licenseResourceId", + "REFERENCED_TABLE_NAME": "resources", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "software_installation_revisions", + "CONSTRAINT_NAME": "software_installation_revisions_ibfk_5", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorizations", + "CONSTRAINT_NAME": "telework_authorizations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorizations", + "CONSTRAINT_NAME": "telework_authorizations_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_1", + "COLUMN_NAME": "authorizationId", + "REFERENCED_TABLE_NAME": "telework_authorizations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "CONSTRAINT_NAME": "telework_authorization_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_2", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstations", + "CONSTRAINT_NAME": "workstations_ibfk_4", + "COLUMN_NAME": "computerAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_2", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_assets_ibfk_3", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_asset_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_asset_company", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_owner_company", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "companyId", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_assets", + "CONSTRAINT_NAME": "workstation_owner_company", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 2, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_members", + "CONSTRAINT_NAME": "workstation_members_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "workstation_members", + "CONSTRAINT_NAME": "workstation_members_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_1", + "COLUMN_NAME": "workstationId", + "REFERENCED_TABLE_NAME": "workstations", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_3", + "COLUMN_NAME": "siteId", + "REFERENCED_TABLE_NAME": "company_sites", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_4", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revisions", + "CONSTRAINT_NAME": "workstation_revisions_ibfk_5", + "COLUMN_NAME": "computerAssetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "workstation_revision_members", + "CONSTRAINT_NAME": "workstation_revision_members_ibfk_1", + "COLUMN_NAME": "revisionId", + "REFERENCED_TABLE_NAME": "workstation_revisions", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "CASCADE" + }, + { + "TABLE_NAME": "workstation_revision_members", + "CONSTRAINT_NAME": "workstation_revision_members_ibfk_2", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_1", + "COLUMN_NAME": "companyId", + "REFERENCED_TABLE_NAME": "companies", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_2", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_3", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profiles", + "CONSTRAINT_NAME": "work_profiles_ibfk_4", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_1", + "COLUMN_NAME": "profileId", + "REFERENCED_TABLE_NAME": "work_profiles", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_2", + "COLUMN_NAME": "actorId", + "REFERENCED_TABLE_NAME": "users", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_3", + "COLUMN_NAME": "personId", + "REFERENCED_TABLE_NAME": "company_contacts", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_4", + "COLUMN_NAME": "assetId", + "REFERENCED_TABLE_NAME": "assets", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + }, + { + "TABLE_NAME": "work_profile_revisions", + "CONSTRAINT_NAME": "work_profile_revisions_ibfk_5", + "COLUMN_NAME": "accountId", + "REFERENCED_TABLE_NAME": "access_items", + "REFERENCED_COLUMN_NAME": "id", + "ORDINAL_POSITION": 1, + "UPDATE_RULE": "RESTRICT", + "DELETE_RULE": "RESTRICT" + } + ], + "checks": [ + { + "TABLE_NAME": "access_directory_environments", + "CONSTRAINT_NAME": "directory_environment_kind", + "CHECK_CLAUSE": "`itemKind` = 'environment'" + }, + { + "TABLE_NAME": "access_directory_systems", + "CONSTRAINT_NAME": "directory_system_kind", + "CHECK_CLAUSE": "`itemKind` = 'system'" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_kind", + "CHECK_CLAUSE": "`environmentKind` = 'environment' and `systemKind` = 'system' and `identityScope` = 'local-device'" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "CONSTRAINT_NAME": "local_identity_period", + "CHECK_CLAUSE": "`endedAt` is null and `endedBy` is null or `endedAt` is not null and `endedBy` is not null and `endedAt` >= `startedAt`" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_brand_presence", + "CHECK_CLAUSE": "`brandId` is null or `brandDefined` = 1" + }, + { + "TABLE_NAME": "assets", + "CONSTRAINT_NAME": "assets_status", + "CHECK_CLAUSE": "`status` in ('operational','broken','available','in_use','maintenance','retired')" + }, + { + "TABLE_NAME": "asset_characteristics", + "CONSTRAINT_NAME": "asset_characteristics_typed_value", + "CHECK_CLAUSE": "`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'" + }, + { + "TABLE_NAME": "asset_definitions", + "CONSTRAINT_NAME": "asset_definition_kind", + "CHECK_CLAUSE": "`kind` = 'field' and `fieldType` in ('text','multiline','number','date','boolean','choice') and `unit` is not null and `inverseName` is null and `symmetric` is null or `kind` = 'template' and `fieldType` is null and `unit` is null and `inverseName` is null and `symmetric` is null or `kind` = 'relation' and `fieldType` is null and `unit` is null and `inverseName` is not null and `symmetric` is not null" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_active_key", + "CHECK_CLAUSE": "`endedAt` is null and `activeAssetId` is not null and `activeAssetId` = `assetId` or `endedAt` is not null and `activeAssetId` is null" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` >= `createdAt`" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "CONSTRAINT_NAME": "directory_membership_role", + "CHECK_CLAUSE": "`role` in ('member','domain-controller')" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` <= `recordedAt`" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_position", + "CHECK_CLAUSE": "`position` >= 0" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "CONSTRAINT_NAME": "directory_membership_revision_role", + "CHECK_CLAUSE": "`role` in ('member','domain-controller')" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_active", + "CHECK_CLAUSE": "`endedAt` is null and `endedBy` is null and `activeResourceId` is not null and `activeResourceId` = `resourceId` or `endedAt` is not null and `endedBy` is not null and `activeResourceId` is null" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_period", + "CHECK_CLAUSE": "`endedAt` is null or `endedAt` >= `startedAt`" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "CONSTRAINT_NAME": "publication_previous_identity", + "CHECK_CLAUSE": "`predecessorId` is null or `predecessorId` <> `id`" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_brand_presence", + "CHECK_CLAUSE": "`brandId` is null or `brandDefined` = 1" + }, + { + "TABLE_NAME": "asset_revisions", + "CONSTRAINT_NAME": "asset_revisions_status", + "CHECK_CLAUSE": "`status` in ('operational','broken','available','in_use','maintenance','retired')" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "CONSTRAINT_NAME": "asset_revision_characteristics_typed_value", + "CHECK_CLAUSE": "`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_kind", + "CHECK_CLAUSE": "`accessAccountKind` = 'account'" + }, + { + "TABLE_NAME": "folder_mappings", + "CONSTRAINT_NAME": "folder_account_nullable", + "CHECK_CLAUSE": "`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_kind", + "CHECK_CLAUSE": "`accessAccountKind` = 'account'" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "CONSTRAINT_NAME": "folder_revision_account_nullable", + "CHECK_CLAUSE": "`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null" + }, + { + "TABLE_NAME": "remote_connections", + "CONSTRAINT_NAME": "remote_connections_snapshot_shape", + "CHECK_CLAUSE": "(`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null)" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "CONSTRAINT_NAME": "remote_connection_revisions_snapshot_shape", + "CHECK_CLAUSE": "(`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null)" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resource_global_no_integration", + "CHECK_CLAUSE": "`scope` = 'company' or `integrationKind` is null and `addressFieldId` is null and `contextFieldId` is null and `mailboxKind` is null and `accountId` is null and `referenceFieldId` is null and `resourceTypeId` is null and `systemId` is null and `environmentId` is null" + }, + { + "TABLE_NAME": "resources", + "CONSTRAINT_NAME": "resource_scope_owner", + "CHECK_CLAUSE": "`scope` = 'company' and char_length(`scope`) = 7 and `companyId` is not null or `scope` = 'global' and char_length(`scope`) = 6 and `companyId` is null" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_dns_canonical", + "CHECK_CLAUSE": "`normalizedDns` = lcase(`normalizedDns`) and octet_length(`normalizedDns`) = octet_length(trim(`normalizedDns`)) and right(`normalizedDns`,1) <> '.'" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_dns_not_empty", + "CHECK_CLAUSE": "char_length(`normalizedDns`) > 0" + }, + { + "TABLE_NAME": "resource_directory_domains", + "CONSTRAINT_NAME": "directory_template_semantics", + "CHECK_CLAUSE": "`templateKey` = 'template:windows_domain'" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_active", + "CHECK_CLAUSE": "`activeAddress` is null or cast(`activeAddress` as char charset binary) = cast(`normalizedAddress` as char charset binary)" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_address", + "CHECK_CLAUSE": "char_length(`normalizedAddress`) > 0" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_protocol", + "CHECK_CLAUSE": "`protocol` = 'smb'" + }, + { + "TABLE_NAME": "resource_network_shares", + "CONSTRAINT_NAME": "network_share_template", + "CHECK_CLAUSE": "`templateKey` = 'template:shared_folder'" + }, + { + "TABLE_NAME": "users", + "CONSTRAINT_NAME": "initial_admin_active", + "CHECK_CLAUSE": "`isInitialAdmin` = 0 or `active` = 1" + } + ], + "ddl": [ + { + "Table": "access_account_person_revision_values", + "Create Table": "CREATE TABLE `access_account_person_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_account_person_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_person_revision_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_person_revision_values_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_person_values", + "Create Table": "CREATE TABLE `access_account_person_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_account_person_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_person_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_person_values_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_revision_values", + "Create Table": "CREATE TABLE `access_account_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `login` varchar(255) NOT NULL,\n `usage` varchar(16) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_account_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_revision_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_account_values", + "Create Table": "CREATE TABLE `access_account_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `login` varchar(255) NOT NULL,\n `usage` varchar(16) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_account_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_account_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_account_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_coverage_revision_values", + "Create Table": "CREATE TABLE `access_coverage_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `grantId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountPersonId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `needId` (`needId`),\n KEY `grantId` (`grantId`),\n KEY `accountPersonId` (`accountPersonId`),\n KEY `membershipId` (`membershipId`),\n CONSTRAINT `access_coverage_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_coverage_revision_values_ibfk_2` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_3` FOREIGN KEY (`grantId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_4` FOREIGN KEY (`accountPersonId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_revision_values_ibfk_5` FOREIGN KEY (`membershipId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_coverage_values", + "Create Table": "CREATE TABLE `access_coverage_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `grantId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountPersonId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `needId` (`needId`),\n KEY `grantId` (`grantId`),\n KEY `accountPersonId` (`accountPersonId`),\n KEY `membershipId` (`membershipId`),\n CONSTRAINT `access_coverage_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_coverage_values_ibfk_2` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_3` FOREIGN KEY (`grantId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_4` FOREIGN KEY (`accountPersonId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_coverage_values_ibfk_5` FOREIGN KEY (`membershipId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "View": "access_current_values", + "Create View": "CREATE ALGORITHM=UNDEFINED DEFINER=`scope_test`@`%` SQL SECURITY DEFINER VIEW `access_current_values` AS select `access_system_values`.`ownerId` AS `ownerId`,'system' AS `kind`,`access_system_values`.`name` AS `name`,`access_system_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_system_values` union all select `access_resource_type_values`.`ownerId` AS `ownerId`,'resource_type' AS `kind`,`access_resource_type_values`.`name` AS `name`,`access_resource_type_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_type_values` union all select `access_permission_values`.`ownerId` AS `ownerId`,'permission' AS `kind`,`access_permission_values`.`name` AS `name`,`access_permission_values`.`active` AS `active`,`access_permission_values`.`resourceTypeId` AS `resourceTypeId`,`access_permission_values`.`description` AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_permission_values` union all select `access_template_values`.`ownerId` AS `ownerId`,'template' AS `kind`,`access_template_values`.`name` AS `name`,`access_template_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_template_values`.`description` AS `description`,`access_template_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_template_values` union all select `access_environment_values`.`ownerId` AS `ownerId`,'environment' AS `kind`,`access_environment_values`.`name` AS `name`,`access_environment_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_environment_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_environment_values` union all select `access_account_values`.`ownerId` AS `ownerId`,'account' AS `kind`,NULL AS `name`,`access_account_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_account_values`.`systemId` AS `systemId`,`access_account_values`.`environmentId` AS `environmentId`,`access_account_values`.`login` AS `login`,`access_account_values`.`usage` AS `usage`,`access_account_values`.`expiresOn` AS `expiresOn`,`access_account_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_values` union all select `access_account_person_values`.`ownerId` AS `ownerId`,'account_person' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_account_person_values`.`accountId` AS `accountId`,`access_account_person_values`.`personId` AS `personId`,`access_account_person_values`.`startDate` AS `startDate`,`access_account_person_values`.`endDate` AS `endDate`,`access_account_person_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_person_values` union all select `access_group_values`.`ownerId` AS `ownerId`,'group' AS `kind`,`access_group_values`.`name` AS `name`,`access_group_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_group_values`.`description` AS `description`,`access_group_values`.`systemId` AS `systemId`,`access_group_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,`access_group_values`.`identifier` AS `identifier`,`access_group_values`.`templateId` AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_group_values` union all select `access_membership_values`.`ownerId` AS `ownerId`,'membership' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_membership_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_membership_values`.`startDate` AS `startDate`,`access_membership_values`.`endDate` AS `endDate`,`access_membership_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_membership_values`.`groupId` AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_membership_values` union all select `access_resource_values`.`ownerId` AS `ownerId`,'resource' AS `kind`,`access_resource_values`.`name` AS `name`,`access_resource_values`.`active` AS `active`,`access_resource_values`.`resourceTypeId` AS `resourceTypeId`,NULL AS `description`,`access_resource_values`.`systemId` AS `systemId`,`access_resource_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_resource_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,`access_resource_values`.`reference` AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_values` union all select `access_grant_values`.`ownerId` AS `ownerId`,'grant' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_grant_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_grant_values`.`startDate` AS `startDate`,`access_grant_values`.`endDate` AS `endDate`,`access_grant_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_grant_values`.`groupId` AS `groupId`,NULL AS `reference`,`access_grant_values`.`resourceId` AS `resourceId`,`access_grant_values`.`permissionId` AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_grant_values` union all select `access_need_values`.`ownerId` AS `ownerId`,'need' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_need_values`.`notes` AS `notes`,NULL AS `accountId`,`access_need_values`.`personId` AS `personId`,`access_need_values`.`startDate` AS `startDate`,`access_need_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,`access_need_values`.`resourceId` AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_need_values` union all select `access_coverage_values`.`ownerId` AS `ownerId`,'coverage' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,`access_coverage_values`.`startDate` AS `startDate`,`access_coverage_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,`access_coverage_values`.`needId` AS `needId`,`access_coverage_values`.`grantId` AS `grantId`,`access_coverage_values`.`accountPersonId` AS `accountPersonId`,`access_coverage_values`.`membershipId` AS `membershipId` from `access_coverage_values`", + "character_set_client": "utf8mb4", + "collation_connection": "utf8mb4_unicode_ci" + }, + { + "Table": "access_directory_environments", + "Create Table": "CREATE TABLE `access_directory_environments` (\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemKind` varchar(30) NOT NULL DEFAULT 'environment',\n PRIMARY KEY (`environmentId`),\n UNIQUE KEY `directory_environment_scope` (`environmentId`,`companyId`),\n KEY `directory_environment_item` (`environmentId`,`workspaceId`,`itemKind`),\n KEY `directory_environment_system` (`systemId`,`workspaceId`,`companyId`),\n KEY `directory_environment_company` (`workspaceId`,`companyId`),\n CONSTRAINT `directory_environment_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `directory_environment_item` FOREIGN KEY (`environmentId`, `workspaceId`, `itemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `directory_environment_system` FOREIGN KEY (`systemId`, `workspaceId`, `companyId`) REFERENCES `access_directory_systems` (`systemId`, `workspaceId`, `companyId`),\n CONSTRAINT `directory_environment_kind` CHECK (`itemKind` = 'environment')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_directory_systems", + "Create Table": "CREATE TABLE `access_directory_systems` (\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemKind` varchar(30) NOT NULL DEFAULT 'system',\n PRIMARY KEY (`systemId`),\n UNIQUE KEY `directory_system_workspace` (`workspaceId`),\n UNIQUE KEY `directory_system_scope` (`systemId`,`workspaceId`,`companyId`),\n KEY `directory_system_item` (`systemId`,`workspaceId`,`itemKind`),\n KEY `directory_system_company` (`workspaceId`,`companyId`),\n CONSTRAINT `directory_system_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `directory_system_item` FOREIGN KEY (`systemId`, `workspaceId`, `itemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `directory_system_kind` CHECK (`itemKind` = 'system')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_environment_revision_values", + "Create Table": "CREATE TABLE `access_environment_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_environment_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_environment_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_environment_values", + "Create Table": "CREATE TABLE `access_environment_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_environment_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_environment_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_grant_revision_values", + "Create Table": "CREATE TABLE `access_grant_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceId` (`resourceId`),\n KEY `permissionId` (`permissionId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_grant_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_grant_revision_values_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_3` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_revision_values_ibfk_5` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_grant_values", + "Create Table": "CREATE TABLE `access_grant_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceId` (`resourceId`),\n KEY `permissionId` (`permissionId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_grant_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_grant_values_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_3` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_grant_values_ibfk_5` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_group_revision_values", + "Create Table": "CREATE TABLE `access_group_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `identifier` varchar(255) NOT NULL,\n `description` text DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `access_group_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_group_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_revision_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_revision_values_ibfk_4` FOREIGN KEY (`templateId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_group_values", + "Create Table": "CREATE TABLE `access_group_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `identifier` varchar(255) NOT NULL,\n `description` text DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `access_group_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_group_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_values_ibfk_3` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_group_values_ibfk_4` FOREIGN KEY (`templateId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "View": "access_historical_values", + "Create View": "CREATE ALGORITHM=UNDEFINED DEFINER=`scope_test`@`%` SQL SECURITY DEFINER VIEW `access_historical_values` AS select `access_system_revision_values`.`ownerId` AS `ownerId`,'system' AS `kind`,`access_system_revision_values`.`name` AS `name`,`access_system_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_system_revision_values` union all select `access_resource_type_revision_values`.`ownerId` AS `ownerId`,'resource_type' AS `kind`,`access_resource_type_revision_values`.`name` AS `name`,`access_resource_type_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_type_revision_values` union all select `access_permission_revision_values`.`ownerId` AS `ownerId`,'permission' AS `kind`,`access_permission_revision_values`.`name` AS `name`,`access_permission_revision_values`.`active` AS `active`,`access_permission_revision_values`.`resourceTypeId` AS `resourceTypeId`,`access_permission_revision_values`.`description` AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_permission_revision_values` union all select `access_template_revision_values`.`ownerId` AS `ownerId`,'template' AS `kind`,`access_template_revision_values`.`name` AS `name`,`access_template_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_template_revision_values`.`description` AS `description`,`access_template_revision_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_template_revision_values` union all select `access_environment_revision_values`.`ownerId` AS `ownerId`,'environment' AS `kind`,`access_environment_revision_values`.`name` AS `name`,`access_environment_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_environment_revision_values`.`systemId` AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_environment_revision_values` union all select `access_account_revision_values`.`ownerId` AS `ownerId`,'account' AS `kind`,NULL AS `name`,`access_account_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,`access_account_revision_values`.`systemId` AS `systemId`,`access_account_revision_values`.`environmentId` AS `environmentId`,`access_account_revision_values`.`login` AS `login`,`access_account_revision_values`.`usage` AS `usage`,`access_account_revision_values`.`expiresOn` AS `expiresOn`,`access_account_revision_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_revision_values` union all select `access_account_person_revision_values`.`ownerId` AS `ownerId`,'account_person' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_account_person_revision_values`.`accountId` AS `accountId`,`access_account_person_revision_values`.`personId` AS `personId`,`access_account_person_revision_values`.`startDate` AS `startDate`,`access_account_person_revision_values`.`endDate` AS `endDate`,`access_account_person_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_account_person_revision_values` union all select `access_group_revision_values`.`ownerId` AS `ownerId`,'group' AS `kind`,`access_group_revision_values`.`name` AS `name`,`access_group_revision_values`.`active` AS `active`,NULL AS `resourceTypeId`,`access_group_revision_values`.`description` AS `description`,`access_group_revision_values`.`systemId` AS `systemId`,`access_group_revision_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,`access_group_revision_values`.`identifier` AS `identifier`,`access_group_revision_values`.`templateId` AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_group_revision_values` union all select `access_membership_revision_values`.`ownerId` AS `ownerId`,'membership' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_membership_revision_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_membership_revision_values`.`startDate` AS `startDate`,`access_membership_revision_values`.`endDate` AS `endDate`,`access_membership_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_membership_revision_values`.`groupId` AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_membership_revision_values` union all select `access_resource_revision_values`.`ownerId` AS `ownerId`,'resource' AS `kind`,`access_resource_revision_values`.`name` AS `name`,`access_resource_revision_values`.`active` AS `active`,`access_resource_revision_values`.`resourceTypeId` AS `resourceTypeId`,NULL AS `description`,`access_resource_revision_values`.`systemId` AS `systemId`,`access_resource_revision_values`.`environmentId` AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_resource_revision_values`.`notes` AS `notes`,NULL AS `accountId`,NULL AS `personId`,NULL AS `startDate`,NULL AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,`access_resource_revision_values`.`reference` AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_resource_revision_values` union all select `access_grant_revision_values`.`ownerId` AS `ownerId`,'grant' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,`access_grant_revision_values`.`accountId` AS `accountId`,NULL AS `personId`,`access_grant_revision_values`.`startDate` AS `startDate`,`access_grant_revision_values`.`endDate` AS `endDate`,`access_grant_revision_values`.`configuration` AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,`access_grant_revision_values`.`groupId` AS `groupId`,NULL AS `reference`,`access_grant_revision_values`.`resourceId` AS `resourceId`,`access_grant_revision_values`.`permissionId` AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_grant_revision_values` union all select `access_need_revision_values`.`ownerId` AS `ownerId`,'need' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,`access_need_revision_values`.`notes` AS `notes`,NULL AS `accountId`,`access_need_revision_values`.`personId` AS `personId`,`access_need_revision_values`.`startDate` AS `startDate`,`access_need_revision_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,`access_need_revision_values`.`resourceId` AS `resourceId`,NULL AS `permissionId`,NULL AS `needId`,NULL AS `grantId`,NULL AS `accountPersonId`,NULL AS `membershipId` from `access_need_revision_values` union all select `access_coverage_revision_values`.`ownerId` AS `ownerId`,'coverage' AS `kind`,NULL AS `name`,NULL AS `active`,NULL AS `resourceTypeId`,NULL AS `description`,NULL AS `systemId`,NULL AS `environmentId`,NULL AS `login`,NULL AS `usage`,NULL AS `expiresOn`,NULL AS `notes`,NULL AS `accountId`,NULL AS `personId`,`access_coverage_revision_values`.`startDate` AS `startDate`,`access_coverage_revision_values`.`endDate` AS `endDate`,NULL AS `configuration`,NULL AS `identifier`,NULL AS `templateId`,NULL AS `groupId`,NULL AS `reference`,NULL AS `resourceId`,NULL AS `permissionId`,`access_coverage_revision_values`.`needId` AS `needId`,`access_coverage_revision_values`.`grantId` AS `grantId`,`access_coverage_revision_values`.`accountPersonId` AS `accountPersonId`,`access_coverage_revision_values`.`membershipId` AS `membershipId` from `access_coverage_revision_values`", + "character_set_client": "utf8mb4", + "collation_connection": "utf8mb4_unicode_ci" + }, + { + "Table": "access_items", + "Create Table": "CREATE TABLE `access_items` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(30) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_item_scope_kind` (`id`,`workspaceId`,`kind`),\n KEY `workspaceId` (`workspaceId`),\n CONSTRAINT `access_items_ibfk_1` FOREIGN KEY (`workspaceId`) REFERENCES `access_workspaces` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_local_identity_environments", + "Create Table": "CREATE TABLE `access_local_identity_environments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `environmentKind` varchar(30) NOT NULL DEFAULT 'environment',\n `systemKind` varchar(30) NOT NULL DEFAULT 'system',\n `identityScope` varchar(20) NOT NULL DEFAULT 'local-device',\n `startedAt` varchar(24) NOT NULL,\n `startedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `endedAt` varchar(24) DEFAULT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `local_identity_environment` (`environmentId`),\n KEY `local_identity_asset_page` (`companyId`,`assetId`,`id`),\n KEY `local_identity_environment_fk` (`environmentId`,`workspaceId`,`environmentKind`),\n KEY `local_identity_system_fk` (`systemId`,`systemWorkspaceId`,`systemKind`),\n KEY `local_identity_company` (`workspaceId`,`companyId`),\n KEY `local_identity_start_actor` (`startedBy`),\n KEY `local_identity_end_actor` (`endedBy`),\n CONSTRAINT `local_identity_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `local_identity_company` FOREIGN KEY (`workspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `local_identity_end_actor` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `local_identity_environment_fk` FOREIGN KEY (`environmentId`, `workspaceId`, `environmentKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `local_identity_start_actor` FOREIGN KEY (`startedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `local_identity_system_fk` FOREIGN KEY (`systemId`, `systemWorkspaceId`, `systemKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `local_identity_kind` CHECK (`environmentKind` = 'environment' and `systemKind` = 'system' and `identityScope` = 'local-device'),\n CONSTRAINT `local_identity_period` CHECK (`endedAt` is null and `endedBy` is null or `endedAt` is not null and `endedBy` is not null and `endedAt` >= `startedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_membership_revision_values", + "Create Table": "CREATE TABLE `access_membership_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_membership_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_membership_revision_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_membership_revision_values_ibfk_3` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_membership_values", + "Create Table": "CREATE TABLE `access_membership_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `groupId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `configuration` varchar(20) NOT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `accountId` (`accountId`),\n KEY `groupId` (`groupId`),\n CONSTRAINT `access_membership_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_membership_values_ibfk_2` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_membership_values_ibfk_3` FOREIGN KEY (`groupId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_permissions", + "Create Table": "CREATE TABLE `access_need_permissions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `access_need_permissions_unique` (`ownerId`,`permissionId`),\n KEY `permissionId` (`permissionId`),\n CONSTRAINT `access_need_permissions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_need_values` (`ownerId`) ON DELETE CASCADE,\n CONSTRAINT `access_need_permissions_ibfk_2` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_revision_permissions", + "Create Table": "CREATE TABLE `access_need_revision_permissions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `permissionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `access_need_revision_permissions_unique` (`ownerId`,`permissionId`),\n KEY `permissionId` (`permissionId`),\n CONSTRAINT `access_need_revision_permissions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_need_revision_values` (`ownerId`) ON DELETE CASCADE,\n CONSTRAINT `access_need_revision_permissions_ibfk_2` FOREIGN KEY (`permissionId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_revision_values", + "Create Table": "CREATE TABLE `access_need_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `personId` (`personId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `access_need_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_need_revision_values_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `access_need_revision_values_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_need_values", + "Create Table": "CREATE TABLE `access_need_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `startDate` varchar(10) NOT NULL,\n `endDate` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `personId` (`personId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `access_need_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_need_values_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `access_need_values_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_permission_revision_values", + "Create Table": "CREATE TABLE `access_permission_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `description` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n CONSTRAINT `access_permission_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_permission_revision_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_permission_values", + "Create Table": "CREATE TABLE `access_permission_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `description` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n CONSTRAINT `access_permission_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_permission_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_person_references", + "Create Table": "CREATE TABLE `access_person_references` (\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`itemId`,`personId`),\n KEY `personId` (`personId`),\n CONSTRAINT `access_person_references_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_person_references_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_references", + "Create Table": "CREATE TABLE `access_references` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `targetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `access_reference_unique` (`itemId`,`targetId`),\n KEY `targetId` (`targetId`),\n CONSTRAINT `access_references_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_references_ibfk_2` FOREIGN KEY (`targetId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_revision_values", + "Create Table": "CREATE TABLE `access_resource_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `reference` varchar(255) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_resource_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_resource_revision_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_revision_values_ibfk_3` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_revision_values_ibfk_4` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_type_revision_values", + "Create Table": "CREATE TABLE `access_resource_type_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_resource_type_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_type_values", + "Create Table": "CREATE TABLE `access_resource_type_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_resource_type_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_resource_values", + "Create Table": "CREATE TABLE `access_resource_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `reference` varchar(255) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `access_resource_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_resource_values_ibfk_2` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_values_ibfk_3` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_resource_values_ibfk_4` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_revisions", + "Create Table": "CREATE TABLE `access_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sequence` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `access_revision_sequence_unique` (`itemId`,`sequence`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `access_revisions_ibfk_1` FOREIGN KEY (`itemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `access_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_system_revision_values", + "Create Table": "CREATE TABLE `access_system_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_system_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_system_values", + "Create Table": "CREATE TABLE `access_system_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`ownerId`),\n CONSTRAINT `access_system_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_template_revision_values", + "Create Table": "CREATE TABLE `access_template_revision_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `description` text DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_template_revision_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_template_revision_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_template_values", + "Create Table": "CREATE TABLE `access_template_values` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `description` text DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`ownerId`),\n KEY `systemId` (`systemId`),\n CONSTRAINT `access_template_values_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `access_items` (`id`) ON DELETE CASCADE,\n CONSTRAINT `access_template_values_ibfk_2` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "access_workspaces", + "Create Table": "CREATE TABLE `access_workspaces` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `scopeKey` varchar(40) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `scopeKey` (`scopeKey`),\n UNIQUE KEY `directory_workspace_company` (`id`,`companyId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `access_workspaces_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "application_configurations", + "Create Table": "CREATE TABLE `application_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `delivery` varchar(16) NOT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `application_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `application_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `application_configurations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "application_configuration_revisions", + "Create Table": "CREATE TABLE `application_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `delivery` varchar(16) NOT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `application_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `application_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `application_configurations` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `application_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "assets", + "Create Table": "CREATE TABLE `assets` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `brandId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `registeredOn` date DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `status` varchar(15) NOT NULL,\n `notes` text NOT NULL,\n `brandDefined` tinyint(1) NOT NULL DEFAULT 0,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assets_company_identity` (`companyId`,`id`),\n KEY `templateId` (`templateId`),\n KEY `siteId` (`siteId`),\n KEY `brandId` (`brandId`),\n CONSTRAINT `assets_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `assets_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `assets_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `assets_ibfk_4` FOREIGN KEY (`brandId`) REFERENCES `asset_brands` (`id`),\n CONSTRAINT `assets_brand_presence` CHECK (`brandId` is null or `brandDefined` = 1),\n CONSTRAINT `assets_status` CHECK (`status` in ('operational','broken','available','in_use','maintenance','retired'))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_availability", + "Create Table": "CREATE TABLE `asset_availability` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `definitionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_company_availability_unique` (`companyId`,`definitionId`),\n KEY `catalogId` (`catalogId`),\n KEY `definitionId` (`definitionId`),\n CONSTRAINT `asset_availability_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `asset_catalogs` (`id`),\n CONSTRAINT `asset_availability_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_availability_ibfk_3` FOREIGN KEY (`definitionId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_brands", + "Create Table": "CREATE TABLE `asset_brands` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `builtin` tinyint(1) NOT NULL,\n `logoSvg` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `name` (`name`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_catalogs", + "Create Table": "CREATE TABLE `asset_catalogs` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogKey` varchar(20) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `catalogKey` (`catalogKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_characteristics", + "Create Table": "CREATE TABLE `asset_characteristics` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`assetId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_characteristics_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_characteristics_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_characteristics_snapshot` FOREIGN KEY (`assetId`, `fieldId`) REFERENCES `asset_specification_fields` (`assetId`, `fieldId`),\n CONSTRAINT `asset_characteristics_typed_value` CHECK (`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_definitions", + "Create Table": "CREATE TABLE `asset_definitions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `stockKey` varchar(100) DEFAULT NULL,\n `kind` varchar(12) NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `icon` varchar(30) DEFAULT NULL,\n `fieldType` varchar(12) DEFAULT NULL,\n `unit` varchar(30) DEFAULT NULL,\n `inverseName` varchar(100) DEFAULT NULL,\n `symmetric` tinyint(1) DEFAULT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `stockKey` (`stockKey`),\n KEY `catalogId` (`catalogId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `asset_definitions_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `asset_catalogs` (`id`),\n CONSTRAINT `asset_definitions_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_definition_kind` CHECK (`kind` = 'field' and `fieldType` in ('text','multiline','number','date','boolean','choice') and `unit` is not null and `inverseName` is null and `symmetric` is null or `kind` = 'template' and `fieldType` is null and `unit` is null and `inverseName` is null and `symmetric` is null or `kind` = 'relation' and `fieldType` is null and `unit` is null and `inverseName` is not null and `symmetric` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_directory_memberships", + "Create Table": "CREATE TABLE `asset_directory_memberships` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `domainResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `predecessorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `role` varchar(30) NOT NULL,\n `createdAt` varchar(30) NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `activeAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_membership_identity_scope` (`id`,`companyId`,`assetId`),\n UNIQUE KEY `directory_membership_active` (`activeAssetId`),\n UNIQUE KEY `directory_membership_predecessor` (`predecessorId`),\n KEY `directory_membership_asset` (`companyId`,`assetId`,`id`),\n KEY `directory_membership_domain` (`companyId`,`domainResourceId`,`role`,`endedAt`,`id`),\n KEY `directory_membership_domain_fk` (`domainResourceId`,`companyId`),\n KEY `directory_membership_previous_fk` (`predecessorId`,`companyId`,`assetId`),\n KEY `directory_membership_domain_page` (`companyId`,`domainResourceId`,`id`),\n CONSTRAINT `directory_membership_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `directory_membership_domain_fk` FOREIGN KEY (`domainResourceId`, `companyId`) REFERENCES `resource_directory_domains` (`resourceId`, `companyId`),\n CONSTRAINT `directory_membership_previous_fk` FOREIGN KEY (`predecessorId`, `companyId`, `assetId`) REFERENCES `asset_directory_memberships` (`id`, `companyId`, `assetId`),\n CONSTRAINT `directory_membership_active_key` CHECK (`endedAt` is null and `activeAssetId` is not null and `activeAssetId` = `assetId` or `endedAt` is not null and `activeAssetId` is null),\n CONSTRAINT `directory_membership_role` CHECK (`role` in ('member','domain-controller')),\n CONSTRAINT `directory_membership_period` CHECK (`endedAt` is null or `endedAt` >= `createdAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_directory_membership_revisions", + "Create Table": "CREATE TABLE `asset_directory_membership_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `membershipId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `role` varchar(30) NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_membership_revision_order` (`membershipId`,`position`),\n KEY `directory_membership_revision_actor` (`actorId`),\n CONSTRAINT `directory_membership_revision_actor` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `directory_membership_revision_owner` FOREIGN KEY (`membershipId`) REFERENCES `asset_directory_memberships` (`id`),\n CONSTRAINT `directory_membership_revision_role` CHECK (`role` in ('member','domain-controller')),\n CONSTRAINT `directory_membership_revision_position` CHECK (`position` >= 0),\n CONSTRAINT `directory_membership_revision_period` CHECK (`endedAt` is null or `endedAt` <= `recordedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_field_choices", + "Create Table": "CREATE TABLE `asset_field_choices` (\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`fieldId`,`position`),\n CONSTRAINT `asset_field_choices_ibfk_1` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure", + "Create Table": "CREATE TABLE `asset_infrastructure` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assetId` (`assetId`),\n KEY `infrastructure_asset_company` (`companyId`,`assetId`),\n CONSTRAINT `asset_infrastructure_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_infrastructure_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `infrastructure_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure_revisions", + "Create Table": "CREATE TABLE `asset_infrastructure_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `infrastructureId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `infrastructure_revision_position` (`infrastructureId`,`position`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `asset_infrastructure_revisions_ibfk_1` FOREIGN KEY (`infrastructureId`) REFERENCES `asset_infrastructure` (`id`),\n CONSTRAINT `asset_infrastructure_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_infrastructure_roles", + "Create Table": "CREATE TABLE `asset_infrastructure_roles` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `role` varchar(30) NOT NULL,\n PRIMARY KEY (`revisionId`,`role`),\n CONSTRAINT `asset_infrastructure_roles_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_interface_address_snapshots", + "Create Table": "CREATE TABLE `asset_interface_address_snapshots` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `interfaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `address` varchar(45) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `interface_address_owner` (`revisionId`,`interfaceId`),\n CONSTRAINT `asset_interface_address_snapshots_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`),\n CONSTRAINT `interface_address_owner` FOREIGN KEY (`revisionId`, `interfaceId`) REFERENCES `asset_interface_snapshots` (`revisionId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_interface_snapshots", + "Create Table": "CREATE TABLE `asset_interface_snapshots` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `kind` varchar(12) NOT NULL,\n `mac` varchar(17) NOT NULL,\n `notes` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n CONSTRAINT `asset_interface_snapshots_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_infrastructure_revisions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_network_share_publications", + "Create Table": "CREATE TABLE `asset_network_share_publications` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `predecessorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `startedAt` varchar(30) NOT NULL,\n `startedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `activeResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `publication_scope` (`id`,`companyId`,`resourceId`),\n UNIQUE KEY `publication_active_resource` (`activeResourceId`),\n UNIQUE KEY `publication_successor` (`predecessorId`),\n KEY `publication_asset` (`companyId`,`assetId`,`id`),\n KEY `publication_resource` (`companyId`,`resourceId`,`id`),\n KEY `publication_share_fk` (`resourceId`,`companyId`),\n KEY `publication_previous_fk` (`predecessorId`,`companyId`,`resourceId`),\n KEY `publication_start_actor` (`startedBy`),\n KEY `publication_end_actor` (`endedBy`),\n CONSTRAINT `publication_asset_fk` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `publication_end_actor` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `publication_previous_fk` FOREIGN KEY (`predecessorId`, `companyId`, `resourceId`) REFERENCES `asset_network_share_publications` (`id`, `companyId`, `resourceId`),\n CONSTRAINT `publication_share_fk` FOREIGN KEY (`resourceId`, `companyId`) REFERENCES `resource_network_shares` (`resourceId`, `companyId`),\n CONSTRAINT `publication_start_actor` FOREIGN KEY (`startedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `publication_active` CHECK (`endedAt` is null and `endedBy` is null and `activeResourceId` is not null and `activeResourceId` = `resourceId` or `endedAt` is not null and `endedBy` is not null and `activeResourceId` is null),\n CONSTRAINT `publication_previous_identity` CHECK (`predecessorId` is null or `predecessorId` <> `id`),\n CONSTRAINT `publication_period` CHECK (`endedAt` is null or `endedAt` >= `startedAt`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_relationships", + "Create Table": "CREATE TABLE `asset_relationships` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `targetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `typeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `inverseName` varchar(100) NOT NULL,\n `symmetric` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `createdBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `createdAt` varchar(30) NOT NULL,\n `endedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `endedAt` varchar(30) DEFAULT NULL,\n `activeKey` varchar(150) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `activeKey` (`activeKey`),\n KEY `sourceId` (`sourceId`),\n KEY `targetId` (`targetId`),\n KEY `typeId` (`typeId`),\n KEY `createdBy` (`createdBy`),\n KEY `endedBy` (`endedBy`),\n KEY `relationship_source_company` (`companyId`,`sourceId`),\n KEY `relationship_target_company` (`companyId`,`targetId`),\n CONSTRAINT `asset_relationships_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_relationships_ibfk_2` FOREIGN KEY (`sourceId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_relationships_ibfk_3` FOREIGN KEY (`targetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_relationships_ibfk_4` FOREIGN KEY (`typeId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_relationships_ibfk_5` FOREIGN KEY (`createdBy`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_relationships_ibfk_6` FOREIGN KEY (`endedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `relationship_source_company` FOREIGN KEY (`companyId`, `sourceId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `relationship_target_company` FOREIGN KEY (`companyId`, `targetId`) REFERENCES `assets` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revisions", + "Create Table": "CREATE TABLE `asset_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `brandId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `registeredOn` date DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `status` varchar(15) NOT NULL,\n `notes` text NOT NULL,\n `brandDefined` tinyint(1) NOT NULL DEFAULT 0,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_revision_identity` (`id`,`assetId`),\n KEY `assetId` (`assetId`),\n KEY `actorId` (`actorId`),\n KEY `siteId` (`siteId`),\n KEY `brandId` (`brandId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `asset_revisions_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_revisions_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `asset_revisions_ibfk_4` FOREIGN KEY (`brandId`) REFERENCES `asset_brands` (`id`),\n CONSTRAINT `asset_revisions_ibfk_5` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_revisions_brand_presence` CHECK (`brandId` is null or `brandDefined` = 1),\n CONSTRAINT `asset_revisions_status` CHECK (`status` in ('operational','broken','available','in_use','maintenance','retired'))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_characteristics", + "Create Table": "CREATE TABLE `asset_revision_characteristics` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `assetId` (`assetId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_value_revision_owner` (`revisionId`,`assetId`),\n CONSTRAINT `asset_historical_field_snapshot` FOREIGN KEY (`revisionId`, `fieldId`) REFERENCES `asset_revision_specification_fields` (`revisionId`, `fieldId`),\n CONSTRAINT `asset_revision_characteristics_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_characteristics_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_characteristics_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_value_revision_owner` FOREIGN KEY (`revisionId`, `assetId`) REFERENCES `asset_revisions` (`id`, `assetId`),\n CONSTRAINT `asset_revision_characteristics_typed_value` CHECK (`valueType` in ('text','multiline','choice') and `textValue` is not null and `numberValue` is null and `booleanValue` is null and `dateValue` is null or `valueType` = 'number' and `textValue` is null and `numberValue` is not null and `booleanValue` is null and `dateValue` is null or `valueType` = 'boolean' and `textValue` is null and `numberValue` is null and `booleanValue` in (0,1) and `booleanValue` is not null and `dateValue` is null or `valueType` = 'date' and `textValue` is null and `numberValue` is null and `booleanValue` is null and `dateValue` is not null and `dateValue` regexp '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specifications", + "Create Table": "CREATE TABLE `asset_revision_specifications` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL,\n PRIMARY KEY (`revisionId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specifications_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specifications_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_choices", + "Create Table": "CREATE TABLE `asset_revision_specification_choices` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`,`position`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specification_choices_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_choices_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_fields", + "Create Table": "CREATE TABLE `asset_revision_specification_fields` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `assetId` (`assetId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_revision_specification_fields_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_fields_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_revision_specification_fields_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_revision_specification_sections", + "Create Table": "CREATE TABLE `asset_revision_specification_sections` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `asset_revision_specification_sections_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `asset_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_revision_specification_sections_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_fields", + "Create Table": "CREATE TABLE `asset_specification_fields` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`assetId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_snapshot_section` (`assetId`,`sectionId`),\n CONSTRAINT `asset_snapshot_section` FOREIGN KEY (`assetId`, `sectionId`) REFERENCES `asset_specification_sections` (`assetId`, `id`),\n CONSTRAINT `asset_specification_fields_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_specification_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_field_choices", + "Create Table": "CREATE TABLE `asset_specification_field_choices` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`assetId`,`fieldId`,`position`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `asset_specification_field_choices_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE,\n CONSTRAINT `asset_specification_field_choices_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_specification_field_choices_snapshot` FOREIGN KEY (`assetId`, `fieldId`) REFERENCES `asset_specification_fields` (`assetId`, `fieldId`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_specification_sections", + "Create Table": "CREATE TABLE `asset_specification_sections` (\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`assetId`,`id`),\n CONSTRAINT `asset_specification_sections_ibfk_1` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_support", + "Create Table": "CREATE TABLE `asset_support` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `destination` varchar(300) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `preferred` tinyint(1) NOT NULL,\n `state` varchar(12) NOT NULL,\n `notes` text NOT NULL,\n `preferredKey` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `preferredKey` (`preferredKey`),\n KEY `assetId` (`assetId`),\n KEY `support_asset_company` (`companyId`,`assetId`),\n KEY `asset_support_resource_reference` (`resourceId`),\n KEY `support_resource_company` (`companyId`,`resourceId`),\n CONSTRAINT `asset_support_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `asset_support_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `asset_support_resource_reference` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `support_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `support_resource_company` FOREIGN KEY (`companyId`, `resourceId`) REFERENCES `resources` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_support_revisions", + "Create Table": "CREATE TABLE `asset_support_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `destination` varchar(300) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `preferred` tinyint(1) NOT NULL,\n `state` varchar(12) NOT NULL,\n `notes` text NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `connectionId` (`connectionId`),\n KEY `actorId` (`actorId`),\n KEY `asset_support_revisions_resource_reference` (`resourceId`),\n CONSTRAINT `asset_support_revisions_ibfk_1` FOREIGN KEY (`connectionId`) REFERENCES `asset_support` (`id`),\n CONSTRAINT `asset_support_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `asset_support_revisions_resource_reference` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_template_fields", + "Create Table": "CREATE TABLE `asset_template_fields` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `required` tinyint(1) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_template_field_unique` (`templateId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `asset_binding_section_template` (`templateId`,`sectionId`),\n CONSTRAINT `asset_binding_section_template` FOREIGN KEY (`templateId`, `sectionId`) REFERENCES `asset_template_sections` (`templateId`, `id`),\n CONSTRAINT `asset_template_fields_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`),\n CONSTRAINT `asset_template_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "asset_template_sections", + "Create Table": "CREATE TABLE `asset_template_sections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `asset_section_template_identity` (`templateId`,`id`),\n CONSTRAINT `asset_template_sections_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `asset_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "brand_catalog_lock", + "Create Table": "CREATE TABLE `brand_catalog_lock` (\n `id` int(11) NOT NULL,\n `logosImported` tinyint(1) NOT NULL DEFAULT 0,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "certificate_configurations", + "Create Table": "CREATE TABLE `certificate_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `location` varchar(255) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `certificate_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `certificate_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `certificate_configurations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "certificate_configuration_revisions", + "Create Table": "CREATE TABLE `certificate_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `location` varchar(255) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `certificate_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `resourceId` (`resourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `certificate_configurations` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `certificate_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "companies", + "Create Table": "CREATE TABLE `companies` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `logoVersion` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_contacts", + "Create Table": "CREATE TABLE `company_contacts` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `email` varchar(254) DEFAULT NULL,\n `phone` varchar(50) DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `photoVersion` varchar(64) DEFAULT NULL,\n `isContact` tinyint(1) NOT NULL DEFAULT 1,\n PRIMARY KEY (`id`),\n UNIQUE KEY `person_company_identity_unique` (`id`,`companyId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `company_contacts_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_departments", + "Create Table": "CREATE TABLE `company_departments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `nameKey` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `department_company_identity_unique` (`id`,`companyId`),\n UNIQUE KEY `department_company_name_unique` (`companyId`,`nameKey`),\n CONSTRAINT `company_departments_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_logos", + "Create Table": "CREATE TABLE `company_logos` (\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `data` mediumblob NOT NULL,\n `version` varchar(64) NOT NULL,\n PRIMARY KEY (`companyId`),\n CONSTRAINT `company_logos_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "company_sites", + "Create Table": "CREATE TABLE `company_sites` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL DEFAULT 1,\n `address` text DEFAULT NULL,\n `phone` varchar(50) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `company_sites_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "department_assignment_revisions", + "Create Table": "CREATE TABLE `department_assignment_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assignmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sequence` int(11) NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `startDate` date NOT NULL,\n `endDate` date DEFAULT NULL,\n `isPrimary` tinyint(1) NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `assignment_revision_sequence_unique` (`assignmentId`,`sequence`),\n CONSTRAINT `department_assignment_revisions_ibfk_1` FOREIGN KEY (`assignmentId`) REFERENCES `person_department_assignments` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "folder_mappings", + "Create Table": "CREATE TABLE `folder_mappings` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accessAccountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `path` varchar(255) NOT NULL,\n `driveLetter` varchar(2) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(110) DEFAULT NULL,\n `driveKey` varchar(40) DEFAULT NULL,\n `accessAccountWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `accessAccountKind` varchar(30) NOT NULL DEFAULT 'account',\n PRIMARY KEY (`id`),\n UNIQUE KEY `folder_mapping_company_scope` (`id`,`companyId`),\n UNIQUE KEY `currentKey` (`currentKey`),\n UNIQUE KEY `driveKey` (`driveKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `needId` (`needId`),\n KEY `folder_account_item` (`accessAccountId`,`accessAccountWorkspaceId`,`accessAccountKind`),\n KEY `folder_account_company` (`accessAccountWorkspaceId`,`companyId`),\n CONSTRAINT `folder_account_company` FOREIGN KEY (`accessAccountWorkspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `folder_account_item` FOREIGN KEY (`accessAccountId`, `accessAccountWorkspaceId`, `accessAccountKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `folder_mappings_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `folder_mappings_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `folder_mappings_ibfk_3` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mappings_ibfk_4` FOREIGN KEY (`accessAccountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_account_kind` CHECK (`accessAccountKind` = 'account'),\n CONSTRAINT `folder_account_nullable` CHECK (`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "folder_mapping_revisions", + "Create Table": "CREATE TABLE `folder_mapping_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `mappingId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `needId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accessAccountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `path` varchar(255) NOT NULL,\n `driveLetter` varchar(2) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `accessAccountWorkspaceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `accessAccountKind` varchar(30) NOT NULL DEFAULT 'account',\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `folder_mapping_position` (`mappingId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `needId` (`needId`),\n KEY `actorId` (`actorId`),\n KEY `folder_revision_account_item` (`accessAccountId`,`accessAccountWorkspaceId`,`accessAccountKind`),\n KEY `folder_revision_account_company` (`accessAccountWorkspaceId`,`companyId`),\n KEY `folder_revision_account_mapping` (`mappingId`,`companyId`),\n CONSTRAINT `folder_mapping_revisions_ibfk_1` FOREIGN KEY (`mappingId`) REFERENCES `folder_mappings` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_3` FOREIGN KEY (`needId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_4` FOREIGN KEY (`accessAccountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `folder_mapping_revisions_ibfk_5` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `folder_revision_account_company` FOREIGN KEY (`accessAccountWorkspaceId`, `companyId`) REFERENCES `access_workspaces` (`id`, `companyId`),\n CONSTRAINT `folder_revision_account_item` FOREIGN KEY (`accessAccountId`, `accessAccountWorkspaceId`, `accessAccountKind`) REFERENCES `access_items` (`id`, `workspaceId`, `kind`),\n CONSTRAINT `folder_revision_account_mapping` FOREIGN KEY (`mappingId`, `companyId`) REFERENCES `folder_mappings` (`id`, `companyId`),\n CONSTRAINT `folder_revision_account_kind` CHECK (`accessAccountKind` = 'account'),\n CONSTRAINT `folder_revision_account_nullable` CHECK (`accessAccountId` is null and `accessAccountWorkspaceId` is null or `accessAccountId` is not null and `accessAccountWorkspaceId` is not null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "http_sessions", + "Create Table": "CREATE TABLE `http_sessions` (\n `sid` varchar(36) NOT NULL,\n `expires` datetime DEFAULT NULL,\n `userId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `authVersion` int(11) DEFAULT NULL,\n `csrfToken` varchar(128) DEFAULT NULL,\n `cookieExpires` varchar(30) DEFAULT NULL,\n `originalMaxAge` bigint(20) DEFAULT NULL,\n `cookiePath` varchar(255) DEFAULT NULL,\n `cookieDomain` varchar(255) DEFAULT NULL,\n `cookieSecure` varchar(10) DEFAULT NULL,\n `cookieHttpOnly` tinyint(1) DEFAULT NULL,\n `cookieSameSite` varchar(10) DEFAULT NULL,\n `cookiePartitioned` tinyint(1) DEFAULT NULL,\n `cookiePriority` varchar(10) DEFAULT NULL,\n `createdAt` datetime NOT NULL,\n `updatedAt` datetime NOT NULL,\n PRIMARY KEY (`sid`),\n KEY `userId` (`userId`),\n KEY `http_sessions_expires` (`expires`),\n CONSTRAINT `http_sessions_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `users` (`id`) ON DELETE SET NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "identity_state", + "Create Table": "CREATE TABLE `identity_state` (\n `id` int(11) NOT NULL,\n `initialAdminId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `initialAdminId` (`initialAdminId`),\n CONSTRAINT `identity_state_ibfk_1` FOREIGN KEY (`initialAdminId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_department_assignments", + "Create Table": "CREATE TABLE `person_department_assignments` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `departmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` varchar(100) DEFAULT NULL,\n `startDate` date NOT NULL,\n `endDate` date DEFAULT NULL,\n `isPrimary` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n KEY `assignment_person_company_fk` (`personId`,`companyId`),\n KEY `assignment_department_company_fk` (`departmentId`,`companyId`),\n CONSTRAINT `assignment_department_company_fk` FOREIGN KEY (`departmentId`, `companyId`) REFERENCES `company_departments` (`id`, `companyId`),\n CONSTRAINT `assignment_person_company_fk` FOREIGN KEY (`personId`, `companyId`) REFERENCES `company_contacts` (`id`, `companyId`),\n CONSTRAINT `person_department_assignments_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_photos", + "Create Table": "CREATE TABLE `person_photos` (\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `data` mediumblob NOT NULL,\n `version` varchar(64) NOT NULL,\n `createdAt` datetime NOT NULL,\n `updatedAt` datetime NOT NULL,\n PRIMARY KEY (`personId`),\n KEY `person_photos_person_fk` (`personId`,`companyId`),\n CONSTRAINT `person_photos_person_fk` FOREIGN KEY (`personId`, `companyId`) REFERENCES `company_contacts` (`id`, `companyId`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_processes", + "Create Table": "CREATE TABLE `person_processes` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `name` varchar(160) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `currentKey` varchar(100) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `personId` (`personId`),\n KEY `templateId` (`templateId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `person_processes_ibfk_1` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `person_processes_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `process_templates` (`id`),\n CONSTRAINT `person_processes_ibfk_3` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_revisions", + "Create Table": "CREATE TABLE `person_process_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `name` varchar(160) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `person_process_revisions_position` (`itemId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `person_process_revisions_ibfk_1` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_3` FOREIGN KEY (`templateId`) REFERENCES `process_templates` (`id`),\n CONSTRAINT `person_process_revisions_ibfk_4` FOREIGN KEY (`itemId`) REFERENCES `person_processes` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_revision_tasks", + "Create Table": "CREATE TABLE `person_process_revision_tasks` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n `taskId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `status` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `referenceKind` varchar(20) DEFAULT NULL,\n `referenceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceLabel` varchar(500) DEFAULT NULL,\n `sourceKind` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`,`taskId`),\n UNIQUE KEY `person_process_revision_tasks_position` (`ownerId`,`position`),\n CONSTRAINT `person_process_revision_tasks_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `person_process_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "person_process_tasks", + "Create Table": "CREATE TABLE `person_process_tasks` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n `taskId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `status` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `referenceKind` varchar(20) DEFAULT NULL,\n `referenceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceLabel` varchar(500) DEFAULT NULL,\n `sourceKind` varchar(20) DEFAULT NULL,\n PRIMARY KEY (`ownerId`,`taskId`),\n UNIQUE KEY `person_process_tasks_position` (`ownerId`,`position`),\n CONSTRAINT `person_process_tasks_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `person_processes` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "printer_configurations", + "Create Table": "CREATE TABLE `printer_configurations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `printerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connection` varchar(16) NOT NULL,\n `isDefault` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n `defaultKey` varchar(40) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n UNIQUE KEY `defaultKey` (`defaultKey`),\n KEY `companyId` (`companyId`),\n KEY `profileId` (`profileId`),\n KEY `printerId` (`printerId`),\n CONSTRAINT `printer_configurations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `printer_configurations_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `printer_configurations_ibfk_3` FOREIGN KEY (`printerId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "printer_configuration_revisions", + "Create Table": "CREATE TABLE `printer_configuration_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `printerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connection` varchar(16) NOT NULL,\n `isDefault` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `printer_configuration_position` (`configurationId`,`position`),\n KEY `profileId` (`profileId`),\n KEY `printerId` (`printerId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `printer_configuration_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `printer_configurations` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_2` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_3` FOREIGN KEY (`printerId`) REFERENCES `assets` (`id`),\n CONSTRAINT `printer_configuration_revisions_ibfk_4` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_catalog_lock", + "Create Table": "CREATE TABLE `process_catalog_lock` (\n `id` int(11) NOT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_templates", + "Create Table": "CREATE TABLE `process_templates` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `nameKey` varchar(160) NOT NULL,\n `builtinKey` varchar(30) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `nameKey` (`nameKey`),\n UNIQUE KEY `builtinKey` (`builtinKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_instructions", + "Create Table": "CREATE TABLE `process_template_instructions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `process_template_instructions_position` (`ownerId`,`position`),\n CONSTRAINT `process_template_instructions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `process_templates` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_revisions", + "Create Table": "CREATE TABLE `process_template_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `name` varchar(160) NOT NULL,\n `kind` varchar(20) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `itemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `process_template_revisions_position` (`itemId`,`position`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `process_template_revisions_ibfk_1` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `process_template_revisions_ibfk_2` FOREIGN KEY (`itemId`) REFERENCES `process_templates` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "process_template_revision_instructions", + "Create Table": "CREATE TABLE `process_template_revision_instructions` (\n `ownerId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `title` varchar(160) NOT NULL,\n PRIMARY KEY (`ownerId`,`position`),\n UNIQUE KEY `process_template_revision_instructions_position` (`ownerId`,`position`),\n CONSTRAINT `process_template_revision_instructions_ibfk_1` FOREIGN KEY (`ownerId`) REFERENCES `process_template_revisions` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "remote_connections", + "Create Table": "CREATE TABLE `remote_connections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceKind` varchar(20) NOT NULL,\n `sourceAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetKind` varchar(16) NOT NULL,\n `targetAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `method` varchar(80) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(64) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n KEY `sourceAssetId` (`sourceAssetId`),\n KEY `targetAssetId` (`targetAssetId`),\n KEY `targetResourceId` (`targetResourceId`),\n KEY `siteId` (`siteId`),\n CONSTRAINT `remote_connections_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `remote_connections_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `remote_connections_ibfk_3` FOREIGN KEY (`sourceAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connections_ibfk_4` FOREIGN KEY (`targetAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connections_ibfk_5` FOREIGN KEY (`targetResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `remote_connections_ibfk_6` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `remote_connections_snapshot_shape` CHECK ((`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "remote_connection_revisions", + "Create Table": "CREATE TABLE `remote_connection_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `connectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `sourceKind` varchar(20) NOT NULL,\n `sourceAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetKind` varchar(16) NOT NULL,\n `targetAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `targetResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `method` varchar(80) NOT NULL,\n `requiresVpn` tinyint(1) NOT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `remote_revision_position` (`connectionId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `sourceAssetId` (`sourceAssetId`),\n KEY `targetAssetId` (`targetAssetId`),\n KEY `targetResourceId` (`targetResourceId`),\n KEY `siteId` (`siteId`),\n CONSTRAINT `remote_connection_revisions_ibfk_1` FOREIGN KEY (`connectionId`) REFERENCES `remote_connections` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_4` FOREIGN KEY (`sourceAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_5` FOREIGN KEY (`targetAssetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_6` FOREIGN KEY (`targetResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `remote_connection_revisions_ibfk_7` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `remote_connection_revisions_snapshot_shape` CHECK ((`sourceKind` = 'company_asset' and `sourceAssetId` is not null or `sourceKind` in ('personal_computer','personal_mobile') and `sourceAssetId` is null) and (`targetKind` = 'network' and `targetAssetId` is null and `targetResourceId` is null or `targetKind` = 'asset' and `targetAssetId` is not null and `targetResourceId` is null and `siteId` is null and (`sourceAssetId` is null or `sourceAssetId` <> `targetAssetId`) or `targetKind` = 'resource' and `targetResourceId` is not null and `targetAssetId` is null and `siteId` is null))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resources", + "Create Table": "CREATE TABLE `resources` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `integrationKind` varchar(10) DEFAULT NULL,\n `addressFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `contextFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `mailboxKind` varchar(10) DEFAULT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `scope` varchar(7) CHARACTER SET ascii COLLATE ascii_bin NOT NULL DEFAULT 'company',\n PRIMARY KEY (`id`),\n UNIQUE KEY `directory_resource_scope_template` (`id`,`companyId`,`templateId`),\n UNIQUE KEY `resource_company_identity` (`companyId`,`id`),\n KEY `templateId` (`templateId`),\n KEY `addressFieldId` (`addressFieldId`),\n KEY `contextFieldId` (`contextFieldId`),\n KEY `accountId` (`accountId`),\n KEY `referenceFieldId` (`referenceFieldId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n CONSTRAINT `resources_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `resources_ibfk_2` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_3` FOREIGN KEY (`addressFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_4` FOREIGN KEY (`contextFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_6` FOREIGN KEY (`referenceFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resources_ibfk_7` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_8` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resources_ibfk_9` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_scope_owner` CHECK (`scope` = 'company' and char_length(`scope`) = 7 and `companyId` is not null or `scope` = 'global' and char_length(`scope`) = 6 and `companyId` is null),\n CONSTRAINT `resource_global_no_integration` CHECK (`scope` = 'company' or `integrationKind` is null and `addressFieldId` is null and `contextFieldId` is null and `mailboxKind` is null and `accountId` is null and `referenceFieldId` is null and `resourceTypeId` is null and `systemId` is null and `environmentId` is null)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_availability", + "Create Table": "CREATE TABLE `resource_availability` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `definitionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_company_availability_unique` (`companyId`,`definitionId`),\n KEY `catalogId` (`catalogId`),\n KEY `definitionId` (`definitionId`),\n CONSTRAINT `resource_availability_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `resource_catalogs` (`id`),\n CONSTRAINT `resource_availability_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `resource_availability_ibfk_3` FOREIGN KEY (`definitionId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_catalogs", + "Create Table": "CREATE TABLE `resource_catalogs` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogKey` varchar(20) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `catalogKey` (`catalogKey`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_characteristics", + "Create Table": "CREATE TABLE `resource_characteristics` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_characteristics_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_characteristics_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_definitions", + "Create Table": "CREATE TABLE `resource_definitions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `catalogId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `stockKey` varchar(100) DEFAULT NULL,\n `kind` varchar(12) NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `icon` varchar(30) DEFAULT NULL,\n `fieldType` varchar(12) DEFAULT NULL,\n `unit` varchar(30) DEFAULT NULL,\n `usage` varchar(15) DEFAULT NULL,\n `sectionsDefined` tinyint(1) NOT NULL DEFAULT 0,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `stockKey` (`stockKey`),\n UNIQUE KEY `directory_template_key` (`id`,`stockKey`),\n KEY `catalogId` (`catalogId`),\n KEY `companyId` (`companyId`),\n CONSTRAINT `resource_definitions_ibfk_1` FOREIGN KEY (`catalogId`) REFERENCES `resource_catalogs` (`id`),\n CONSTRAINT `resource_definitions_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_directory_domains", + "Create Table": "CREATE TABLE `resource_directory_domains` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateKey` varchar(100) NOT NULL DEFAULT 'template:windows_domain',\n `normalizedDns` varchar(253) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `associatedBy` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `associatedAt` varchar(30) NOT NULL,\n PRIMARY KEY (`resourceId`),\n UNIQUE KEY `directory_dns_company` (`companyId`,`normalizedDns`),\n UNIQUE KEY `directory_environment_unique` (`environmentId`),\n UNIQUE KEY `directory_resource_company` (`resourceId`,`companyId`),\n KEY `directory_resource` (`resourceId`,`companyId`,`templateId`),\n KEY `directory_template` (`templateId`,`templateKey`),\n KEY `directory_context` (`environmentId`,`companyId`),\n KEY `directory_association_actor` (`associatedBy`),\n CONSTRAINT `directory_association_actor` FOREIGN KEY (`associatedBy`) REFERENCES `users` (`id`),\n CONSTRAINT `directory_context` FOREIGN KEY (`environmentId`, `companyId`) REFERENCES `access_directory_environments` (`environmentId`, `companyId`),\n CONSTRAINT `directory_resource` FOREIGN KEY (`resourceId`, `companyId`, `templateId`) REFERENCES `resources` (`id`, `companyId`, `templateId`),\n CONSTRAINT `directory_template` FOREIGN KEY (`templateId`, `templateKey`) REFERENCES `resource_definitions` (`id`, `stockKey`),\n CONSTRAINT `directory_template_semantics` CHECK (`templateKey` = 'template:windows_domain'),\n CONSTRAINT `directory_dns_not_empty` CHECK (char_length(`normalizedDns`) > 0),\n CONSTRAINT `directory_dns_canonical` CHECK (`normalizedDns` = lcase(`normalizedDns`) and octet_length(`normalizedDns`) = octet_length(trim(`normalizedDns`)) and right(`normalizedDns`,1) <> '.')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_field_choices", + "Create Table": "CREATE TABLE `resource_field_choices` (\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`fieldId`,`position`),\n CONSTRAINT `resource_field_choices_ibfk_1` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_network_shares", + "Create Table": "CREATE TABLE `resource_network_shares` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateKey` varchar(100) NOT NULL DEFAULT 'template:shared_folder',\n `protocol` varchar(10) NOT NULL DEFAULT 'smb',\n `normalizedAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `activeAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`resourceId`),\n UNIQUE KEY `network_share_company` (`resourceId`,`companyId`),\n UNIQUE KEY `network_share_active_address` (`companyId`,`activeAddress`),\n KEY `network_share_resource` (`resourceId`,`companyId`,`templateId`),\n KEY `network_share_definition` (`templateId`,`templateKey`),\n CONSTRAINT `network_share_definition` FOREIGN KEY (`templateId`, `templateKey`) REFERENCES `resource_definitions` (`id`, `stockKey`),\n CONSTRAINT `network_share_resource` FOREIGN KEY (`resourceId`, `companyId`, `templateId`) REFERENCES `resources` (`id`, `companyId`, `templateId`),\n CONSTRAINT `network_share_protocol` CHECK (`protocol` = 'smb'),\n CONSTRAINT `network_share_template` CHECK (`templateKey` = 'template:shared_folder'),\n CONSTRAINT `network_share_address` CHECK (char_length(`normalizedAddress`) > 0),\n CONSTRAINT `network_share_active` CHECK (`activeAddress` is null or cast(`activeAddress` as char charset binary) = cast(`normalizedAddress` as char charset binary))\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revisions", + "Create Table": "CREATE TABLE `resource_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text NOT NULL,\n `integrationKind` varchar(10) DEFAULT NULL,\n `addressFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `contextFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `mailboxKind` varchar(10) DEFAULT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `referenceFieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `resourceTypeId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `systemId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `environmentId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_revision_position_unique` (`resourceId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `addressFieldId` (`addressFieldId`),\n KEY `contextFieldId` (`contextFieldId`),\n KEY `accountId` (`accountId`),\n KEY `referenceFieldId` (`referenceFieldId`),\n KEY `resourceTypeId` (`resourceTypeId`),\n KEY `systemId` (`systemId`),\n KEY `environmentId` (`environmentId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `resource_revisions_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `resource_revisions_ibfk_10` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `resource_revisions_ibfk_3` FOREIGN KEY (`addressFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_4` FOREIGN KEY (`contextFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_6` FOREIGN KEY (`referenceFieldId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_revisions_ibfk_7` FOREIGN KEY (`resourceTypeId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_8` FOREIGN KEY (`systemId`) REFERENCES `access_items` (`id`),\n CONSTRAINT `resource_revisions_ibfk_9` FOREIGN KEY (`environmentId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_characteristics", + "Create Table": "CREATE TABLE `resource_revision_characteristics` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `valueType` varchar(12) NOT NULL,\n `textValue` text DEFAULT NULL,\n `numberValue` double DEFAULT NULL,\n `booleanValue` tinyint(1) DEFAULT NULL,\n `dateValue` date DEFAULT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `resourceId` (`resourceId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_revision_characteristics_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_characteristics_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_characteristics_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specifications", + "Create Table": "CREATE TABLE `resource_revision_specifications` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateName` varchar(100) NOT NULL,\n `sectionsDefined` tinyint(1) NOT NULL,\n PRIMARY KEY (`revisionId`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specifications_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specifications_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_choices", + "Create Table": "CREATE TABLE `resource_revision_specification_choices` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`,`position`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specification_choices_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_choices_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_fields", + "Create Table": "CREATE TABLE `resource_revision_specification_fields` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`fieldId`),\n KEY `resourceId` (`resourceId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_revision_specification_fields_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_fields_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `resource_revision_specification_fields_ibfk_3` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_revision_specification_sections", + "Create Table": "CREATE TABLE `resource_revision_specification_sections` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`id`),\n KEY `resourceId` (`resourceId`),\n CONSTRAINT `resource_revision_specification_sections_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `resource_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_revision_specification_sections_ibfk_2` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_fields", + "Create Table": "CREATE TABLE `resource_specification_fields` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `fieldType` varchar(12) NOT NULL,\n `unit` varchar(30) NOT NULL,\n `required` tinyint(1) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_specification_fields_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_specification_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_field_choices", + "Create Table": "CREATE TABLE `resource_specification_field_choices` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `value` varchar(100) NOT NULL,\n PRIMARY KEY (`resourceId`,`fieldId`,`position`),\n KEY `fieldId` (`fieldId`),\n CONSTRAINT `resource_specification_field_choices_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE,\n CONSTRAINT `resource_specification_field_choices_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_specification_sections", + "Create Table": "CREATE TABLE `resource_specification_sections` (\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`resourceId`,`id`),\n CONSTRAINT `resource_specification_sections_ibfk_1` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`) ON DELETE CASCADE\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_template_fields", + "Create Table": "CREATE TABLE `resource_template_fields` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `fieldId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `required` tinyint(1) NOT NULL,\n `position` int(11) NOT NULL,\n `sectionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `resource_template_field_unique` (`templateId`,`fieldId`),\n KEY `fieldId` (`fieldId`),\n KEY `resource_template_field_section` (`templateId`,`sectionId`),\n CONSTRAINT `resource_template_field_section` FOREIGN KEY (`templateId`, `sectionId`) REFERENCES `resource_template_sections` (`templateId`, `id`),\n CONSTRAINT `resource_template_fields_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`),\n CONSTRAINT `resource_template_fields_ibfk_2` FOREIGN KEY (`fieldId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "resource_template_sections", + "Create Table": "CREATE TABLE `resource_template_sections` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `templateId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `description` text NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`,`templateId`),\n KEY `templateId` (`templateId`),\n CONSTRAINT `resource_template_sections_ibfk_1` FOREIGN KEY (`templateId`) REFERENCES `resource_definitions` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "software_installations", + "Create Table": "CREATE TABLE `software_installations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `licenseResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `assetId` (`assetId`),\n KEY `resourceId` (`resourceId`),\n KEY `licenseResourceId` (`licenseResourceId`),\n CONSTRAINT `software_installations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `software_installations_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `software_installations_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installations_ibfk_4` FOREIGN KEY (`licenseResourceId`) REFERENCES `resources` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "software_installation_revisions", + "Create Table": "CREATE TABLE `software_installation_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `configurationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `resourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `licenseResourceId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `version` varchar(100) DEFAULT NULL,\n `state` varchar(20) NOT NULL,\n `notes` text DEFAULT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `software_installation_position` (`configurationId`,`position`),\n KEY `assetId` (`assetId`),\n KEY `resourceId` (`resourceId`),\n KEY `licenseResourceId` (`licenseResourceId`),\n KEY `actorId` (`actorId`),\n CONSTRAINT `software_installation_revisions_ibfk_1` FOREIGN KEY (`configurationId`) REFERENCES `software_installations` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_3` FOREIGN KEY (`resourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_4` FOREIGN KEY (`licenseResourceId`) REFERENCES `resources` (`id`),\n CONSTRAINT `software_installation_revisions_ibfk_5` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "telework_authorizations", + "Create Table": "CREATE TABLE `telework_authorizations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n `startsOn` varchar(10) DEFAULT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n CONSTRAINT `telework_authorizations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `telework_authorizations_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "telework_authorization_revisions", + "Create Table": "CREATE TABLE `telework_authorization_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `authorizationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `active` tinyint(1) NOT NULL,\n `startsOn` varchar(10) DEFAULT NULL,\n `expiresOn` varchar(10) DEFAULT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `telework_revision_position` (`authorizationId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n CONSTRAINT `telework_authorization_revisions_ibfk_1` FOREIGN KEY (`authorizationId`) REFERENCES `telework_authorizations` (`id`),\n CONSTRAINT `telework_authorization_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `telework_authorization_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "users", + "Create Table": "CREATE TABLE `users` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `email` varchar(254) NOT NULL,\n `passwordHash` varchar(256) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `isInitialAdmin` tinyint(1) NOT NULL,\n `authVersion` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `email` (`email`),\n CONSTRAINT `initial_admin_active` CHECK (`isInitialAdmin` = 0 or `active` = 1)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstations", + "Create Table": "CREATE TABLE `workstations` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `computerAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `workstations_company_identity` (`companyId`,`id`),\n KEY `siteId` (`siteId`),\n KEY `personId` (`personId`),\n KEY `computerAssetId` (`computerAssetId`),\n CONSTRAINT `workstations_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `workstations_ibfk_2` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `workstations_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `workstations_ibfk_4` FOREIGN KEY (`computerAssetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_assets", + "Create Table": "CREATE TABLE `workstation_assets` (\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `activeKey` varchar(80) DEFAULT NULL,\n PRIMARY KEY (`workstationId`,`assetId`),\n UNIQUE KEY `activeKey` (`activeKey`),\n KEY `assetId` (`assetId`),\n KEY `workstation_asset_company` (`companyId`,`assetId`),\n KEY `workstation_owner_company` (`companyId`,`workstationId`),\n CONSTRAINT `workstation_asset_company` FOREIGN KEY (`companyId`, `assetId`) REFERENCES `assets` (`companyId`, `id`),\n CONSTRAINT `workstation_assets_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`),\n CONSTRAINT `workstation_assets_ibfk_2` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `workstation_assets_ibfk_3` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `workstation_owner_company` FOREIGN KEY (`companyId`, `workstationId`) REFERENCES `workstations` (`companyId`, `id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_members", + "Create Table": "CREATE TABLE `workstation_members` (\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(10) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`workstationId`,`assetId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `workstation_members_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`) ON DELETE CASCADE,\n CONSTRAINT `workstation_members_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_revisions", + "Create Table": "CREATE TABLE `workstation_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `workstationId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `siteId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `computerAssetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `name` varchar(100) NOT NULL,\n `active` tinyint(1) NOT NULL,\n `recordedAt` varchar(30) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`id`),\n KEY `workstationId` (`workstationId`),\n KEY `actorId` (`actorId`),\n KEY `siteId` (`siteId`),\n KEY `personId` (`personId`),\n KEY `computerAssetId` (`computerAssetId`),\n CONSTRAINT `workstation_revisions_ibfk_1` FOREIGN KEY (`workstationId`) REFERENCES `workstations` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_3` FOREIGN KEY (`siteId`) REFERENCES `company_sites` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_4` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `workstation_revisions_ibfk_5` FOREIGN KEY (`computerAssetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "workstation_revision_members", + "Create Table": "CREATE TABLE `workstation_revision_members` (\n `revisionId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `kind` varchar(10) NOT NULL,\n `position` int(11) NOT NULL,\n PRIMARY KEY (`revisionId`,`assetId`),\n KEY `assetId` (`assetId`),\n CONSTRAINT `workstation_revision_members_ibfk_1` FOREIGN KEY (`revisionId`) REFERENCES `workstation_revisions` (`id`) ON DELETE CASCADE,\n CONSTRAINT `workstation_revision_members_ibfk_2` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "work_profiles", + "Create Table": "CREATE TABLE `work_profiles` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `companyId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `name` varchar(100) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n `currentKey` varchar(110) DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `currentKey` (`currentKey`),\n KEY `companyId` (`companyId`),\n KEY `personId` (`personId`),\n KEY `assetId` (`assetId`),\n KEY `accountId` (`accountId`),\n CONSTRAINT `work_profiles_ibfk_1` FOREIGN KEY (`companyId`) REFERENCES `companies` (`id`),\n CONSTRAINT `work_profiles_ibfk_2` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `work_profiles_ibfk_3` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `work_profiles_ibfk_4` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + }, + { + "Table": "work_profile_revisions", + "Create Table": "CREATE TABLE `work_profile_revisions` (\n `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `profileId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `position` int(11) NOT NULL,\n `actorId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `recordedAt` varchar(24) NOT NULL,\n `name` varchar(100) NOT NULL,\n `personId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `assetId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,\n `accountId` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,\n `active` tinyint(1) NOT NULL,\n `notes` text DEFAULT NULL,\n PRIMARY KEY (`id`),\n UNIQUE KEY `profile_revision_position` (`profileId`,`position`),\n KEY `actorId` (`actorId`),\n KEY `personId` (`personId`),\n KEY `assetId` (`assetId`),\n KEY `accountId` (`accountId`),\n CONSTRAINT `work_profile_revisions_ibfk_1` FOREIGN KEY (`profileId`) REFERENCES `work_profiles` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_2` FOREIGN KEY (`actorId`) REFERENCES `users` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_3` FOREIGN KEY (`personId`) REFERENCES `company_contacts` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_4` FOREIGN KEY (`assetId`) REFERENCES `assets` (`id`),\n CONSTRAINT `work_profile_revisions_ibfk_5` FOREIGN KEY (`accountId`) REFERENCES `access_items` (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci" + } + ], + "migration": { + "mode": "scoped", + "completed": [ + "scope", + "ownerCheck", + "integrationCheck", + "nullableOwner" + ] + }, + "repeatedMigration": "no changes", + "connection": { + "database": "metis_desk_test", + "host": "127.0.0.1", + "disposable": true + }, + "engines": [ + { + "TABLE_NAME": "access_account_person_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_person_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_account_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_coverage_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_coverage_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_current_values", + "ENGINE": null + }, + { + "TABLE_NAME": "access_directory_environments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_directory_systems", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_environment_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_environment_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_grant_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_grant_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_group_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_group_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_historical_values", + "ENGINE": null + }, + { + "TABLE_NAME": "access_items", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_local_identity_environments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_membership_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_membership_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_permissions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_revision_permissions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_need_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_permission_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_permission_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_person_references", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_references", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_type_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_type_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_resource_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_system_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_system_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_template_revision_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_template_values", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "access_workspaces", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "application_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "application_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "assets", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_availability", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_brands", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_catalogs", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_definitions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_directory_memberships", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_directory_membership_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_infrastructure_roles", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_interface_address_snapshots", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_interface_snapshots", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_network_share_publications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_relationships", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specifications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_revision_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_support", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_support_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_template_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "asset_template_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "brand_catalog_lock", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "certificate_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "certificate_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "companies", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_contacts", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_departments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_logos", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "company_sites", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "department_assignment_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "folder_mappings", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "folder_mapping_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "http_sessions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "identity_state", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_department_assignments", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_photos", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_processes", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_revision_tasks", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "person_process_tasks", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "printer_configurations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "printer_configuration_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_catalog_lock", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_templates", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_instructions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "process_template_revision_instructions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "remote_connections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "remote_connection_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resources", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_availability", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_catalogs", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_definitions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_directory_domains", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_network_shares", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_characteristics", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specifications", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_revision_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_field_choices", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_specification_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_template_fields", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "resource_template_sections", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "software_installations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "software_installation_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "telework_authorizations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "telework_authorization_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "users", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstations", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_assets", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_members", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_revisions", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "workstation_revision_members", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "work_profiles", + "ENGINE": "InnoDB" + }, + { + "TABLE_NAME": "work_profile_revisions", + "ENGINE": "InnoDB" + } + ] +} \ No newline at end of file diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-asset-current-os.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-asset-current-os.png new file mode 100644 index 00000000..c1fe5827 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-asset-current-os.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1280.png new file mode 100644 index 00000000..2a0d6b9d Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1600.png new file mode 100644 index 00000000..ddbf849e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-320.png new file mode 100644 index 00000000..f0fb72d4 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-390.png new file mode 100644 index 00000000..3753f9a8 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-768.png new file mode 100644 index 00000000..24d07a00 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1280.png new file mode 100644 index 00000000..0a74a403 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1600.png new file mode 100644 index 00000000..8ed0f94e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-320.png new file mode 100644 index 00000000..4db38d1f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-390.png new file mode 100644 index 00000000..0b2cbc5f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-768.png new file mode 100644 index 00000000..51f97e75 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-asset-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1280.png new file mode 100644 index 00000000..accf599a Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1600.png new file mode 100644 index 00000000..d6e767d5 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-320.png new file mode 100644 index 00000000..6a9596c4 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-390.png new file mode 100644 index 00000000..ccfaf0df Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-768.png new file mode 100644 index 00000000..5386d884 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1280.png new file mode 100644 index 00000000..9e7bd54c Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1600.png new file mode 100644 index 00000000..2a344423 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-320.png new file mode 100644 index 00000000..26dfbb3f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-390.png new file mode 100644 index 00000000..76a38cfc Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-768.png new file mode 100644 index 00000000..7695ad82 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-editor-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-english-editor.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-english-editor.png new file mode 100644 index 00000000..b1bca7c3 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-english-editor.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1280.png new file mode 100644 index 00000000..318cb55d Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1600.png new file mode 100644 index 00000000..a37ada20 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-320.png new file mode 100644 index 00000000..a18e3ee8 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-390.png new file mode 100644 index 00000000..f7fb550f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-768.png new file mode 100644 index 00000000..99c58fd4 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1280.png new file mode 100644 index 00000000..1c9f6f8d Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1600.png new file mode 100644 index 00000000..67d2c24e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-320.png new file mode 100644 index 00000000..b3dbab46 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-390.png new file mode 100644 index 00000000..972ff6bb Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-768.png new file mode 100644 index 00000000..74537a2f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-history-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1280.png new file mode 100644 index 00000000..101b9c3f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1600.png new file mode 100644 index 00000000..b51fa82e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-320.png new file mode 100644 index 00000000..1671cf1e Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-390.png new file mode 100644 index 00000000..48ce8f5a Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-768.png new file mode 100644 index 00000000..7f96f64f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1280.png new file mode 100644 index 00000000..1eecf1a6 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1600.png new file mode 100644 index 00000000..bd2b39e9 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-320.png new file mode 100644 index 00000000..3f2377a8 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-390.png new file mode 100644 index 00000000..6b91fb93 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-768.png new file mode 100644 index 00000000..f2a562ae Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-menu-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-version-updated.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-version-updated.png new file mode 100644 index 00000000..3d620bca Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-consumer-version-updated.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-create-review.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-create-review.png new file mode 100644 index 00000000..d8235cca Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-create-review.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-created-detail.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-created-detail.png new file mode 100644 index 00000000..c4f5d824 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-created-detail.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-empty.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-empty.png new file mode 100644 index 00000000..c2ac7786 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-empty.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-english-form.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-english-form.png new file mode 100644 index 00000000..832176d0 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-english-form.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-identity-error.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-identity-error.png new file mode 100644 index 00000000..ef617199 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-identity-error.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-installation-history-global-link.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-installation-history-global-link.png new file mode 100644 index 00000000..246fb357 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-installation-history-global-link.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1024.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1024.png new file mode 100644 index 00000000..f336f0c1 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1024.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1280.png new file mode 100644 index 00000000..3c485429 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1600.png new file mode 100644 index 00000000..8a25f90c Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-320.png new file mode 100644 index 00000000..e1d3edc7 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-390.png new file mode 100644 index 00000000..247886c2 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-768.png new file mode 100644 index 00000000..ab677aac Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-dark-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-error.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-error.png new file mode 100644 index 00000000..8ae9b9eb Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-error.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1024.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1024.png new file mode 100644 index 00000000..8db4e307 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1024.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1280.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1280.png new file mode 100644 index 00000000..d95c3cfe Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1280.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1600.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1600.png new file mode 100644 index 00000000..b1e529a8 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-1600.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-320.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-320.png new file mode 100644 index 00000000..5e59f665 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-320.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-390.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-390.png new file mode 100644 index 00000000..a69815d9 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-390.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-768.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-768.png new file mode 100644 index 00000000..8e0a4855 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-light-768.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-loading.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-loading.png new file mode 100644 index 00000000..0e28f165 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-list-loading.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mixed-picker.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mixed-picker.png new file mode 100644 index 00000000..390605db Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mixed-picker.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mobile-form.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mobile-form.png new file mode 100644 index 00000000..aee39c87 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-mobile-form.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-no-results.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-no-results.png new file mode 100644 index 00000000..24b64e9f Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-no-results.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-ordinary-detail.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-ordinary-detail.png new file mode 100644 index 00000000..f73319e1 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-ordinary-detail.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workplace-map-global-os.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workplace-map-global-os.png new file mode 100644 index 00000000..43ae0799 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workplace-map-global-os.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workstation-current-os.png b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workstation-current-os.png new file mode 100644 index 00000000..f7714997 Binary files /dev/null and b/.artifacts/resources-global-operating-systems-unblock/playwright/global-os-workstation-current-os.png differ diff --git a/.artifacts/resources-global-operating-systems-unblock/playwright/report.json b/.artifacts/resources-global-operating-systems-unblock/playwright/report.json new file mode 100644 index 00000000..47356515 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/playwright/report.json @@ -0,0 +1,904 @@ +{ + "checks": [ + "empty-catalog", + "identity-fields", + "known-edition", + "review-required", + "identity-review-invalidation", + "create-in-browser", + "history", + "server-rejects-product-transformation-form-preserved", + "dialog-focus-return", + "51-global-products", + "cursor-pagination", + "search-empty-recovery", + "computed-text-contrast-light", + "list-light-320-390-768-1024-1280-1600", + "computed-text-contrast-dark", + "list-dark-320-390-768-1024-1280-1600", + "mobile-form-keyboard-close", + "transport-error-retry", + "initial-loading", + "inactive-draft-in-browser", + "english-form-labels-edition-options", + "ordinary-public-projection", + "asset-global-os-navigation", + "installation-panel-and-history-global-os-navigation", + "workstation-global-os-navigation", + "map-click-opens-global-os-detail", + "map-equipment-pointer-navigation", + "mixed-picker-global-local-no-replacement", + "consumer-asset-workstation-light-dark-320-390-768-1280-1600", + "map-global-os-menu-keyboard", + "map-installation-history-global-reference", + "map-installation-editor-tab-escape-focus", + "version-save-refreshes-workstation", + "version-refreshes-asset-local-navigation-preserved", + "consumer-english-menu-editor" + ], + "screenshots": [ + { + "file": "global-os-empty.png", + "sha256": "945bc2240b0a97430856bc635f0db4c84217d4264c57e9fddbb1cfff9e5d803e" + }, + { + "file": "global-os-create-review.png", + "sha256": "8fa14c0b22d9929687b8c0dec5fb2d92d2b781a363ca38334a701e16be71b790" + }, + { + "file": "global-os-created-detail.png", + "sha256": "d6f649bfd68ae62137afffa75fe1cf62ebf192f64affe3901911dc82faa618ef" + }, + { + "file": "global-os-identity-error.png", + "sha256": "d4d5b049b34acc9a13a3eced5e2572798852e3fbae266c59771bd82945fd33b1" + }, + { + "file": "global-os-no-results.png", + "sha256": "958c0e1eff95f0eabc5b283a8c4dd033ccbb408d0fe94dc79897073bf39615b7" + }, + { + "file": "global-os-list-light-320.png", + "sha256": "891cdc1875a12ed6275a2b4e69cdcd2a2a4aaf92a5922df9b17aa2ae6895412a" + }, + { + "file": "global-os-list-light-390.png", + "sha256": "42a0a2f27df0f17b2d117ef5709344bc0cba2cfc40fc6a04652673bac0d175d3" + }, + { + "file": "global-os-list-light-768.png", + "sha256": "54cee20c8cac78ef32e20ada33552829e3ea738b7f7791900ca013afeb97bf49" + }, + { + "file": "global-os-list-light-1024.png", + "sha256": "73a89add6661dd90c360dce567cb23d088e132c4fce396648f272435903d60c6" + }, + { + "file": "global-os-list-light-1280.png", + "sha256": "7727d4a0339da4b2122a35f1fff5ac4814e16fcafc4485ddbca1a98a76ac2f40" + }, + { + "file": "global-os-list-light-1600.png", + "sha256": "36f901f92df98cb4c9b612c29c3a773a7144c439d79e7975294507f3d81ee153" + }, + { + "file": "global-os-list-dark-320.png", + "sha256": "fc6c5f6f89914a863200082079e2af563ab9537fdf87201082d5ef4e5d14c101" + }, + { + "file": "global-os-list-dark-390.png", + "sha256": "3090626d0526ccaaa4b8b80ea0868dfe2451ee8644d498922e6ca11562609f38" + }, + { + "file": "global-os-list-dark-768.png", + "sha256": "02ce9944bdd51afd79aa8c98f82d4e718fd3ea488e41fc2d376cb219d2d5e0fa" + }, + { + "file": "global-os-list-dark-1024.png", + "sha256": "5246d3cde105d8922dd4e0bb8b677f7f24704864dffd6c0fa07bbcc0bd68dc62" + }, + { + "file": "global-os-list-dark-1280.png", + "sha256": "011defd978d3525a93664f795c9d3ececd0809eea62038d4e47e7435a372e1c9" + }, + { + "file": "global-os-list-dark-1600.png", + "sha256": "f67e198bb5af48beaaebd43f63c6daa9210befd69506b2be496e1a1d455fbb98" + }, + { + "file": "global-os-mobile-form.png", + "sha256": "a031175d5e23ecf7dffa3972a13f4b0341df633d481889d52a9ca3c0f6e1f130" + }, + { + "file": "global-os-list-error.png", + "sha256": "d9cf753aa3b8860682a384ce49cef16447df2e2e9201fe34e596e9d90a3e0c8f" + }, + { + "file": "global-os-list-loading.png", + "sha256": "36a4f535a36e594587470d50b6c06a9eccf2bb937f49ff0ea329cd98f519f55a" + }, + { + "file": "global-os-english-form.png", + "sha256": "227d5f682315b8c256589fb9e5bdc93d3dfca4cb5508ed78b6e43c4d886289c6" + }, + { + "file": "global-os-ordinary-detail.png", + "sha256": "8c0aaed14ee140cc92d60163f93c7a8eb470209db3c016b44ebf8e8312008583" + }, + { + "file": "global-os-asset-current-os.png", + "sha256": "04d91e8ac9d5c63e88825316722810c2c591590542217f7fa4634c2264b97f2d" + }, + { + "file": "global-os-installation-history-global-link.png", + "sha256": "f92554b2058618e06afe57bc2c2088d40dfb9e25230d26c3c0a8872867f75df5" + }, + { + "file": "global-os-workstation-current-os.png", + "sha256": "800d98c9df1bf717f301c04c205968610bc9518afdc1fb6bc5f8bfb1ccde9099" + }, + { + "file": "global-os-workplace-map-global-os.png", + "sha256": "2955406b5c9788d9ffa731e2a027dc859b57548d7f595e934777f81da5573479" + }, + { + "file": "global-os-mixed-picker.png", + "sha256": "1c4ac0eca0418d66934e44f21e383ddbdac26905857dbb666eb2bbe02cfdbd55" + }, + { + "file": "global-os-consumer-asset-light-320.png", + "sha256": "2ed77dc6230c94ca58903113608c54b30ffd027a3d1c23b35eb0f554a00a9358" + }, + { + "file": "global-os-consumer-menu-light-320.png", + "sha256": "c63aa18fcde5542d75d579f3566b069ac9a0b1e5bcfdf10dc9b198b707936a9a" + }, + { + "file": "global-os-consumer-history-light-320.png", + "sha256": "913e736a486b61b2e70bb5926a7e1696034d90c867d12190254a55d78c387f4d" + }, + { + "file": "global-os-consumer-editor-light-320.png", + "sha256": "a38101e979acf6b4e068da330bf353aac3968825bfb0844c7fc4b3562b526384" + }, + { + "file": "global-os-consumer-asset-light-390.png", + "sha256": "7bd0ef9010677b3c2fcc1ed120fc2c826378cf5a5fbea2a7fed521d335f0509a" + }, + { + "file": "global-os-consumer-menu-light-390.png", + "sha256": "a7251e892c57027e0850ae4c762447d6134735eb2083246d0404db7955991d77" + }, + { + "file": "global-os-consumer-history-light-390.png", + "sha256": "0da5b9088ccae931e93ad7d7b4d7c5b9444128413800a9ffb55c1f34a33a8d23" + }, + { + "file": "global-os-consumer-editor-light-390.png", + "sha256": "64d35e47d100f959d16e8a70d36bc5cd30ae6d2ed976d99440434715fbe2592d" + }, + { + "file": "global-os-consumer-asset-light-768.png", + "sha256": "0c304c20b205290eb292464778fed476be9d219433c5d3a323de3642a1381d99" + }, + { + "file": "global-os-consumer-menu-light-768.png", + "sha256": "211e3067f05d6bbd1b87bc376c042134f94edd04ea6ee90d719bae759e999c72" + }, + { + "file": "global-os-consumer-history-light-768.png", + "sha256": "89a451ce8cc5cdf33a93a74eb35a21fd76c9db300958ae356869ea1273a22a84" + }, + { + "file": "global-os-consumer-editor-light-768.png", + "sha256": "195dabae571e2c51463d7300186935c0616495430cb514702f8ff68e428d05a6" + }, + { + "file": "global-os-consumer-asset-light-1280.png", + "sha256": "7fe7c80e2577c2ef8677bb3af5aedf093f8c00baac699fea54262d018700cb35" + }, + { + "file": "global-os-consumer-menu-light-1280.png", + "sha256": "8416692a0ba13b42305f63be9ba4b741461e9a80204ad73372246c92320859ec" + }, + { + "file": "global-os-consumer-history-light-1280.png", + "sha256": "8a6e7801dd9ea68897d8c86a3234a65a1b00a00d7dc9b1adc5f321646069e127" + }, + { + "file": "global-os-consumer-editor-light-1280.png", + "sha256": "8f263e156a83a3a2c4156e6e503a2bd35c7b63ecda10d3ebfdf3d7cd3035956e" + }, + { + "file": "global-os-consumer-asset-light-1600.png", + "sha256": "b159572983b68cbae5716ce0f696542557bab1820b4c8dbe986a17ff76e3f71f" + }, + { + "file": "global-os-consumer-menu-light-1600.png", + "sha256": "2d7be3a26da1aae3b6860d44fb0c1736cfce2590fae5770615445171bfad09fc" + }, + { + "file": "global-os-consumer-history-light-1600.png", + "sha256": "2500a71eac4002e3c70a3a604aa62c31f6636a7feae54e19854aaecbee2d9f79" + }, + { + "file": "global-os-consumer-editor-light-1600.png", + "sha256": "cbb8f70af2f6905029cce28b171b9361bf0bbd6de9aa55f2d1dc1e939b4be84e" + }, + { + "file": "global-os-consumer-asset-dark-320.png", + "sha256": "879c852042ff4725af15329d91c1370ab7169049e7090ae4fb26efd0bc45ce0c" + }, + { + "file": "global-os-consumer-menu-dark-320.png", + "sha256": "cc80c1fbc0500dde23ec2922c22abf729a42f26546e1d78acfe920437f26f7c2" + }, + { + "file": "global-os-consumer-history-dark-320.png", + "sha256": "f128274530f6f6a74576891bdc0095f4f366171a5c55d50999b317f7b4844a49" + }, + { + "file": "global-os-consumer-editor-dark-320.png", + "sha256": "47ead965242ba39836270bafc8e7d8e93eeb3f408cdfddccac8218ebab59c68b" + }, + { + "file": "global-os-consumer-asset-dark-390.png", + "sha256": "bebadc5e239f012f9d3130e411084834046b635e17e0f18d5e4992328b09d634" + }, + { + "file": "global-os-consumer-menu-dark-390.png", + "sha256": "f1bb3e0217c25b98d122413b9184b0ab33dac89a00f547f8d853fbbbec046c4a" + }, + { + "file": "global-os-consumer-history-dark-390.png", + "sha256": "edebe2f879eca035d9d89742e98944ed9a9258f0291d324a72e65b5cd3794ae3" + }, + { + "file": "global-os-consumer-editor-dark-390.png", + "sha256": "8df556a016285b8f94efb2f37187653567479699badaab0041283329fe14f691" + }, + { + "file": "global-os-consumer-asset-dark-768.png", + "sha256": "9cc39d75301c3a90e5adb3271e057867f91840299dc374f8452c9fa4fbb8f806" + }, + { + "file": "global-os-consumer-menu-dark-768.png", + "sha256": "f5dec8d1b02aba58ffed0a8da3e33a24a247654724932da7f504f40c30ba9615" + }, + { + "file": "global-os-consumer-history-dark-768.png", + "sha256": "b066d5d7729839fc7fe6b32d56c3d51d882a36cee745fc10cd92f6dfcee6a06e" + }, + { + "file": "global-os-consumer-editor-dark-768.png", + "sha256": "e8a9ddabb99b989b7cf505ef620f742157f48abd2a69fe527abea76bfe2790e6" + }, + { + "file": "global-os-consumer-asset-dark-1280.png", + "sha256": "1e4f5a1ed065b971bfed04b56118698aeaecbc6e4165be9b9a51d768afbd9ed4" + }, + { + "file": "global-os-consumer-menu-dark-1280.png", + "sha256": "58f79b61f176004473206cd32afcb07a1a84ffd2b1acfe79637242cdeb64d5f4" + }, + { + "file": "global-os-consumer-history-dark-1280.png", + "sha256": "2e247fcce762deac5251d0fcaf1b066c0f9e80a027cfaab2a763b0e3f21d8999" + }, + { + "file": "global-os-consumer-editor-dark-1280.png", + "sha256": "d7250e7951b4c93c1157223016f66aae9d17bdf48e79bfbf6d0cb4907e40289c" + }, + { + "file": "global-os-consumer-asset-dark-1600.png", + "sha256": "738d52c39d9a2e6979092b41ab52f2546545d79ec3c77f646de3afe697ef129a" + }, + { + "file": "global-os-consumer-menu-dark-1600.png", + "sha256": "ce3fc1aa225a35b79679b031175d17ae55cbe178ffea0dbcead00605f85cde5e" + }, + { + "file": "global-os-consumer-history-dark-1600.png", + "sha256": "1f2b8d364c45e19b527175a329309dabf0ef3a771a715ce043ca877183b32ca5" + }, + { + "file": "global-os-consumer-editor-dark-1600.png", + "sha256": "31c7738bab9f2b4de1b27b681e2cc6b20e4be309e0cbf6b30e7100f8dedaa7eb" + }, + { + "file": "global-os-consumer-version-updated.png", + "sha256": "a549e26ed8eb7764f15d9f40ea9835d8ec642a6261af7dd4e4562f4f6fc297a5" + }, + { + "file": "global-os-consumer-english-editor.png", + "sha256": "63114ee4f460e4d10264844759b83bf4e64fdccb7cad9f3be3ee86d9f17fdf4e" + } + ], + "measurements": [ + { + "theme": "light", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 4.710670667667247 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.44602285960225 + }, + { + "text": "Identidad comercial", + "ratio": 18.44602285960225 + }, + { + "text": "Proveedor", + "ratio": 18.44602285960225 + }, + { + "text": "Estado", + "ratio": 18.44602285960225 + }, + { + "text": "Acciones", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 17.982567698070397 + }, + { + "text": "Windows 11 Pro", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 18.924630543800298 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 4.832895561154151 + } + ] + }, + { + "theme": "dark", + "contrast": [ + { + "text": "Definiciones de productos compartidas por todas las compañías. Busca por nombre ", + "ratio": 7.5264967258525335 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + }, + { + "text": "Sistema operativo\n↑", + "ratio": 18.801878630570016 + }, + { + "text": "Identidad comercial", + "ratio": 18.801878630570016 + }, + { + "text": "Proveedor", + "ratio": 18.801878630570016 + }, + { + "text": "Estado", + "ratio": 18.801878630570016 + }, + { + "text": "Acciones", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 100 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 101 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 102 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 103 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 104 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 105 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 106 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 107 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 108 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 109 Pro — Producto sintético Álvarez", + "ratio": 15.760664563314249 + }, + { + "text": "Windows 11 Pro", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 110 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 111 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 112 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 113 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 114 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 115 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 116 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 117 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 118 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 119 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 120 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 121 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 122 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Windows 123 Pro — Producto sintético Álvarez", + "ratio": 17.11067053013637 + }, + { + "text": "Mostrando 1–25 sistemas operativos", + "ratio": 6.849496704697561 + } + ] + }, + { + "consumerMenu": 320, + "theme": "light", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 18.924630543800298 + }, + { + "text": "Editar instalación", + "ratio": 17.217274892719825 + }, + { + "text": "Historial de la instalación", + "ratio": 18.924630543800298 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.5882 0.2309 28.2936) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 320, + "theme": "light", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 390, + "theme": "light", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 18.924630543800298 + }, + { + "text": "Editar instalación", + "ratio": 17.217274892719825 + }, + { + "text": "Historial de la instalación", + "ratio": 18.924630543800298 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.5882 0.2309 28.2936) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 390, + "theme": "light", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 768, + "theme": "light", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 18.924630543800298 + }, + { + "text": "Editar instalación", + "ratio": 17.217274892719825 + }, + { + "text": "Historial de la instalación", + "ratio": 18.924630543800298 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.5882 0.2309 28.2936) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 768, + "theme": "light", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 1280, + "theme": "light", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 18.924630543800298 + }, + { + "text": "Editar instalación", + "ratio": 17.217274892719825 + }, + { + "text": "Historial de la instalación", + "ratio": 18.924630543800298 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.5882 0.2309 28.2936) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 1280, + "theme": "light", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 1600, + "theme": "light", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 18.924630543800298 + }, + { + "text": "Editar instalación", + "ratio": 17.217274892719825 + }, + { + "text": "Historial de la instalación", + "ratio": 18.924630543800298 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.5882 0.2309 28.2936) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 1600, + "theme": "light", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 320, + "theme": "dark", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 17.11067053013637 + }, + { + "text": "Editar instalación", + "ratio": 14.517901361735994 + }, + { + "text": "Historial de la instalación", + "ratio": 17.11067053013637 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.6453 0.2404 27.3106) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 320, + "theme": "dark", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 390, + "theme": "dark", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 17.11067053013637 + }, + { + "text": "Editar instalación", + "ratio": 14.517901361735994 + }, + { + "text": "Historial de la instalación", + "ratio": 17.11067053013637 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.6453 0.2404 27.3106) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 390, + "theme": "dark", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 768, + "theme": "dark", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 17.11067053013637 + }, + { + "text": "Editar instalación", + "ratio": 14.517901361735994 + }, + { + "text": "Historial de la instalación", + "ratio": 17.11067053013637 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.6453 0.2404 27.3106) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 768, + "theme": "dark", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 1280, + "theme": "dark", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 17.11067053013637 + }, + { + "text": "Editar instalación", + "ratio": 14.517901361735994 + }, + { + "text": "Historial de la instalación", + "ratio": 17.11067053013637 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.6453 0.2404 27.3106) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 1280, + "theme": "dark", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + }, + { + "consumerMenu": 1600, + "theme": "dark", + "contrast": [ + { + "text": "Abrir ficha del sistema operativo", + "ratio": 17.11067053013637 + }, + { + "text": "Editar instalación", + "ratio": 14.517901361735994 + }, + { + "text": "Historial de la instalación", + "ratio": 17.11067053013637 + } + ], + "focus": { + "outline": "1px", + "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, oklch(0.6453 0.2404 27.3106) 0px 0px 0px 2px inset, rgba(0, 0, 0, 0) 0px 0px 0px 0px" + } + }, + { + "consumerViewport": 1600, + "theme": "dark", + "overflow": false, + "keyboardMenu": true, + "dialogTab": true, + "focusReturn": true + } + ], + "database": "metis_desk_test", + "companies": 15, + "principal": { + "people": 50, + "assetsAtLeast": 50, + "resourcesAtLeast": 50, + "profiles": 50, + "workstations": 50 + }, + "mcp": "Docker stdio de .codex/config.toml", + "productionEnabled": false +} diff --git a/.artifacts/resources-global-operating-systems-unblock/source-snapshot.json b/.artifacts/resources-global-operating-systems-unblock/source-snapshot.json new file mode 100644 index 00000000..1ec3eb02 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/source-snapshot.json @@ -0,0 +1,1890 @@ +{ + "recordedAt": "2026-10-25T21:24:13.110380+00:00", + "head": "d2bf856c973419277f0b30f6437242cd82f7d720", + "files": { + "modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx": "757b575359249cb6ee3191449430e8087fbaeb118f46e3456486e530e691b65e", + "modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts": "71fef135cf5b273d38ae23372d4d81e06ea0586f11d75148af195d9eeef5732d", + "modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts": "76ec297ee00a6b45f3b6a6f18df6d4497d86e7acaf05a763884451f9174f468f", + "modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts": "c3d0c108c20010daef39f2088ffc6416a753bb4e00c6e784c906cf7c53b397ff", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx": "295a95f4b80fc7a2c1254dce75df6dd4b62e198853db351681031870723d370e", + "modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts": "360617bc875971ddee5928405627866a0f37b2f8672555a8448a943d55961cc7", + "modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx": "76548ae75d060bf0556eb37cec8aa6984b8e976a93457311bb34e901a06c1b61", + "modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx": "6dcd900dad363eb354811c94b1b2851cfb11bc7014e05bb12912c8899535b0fd", + "modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx": "5212e4b69914b655219740feeae1ddbf2bb557a75211cf087c09142886df65a6", + "modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx": "6009e0a8ec172ba288919af684bf8eb0467d644b3783a036e5f76008d919998b", + "modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx": "d1653c1ea696c8ee371de56b11d96b087d0600f678098731cfd4d6a1cecf73a8", + "modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx": "13bc0cf7919a384f9cd463a2aca40542fc56932cbef7dcbd3fd3dc4050b6d11f", + "apps/web/src/app.test.tsx": "b1d49c88ce7dbb9861723a8b2e1486f94f26eb62a11fc1184d28deeb6704db82", + "apps/web/src/app.tsx": "85c60735daaf25f115a86ca1a5680e20e05415e50e4c95972fffa39c5ce934df", + "apps/web/src/global.css": "ef8dd9875d2f0c9d3dbf49f837a7f9bf5408a29c2f7a3f6d91f14648c2bf829f", + "apps/web/src/i18n.test.ts": "048e8456b54a76f0185126bb5d74afd8788043d9cb0aa432495bf8a1b094e90c", + "apps/web/src/i18n.ts": "238bd335de6353ad4d577479eca7955ea99c8264b10fe6121116307449009a7a", + "apps/web/src/language-switcher.tsx": "0389622106d2ebad0279c3d505a7853ab3dd3ca6e383b7a0f251c66397143006", + "apps/web/src/main.tsx": "bbaa14718665a1ae6754ed9cdc8031c8802070ca09a188a5778ecf82188560b3", + "apps/web/src/navigation/app-redirect.test.ts": "655137e4e31d61c62e50727fd5489e30061246191d8db20aa677439b5147c650", + "apps/web/src/navigation/app-redirect.ts": "c0457f7ecdfb7118e6cf64c215674d365c2486a93c11478ce0b663824e0c1c6d", + "apps/web/src/navigation/use-app-navigation.ts": "f334bfd07e4f3d097e287f74b4ac7e5a45ce8505982440cf7242ac499b86c8f7", + "apps/web/src/test-fixtures/workspace.ts": "6f3228f7dd5d6b46d4c028f5a32db15e2bec1a97b30af8d4a7b962a92a545eb4", + "modules/assets/src/api/application/asset-catalog-response.builder.ts": "3155a2241f43e3ca8a1ebc2b5c91e9670cbe37a9d3d3fa1cbea0daf4a100d8da", + "modules/assets/src/api/application/asset-catalog.repository.ts": "09ee7a3a37d2e7c90734be4b0c140a18545a1e863a0b88a63e5ef5e4ca0829d4", + "modules/assets/src/api/application/asset-catalog.use-cases.ts": "dd1996a8dd5bdf1ffb8fe597abe845ab259279bce8e9bf7d7188cb14e64b3a3a", + "modules/assets/src/api/application/asset-input.mapper.ts": "168529e8cc25ce534aab3e2578eff60a0008e9b68da66fd8657ec8ddb1c85e9a", + "modules/assets/src/api/application/asset-relationship-response.builder.ts": "077417f128aea84d2b4dc803bb586e7ea90961713b9b4b0593cb310c7618c541", + "modules/assets/src/api/application/asset-relationship.use-cases.ts": "2f49f39f5be1a2551bcd0413a6ad4d3ffe2cd1f146dd21978c9a1a2b43b36b25", + "modules/assets/src/api/application/asset-response.builder.ts": "9049dba6941b2df0f079036c78d4e8444be065b2a88f510a4f970376abba4f07", + "modules/assets/src/api/application/asset.repository.ts": "0135640f6fb93c419377bbc4d4a9513156254774ab4f6d7c2164cd455277ea07", + "modules/assets/src/api/application/asset.use-cases.ts": "7d1981c242ef6ba8d90af71bea02c437de47203caa2da0005be9dc66f7b313c8", + "modules/assets/src/api/application/brand-input.mapper.ts": "94a8eb7ee53f58e962087b5f10b9b164461b6129d982f38141104ed0257d25b6", + "modules/assets/src/api/application/brand-response.builder.ts": "349b84a6476fe3af3b9e86dc05b66a1417cde2257b994e18ef5507184a513981", + "modules/assets/src/api/application/brand.repository.ts": "d5e0baea3aea75f33fe66ee6ca1a6fddb67e4108c66ae2ff0c23f287a4e5e013", + "modules/assets/src/api/application/brand.use-cases.ts": "48125cb6014c3a4a12addab7e455c346eebf6b1269d437cddceefed9ab19241d", + "modules/assets/src/api/application/directory-membership-plan.ts": "565998c4737c9e61ea32bf749d30310bb6a8b7ccb3e68661f63a6cb50a2b22a0", + "modules/assets/src/api/application/directory-membership-response.builder.ts": "4a4874640dcec46f64654d39e9bc3744067e00172fc31622bd563957cf43e891", + "modules/assets/src/api/application/directory-membership.repository.ts": "1ed73b4da16fbe997de0f231d01311bccf13e925521cb95d4601935086cbfcbe", + "modules/assets/src/api/application/directory-membership.use-cases.ts": "06be93ec0bae695dda9571a3d5957fdf3344a971bf01eca83f16a680e739ba5c", + "modules/assets/src/api/application/infrastructure-response.builder.ts": "588ab3d5d858e902afd611feb0a9bfd44f8a1519d46c899be0734d283a2fd7b4", + "modules/assets/src/api/application/infrastructure.repository.ts": "d10c079136c15cfa3b17f107538f69da6efb1df06e6c139e042e08026fb13ae9", + "modules/assets/src/api/application/infrastructure.use-cases.ts": "926eeb522c57ae54087fdfbcb816651503bf65b0b77ac6f9812afac042b46d96", + "modules/assets/src/api/application/network-share-publication-plan.ts": "c1800c25f7f64351486f82683771bc7535f114b312ce4b48c6cc0e8a6fc9c241", + "modules/assets/src/api/application/network-share-publication.repository.ts": "7a23242c87c286d0dcba7477cc3c0d58ddaefbc93d3985db71ddc7f253efb4c4", + "modules/assets/src/api/application/network-share-publication.use-cases.ts": "224534d7b6b92d5e687dd9adb3e31a3fbfd475528675562c1a982bbddf8c2bd1", + "modules/assets/src/api/application/support-input.mapper.ts": "bb1dd792e49c20fc1f3a44bea997c6227e3023c44c9ed056e5af11aa28717b10", + "modules/assets/src/api/application/support-response.builder.ts": "4dd433e46444c96950d9b1e9f874761bb94d0c7558219ba736f31a5123ff33ce", + "modules/assets/src/api/application/support.repository.ts": "b396a11090450bf0c9d7f3d1d3d361f69b8811cc828c364b299430c2c342f69e", + "modules/assets/src/api/application/support.use-cases.ts": "0a965e9016369faa6946ad5c8e37d45a731b4496d20d44beb74e54541ec6f989", + "modules/assets/src/api/application/workstation-concurrency.test.ts": "9e51b8339c26f17fdf00c946b9069d17e9bad102bc61b30980d405b9297ea391", + "modules/assets/src/api/application/workstation-input.mapper.ts": "d5d3915c2d5f0f0af8f0ebaa24a27092ba42b4cbeb3059a88aedc75394c95c2e", + "modules/assets/src/api/application/workstation-response.builder.ts": "2e5223aba6e8ee859c1b9322917b5d956e53277e3733551a39d32f84300d2fcd", + "modules/assets/src/api/application/workstation.use-cases.ts": "5c92e5c5a49fe63c980318b1fa4841434f8e9d2dba0d21e66721301cd5370173", + "modules/assets/src/api/domain/asset-catalog-seed.ts": "140ac2a6585a7edf24bab1c093b1b0be262b2bbd0bfda18e73fada8c043a023b", + "modules/assets/src/api/domain/asset-catalog.aggregate.ts": "680b9013077e589b789785da4c09a35862103cf1e0d723eb9ed863183be25bc1", + "modules/assets/src/api/domain/asset-catalog.test.ts": "95f73a5ea27b059f346963b3f091dbb57ab052129ebbeb622835d2f11bcbc548", + "modules/assets/src/api/domain/asset-definition.entity.ts": "6c9dca562bf06e93c5e6ee2b96cb7e04cd5ad5afa3df2c1d3e588cba26f073ed", + "modules/assets/src/api/domain/asset-definition.ts": "f44ab3f8990a2b7874fbc5a0bcf42cc50ef413a3b6c0f9f870bf5dbe362d4c9a", + "modules/assets/src/api/domain/asset-infrastructure.aggregate.ts": "e68172ba49eee1c08aff9d9e6812a95ca18dc9de3e9c877256b0d3c8a8d41707", + "modules/assets/src/api/domain/asset-relationship.aggregate.ts": "90ad885ce01ef32edb66989426dbdd3ccc5aba383ede4fd6c1979a55e9c5fe38", + "modules/assets/src/api/domain/asset-relationship.test.ts": "c926a34a7137db6574d5b9d7c277ac1684f6ca04ef50b1d90ffa2ffe9229d321", + "modules/assets/src/api/domain/asset-revision.entity.ts": "1a5beb7b8e0d9289f9070d31184200f4121f9c0dc7b6cba952b1ecee03c8e7a4", + "modules/assets/src/api/domain/asset-state.ts": "32555a2c4f078ccfe43a2893f7515b4ccc83891215ff2d97992f429012612df9", + "modules/assets/src/api/domain/asset-template-propagation.test.ts": "6e502e7a33bed7eeda2d085b4290f1bedf65b19ec53fee2761c5d59a12596482", + "modules/assets/src/api/domain/asset-values.ts": "9edcc7172b2136662fbcbdd753f3ae08a66d674283835e674715d1de2b627788", + "modules/assets/src/api/domain/asset.aggregate.ts": "2022bd458488f084540bfc74c4321664b08f96ff89ee6fbc43ffa222fc2be8a6", + "modules/assets/src/api/domain/asset.test.ts": "eae079ebd675aa325ce3fd8f43c383a6e58f66e350f5a7966abd84b367829a41", + "modules/assets/src/api/domain/brand.aggregate.ts": "84b431ae7974e2e2010357e46efde8c6051af3040f58f8cf3515b3a52b489703", + "modules/assets/src/api/domain/brand.test.ts": "858bba343a947b06f26c8f9b9e83c85bbcbef73e4277734a8a3273253d529cff", + "modules/assets/src/api/domain/directory-membership-eligibility.ts": "37eb4898e2bf692676bc1b600e3fe963470ac8429d38b5f9cda646de5065d991", + "modules/assets/src/api/domain/directory-membership-revision.entity.ts": "71533f6726062e798b7a1d39f763c23894f968f9e337c4e89a18b63b53ac95fa", + "modules/assets/src/api/domain/directory-membership-values.ts": "7d67be2a0a414b22c64006bbe03348d2443b01e671cf7283d0a5dd2b864c9046", + "modules/assets/src/api/domain/directory-membership.aggregate.ts": "d23c6266580f6d742ee03c3fb4e818ee0ff1475487dc298848dfc2442fa08787", + "modules/assets/src/api/domain/directory-membership.test.ts": "539ae48ede783e8ad996eb979bf752c69702af7b21637053a2904ac859738425", + "modules/assets/src/api/domain/infrastructure-interface.entity.ts": "795715430014b0bc9568f53e929106763a885e0123b42a2fefe9ac4243cb28f0", + "modules/assets/src/api/domain/infrastructure-revision.entity.ts": "5f012d7336289d66d4df107cbdcab5f7805d92c20bf7c535879a30af69d22ec2", + "modules/assets/src/api/domain/infrastructure-values.ts": "af11c9ba83f3d9613164b9b64b522bf223d4f6c158cc45023db0833b882cef68", + "modules/assets/src/api/domain/infrastructure.test.ts": "415273fbed9215ec84465a557f6248d2ddcdb73998ec9dc1501f5941947fc1ba", + "modules/assets/src/api/domain/interface-address.entity.ts": "1c47a7a05a511acac057765f7554ace90dbdf231348e6373c93723a5e08082e8", + "modules/assets/src/api/domain/network-share-publication.aggregate.ts": "3c15c40efdd2d2414bccfb803d694c57405b3550a0b8109e245fce11a8a76486", + "modules/assets/src/api/domain/network-share-publication.test.ts": "e9b78341a0f713f73cc7194094c6e8d59cf3f090fac1fb3acfcfb59c36ffdbaa", + "modules/assets/src/api/domain/support-connection-revision.entity.ts": "8cea7732d755db07254a0145fb4774d9c1496db6de28d19b6c5b82bd78ad571e", + "modules/assets/src/api/domain/support-connection.aggregate.ts": "19ea6f49c34d39296400c43081f441b17ff1a6a993b7263f8fb7e6647edd39fd", + "modules/assets/src/api/domain/support-values.ts": "9857a6e081b69793e9e1fd4ea60b03704ae21515914e1e1d0358419367f1ce12", + "modules/assets/src/api/domain/support.test.ts": "bfb55c9c5d54d541f179a83a1550af9f64979daf7c56c5b38c7eb97dc58974e1", + "modules/assets/src/api/domain/template-section.entity.ts": "857a9c60fa27869e777990f4400b53606bebc7199091eeff76e489ec770acf5a", + "modules/assets/src/api/domain/template-sections.test.ts": "4d066d52a01c0cc205247da23e626822261f1d8c74e860b9784200578859b68e", + "modules/assets/src/api/domain/template-sections.ts": "038c002efb5eda6bfe390037960df77a8b148843d5ef19fea6da69112740d030", + "modules/assets/src/api/domain/value-objects/asset-definition-values.vo.ts": "9c0a1ed9c41d31d4005fdf8bcbb7b8a8a8b1943b16b569d25cc0e5756d0e5899", + "modules/assets/src/api/domain/value-objects/asset-relationship-values.vo.ts": "7b96c758d5bbbe1ff4f3d7ab9240293920bce53e9c69aee1ae093ab37eb99192", + "modules/assets/src/api/domain/value-objects/asset-values.vo.ts": "dcb56c40ea194f85fb7871cd57bfe85416aa4af407fcda8f49b2fee7aac1cb73", + "modules/assets/src/api/domain/value-objects/brand-logo.vo.ts": "94bd852e6a25f8d0fb5995705607e35e7e51d6f9812e9850a088b8cd2fd3e257", + "modules/assets/src/api/domain/value-objects/directory-membership-values.vo.ts": "9e334c1cd315536699b06483d0dae96141861d8abbc3c2972890463a24428e60", + "modules/assets/src/api/domain/value-objects/infrastructure-values.vo.ts": "446f335ef54efcfa82e6819418b0b7984a55b969edc6ed142570df0a61deb002", + "modules/assets/src/api/domain/value-objects/support-values.vo.ts": "47d8ffca0444cd1fd3a6f4042de7e39267b7a9bcd4573e1610b014df8065b91d", + "modules/assets/src/api/domain/value-objects/workstation-values.vo.ts": "c2490c322bbbad4650840f308509fa569126118db7971624f28580ae7729334f", + "modules/assets/src/api/domain/workstation-revision.entity.ts": "0dd36fbc71f87a5eb9a2c54038e93e8b7f964d80f9c30962467f04bc6ee0d947", + "modules/assets/src/api/domain/workstation-values.ts": "5b4e2708017d6e476bdc4ccc032907df4517b05bff0ed0f099b067bdfe8037cd", + "modules/assets/src/api/domain/workstation.aggregate.ts": "e2ec45294c9758585abf0d77c9b1b5fdc0b6d0621423c781b4011773456f739c", + "modules/assets/src/api/domain/workstation.test.ts": "201eefe9d5bf4f44bb72cdb694cf370bead5172f1097209542b0ff34b7f7b0fa", + "modules/assets/src/api/infrastructure/http/asset-catalog.routes.ts": "5f89cc6fb021d53d3e4b38d9801389669cb7a3c9fde933e7078a546ae317f7c8", + "modules/assets/src/api/infrastructure/http/asset-relationship.routes.ts": "b883c169201699c8b5e051812a83c54d8ebda0a0b23cef246804e872855f7e7e", + "modules/assets/src/api/infrastructure/http/asset.routes.ts": "3014d08796df2d112edab4be39b635821ceae45b84bb08f6b33c7ff42dde9d9f", + "modules/assets/src/api/infrastructure/http/brand.routes.ts": "4186baa1420547d7307fdbd0095c80d850e9325dc2823a5fe0ea3f8ff2b3b63a", + "modules/assets/src/api/infrastructure/http/directory-membership.routes.ts": "00ce8fb93f7468397639f5ae4995ae298f16be2688a6ff5a3f18639879021e96", + "modules/assets/src/api/infrastructure/http/infrastructure.routes.ts": "e3576edf51c49dfb00a98b3e3c3a2e258d4d1b7454025f371c82e57e7a7a8036", + "modules/assets/src/api/infrastructure/http/network-share-publication.routes.ts": "a8d18a3be133d49f0ed309255e2224ede4a15f6b9d3ac2ef5fce3a2ea958f779", + "modules/assets/src/api/infrastructure/http/support.routes.ts": "b0b2e4b04a84c61c71abb8b5a91a36a40247651dbb80aaa6ed05de4ff28ae5b8", + "modules/assets/src/api/infrastructure/http/workstation.routes.ts": "0840dbc8f5623633f037076858dc0e0908fe05d49e92a7598577138fb9663866", + "modules/assets/src/api/infrastructure/persistence/asset-catalog-persistence.mapper.ts": "b38c4176f5c6c3d452ccd66487279049683afbb017fd5434e324d079d4b912f8", + "modules/assets/src/api/infrastructure/persistence/asset-catalog-relational.ts": "2e6677ae2c8f6932381d0f629a46f713f599a1719c37ad0d6a6e84f14357525a", + "modules/assets/src/api/infrastructure/persistence/asset-catalog.model.ts": "15ee3dc43e0504c779d462e61ebc3cc691b2853dc220019b31c704d54509c757", + "modules/assets/src/api/infrastructure/persistence/asset-dashboard-reader.ts": "77443f3f3f10208cbce458d5dccb85c1c5cf5787ced186bb9e56842b019f8248", + "modules/assets/src/api/infrastructure/persistence/asset-entity-summary-resolver.ts": "bf452536885b6cf71ad3d66b4a5137a275b43c2e071f203e61e0adb1fd62e2fe", + "modules/assets/src/api/infrastructure/persistence/asset-inventory-relational.ts": "8e13a1500b6597e57756da36132244beb7f245c9521dd41ce0d787c3a7d3e940", + "modules/assets/src/api/infrastructure/persistence/asset-persistence.mapper.ts": "308426305d2f70fcef3a1b7a157fa639fb142a21a1f84692c64e0e7781b2b23c", + "modules/assets/src/api/infrastructure/persistence/asset-relational-constraints.ts": "2f53b35da59802fc767dbea341dd857824390022b176b0a769e82b9354c05cec", + "modules/assets/src/api/infrastructure/persistence/asset-relational-schema.ts": "16ca683da98a345d7d6dc77e8d565ba9c1f3881ddb2158b5f699fcb354bd96e0", + "modules/assets/src/api/infrastructure/persistence/asset-relational-sql.ts": "23227ca87aae75ebb2ff9d10113c2c3a71c7d6f46121354f75a7a96f90835d5c", + "modules/assets/src/api/infrastructure/persistence/asset-relationship-persistence.mapper.ts": "8870f428c1d94cb4aef9dba4a3754f08f9d1f4b740442bc5e8624ad7fa20ece9", + "modules/assets/src/api/infrastructure/persistence/asset-relationship-schema.ts": "b1743bd78affa12e2f393cbf04b91a582a6aa518b329baf6fea6ee7861ae7d9f", + "modules/assets/src/api/infrastructure/persistence/asset-relationship.model.ts": "9fefae798582c2820b0ac12d2132673fabf78ded9c0f349cb9b0be589e4421e0", + "modules/assets/src/api/infrastructure/persistence/asset-revision-specifications.ts": "58080679371d297a3a8488c8a72296b38609c56e9de7defce369fad598651877", + "modules/assets/src/api/infrastructure/persistence/asset-support-schema.ts": "f6c88d77c371a137767081bf1e1f31181cfcb877e82ead478e35a418d5be6e19", + "modules/assets/src/api/infrastructure/persistence/asset.model.ts": "da7ee7f593948d55748534d1100ac6386b49318d711166c3cb544056b7f81aed", + "modules/assets/src/api/infrastructure/persistence/brand-migration.ts": "2bb42cab532029b080881e3e742eb3b55857174173f979694ef409fa486f6529", + "modules/assets/src/api/infrastructure/persistence/brand-persistence.mapper.ts": "299ce31279042861607621035fced4074f548ef1c759e7a99ba19716e8525c07", + "modules/assets/src/api/infrastructure/persistence/builtin-brand-logos.json": "c333e9d80fdb880e51235fb42d078a2c6932dc6727ec6c7aaa0b555d686bc75a", + "modules/assets/src/api/infrastructure/persistence/directory-membership-eligibility-reader.ts": "b41b7260a0478debf0396c76d0d97a2cec8f6d2fa4d3393830eededba5c2de6e", + "modules/assets/src/api/infrastructure/persistence/directory-membership-migration.ts": "72f3e1afd2230e35c8a897eabebd78f47851c3b8ab3b1d355f2be3de6b4cd513", + "modules/assets/src/api/infrastructure/persistence/directory-membership-persistence.mapper.ts": "0aa97328a10cad790864099ae63c8b5864259ea4943df747ba8f016427e22f8b", + "modules/assets/src/api/infrastructure/persistence/directory-membership-provider.test.ts": "7f3eb60367dcc73d19aa5d768916467642d0adc25c56b3d6e219c45055a05eb3", + "modules/assets/src/api/infrastructure/persistence/directory-membership-read-index.ts": "7c6d0483580cc4fefa95df64942f963477f4e04f56664d04219c2c08a6c85a02", + "modules/assets/src/api/infrastructure/persistence/directory-membership-relationship-query.ts": "116c201e75c139ae6b320b6f58dcb3e95552ad5699eb7e1223de9bbe70a50b0d", + "modules/assets/src/api/infrastructure/persistence/directory-relationship-cursor.ts": "a4ddfb9efd8ede8e73b38eab86353995358482b7e376b539f678f46832378896", + "modules/assets/src/api/infrastructure/persistence/infrastructure-migration.ts": "e2d538ee2a0487a299d54f85cf3ecc9dadac3303e210b525162ec3a04d6a656a", + "modules/assets/src/api/infrastructure/persistence/infrastructure-persistence.mapper.ts": "526d28b442be919a8d13954c7b41a82a8db2c090737305591b4f5fe5a309d747", + "modules/assets/src/api/infrastructure/persistence/load-workstations.ts": "655934f568a14aabc7c39bee8ca60091f417ce7a581e4c2ee3ebeba098366ca4", + "modules/assets/src/api/infrastructure/persistence/local-identity-asset-reader.ts": "fbf32c1372e0d76e6210acecb52ff2496614c7dd90aa75b57a3bfffcbf9f0ffd", + "modules/assets/src/api/infrastructure/persistence/network-share-publication-migration.ts": "91a5a0cd5bea0e0d29317d0836bd94891adf97c0720e97252abc3c1cb5ad2308", + "modules/assets/src/api/infrastructure/persistence/network-share-publication-query.ts": "97101c3e65846c2b4c76404623fd95beea6a51b636e3e4b404f9e91ebba10958", + "modules/assets/src/api/infrastructure/persistence/network-share-publication-read.ts": "8868e5427d2de6358d37f49eaf7a6a9f47e549865d9ea4138dcd358e97b2a9c2", + "modules/assets/src/api/infrastructure/persistence/network-share-publication.mapper.ts": "aa4d83aa498c19b7c387552b696edb28d05876ed300f77bce49dadea5ddc5308", + "modules/assets/src/api/infrastructure/persistence/prepare-asset-template-updates.ts": "4ee672494adc8182e1c1e759adfeaa645e8203285d81f5b28ca85c6c5b7083f2", + "modules/assets/src/api/infrastructure/persistence/publication-asset-options.ts": "98ef11e759fffcf03fdd90e13d7aac3ee67f842f767d39c62bd0294382e52761", + "modules/assets/src/api/infrastructure/persistence/remove-asset-infrastructure.ts": "e60801015dd67d8f2f9c8fc68eb7a3ea02145c974ca43ac31c2e7b047f71051e", + "modules/assets/src/api/infrastructure/persistence/remove-shared-workstation-assets.ts": "5e0b6f8ab0d23313ff3055935216ba56aa1fefb04d3063bfe22f7473891a499f", + "modules/assets/src/api/infrastructure/persistence/sequelize-asset-catalog.repository.ts": "ae54a2ab0bc4bd57ea9f560d418e569047015c9c14ba16c3e802d528d5302e2b", + "modules/assets/src/api/infrastructure/persistence/sequelize-asset.repository.ts": "35199b86936a564f2ffbdc945b52940e000a51ca8e858db88a1ee3c00346235d", + "modules/assets/src/api/infrastructure/persistence/sequelize-brand.repository.ts": "1c085fae641e473f535bc7e3ddf6e6d5c189cb153ff94c9a09bbc578b9158892", + "modules/assets/src/api/infrastructure/persistence/sequelize-directory-membership.repository.ts": "76d0666a88bbf33561e5c594a331f52c640b73063a936c3b2638ee4081a92438", + "modules/assets/src/api/infrastructure/persistence/sequelize-infrastructure.repository.ts": "895d2811c831c35b9ea8129dc8008b8fc0d7deb1daf596ffb63f603263ebc093", + "modules/assets/src/api/infrastructure/persistence/sequelize-network-share-publication.repository.ts": "a2d4b82610bf53f5824ed93ebe829dc0bff3c6986c737a8f8999b41a4c3ae343", + "modules/assets/src/api/infrastructure/persistence/sequelize-support.repository.ts": "9433afca6b8e69c4d8d6ea2b88b1a74ff8c0e1edb2b9a97191674d20e1debaab", + "modules/assets/src/api/infrastructure/persistence/signed-query-cursor.ts": "19906b17543c06d2d30d0ff1e97dfc19312c9bd975c462dead8730323711d7d2", + "modules/assets/src/api/infrastructure/persistence/support-migration.ts": "080764fa316c7726bd8f42fb9d6915cdc65c112e2852578df6c50c6e9a2bb1fe", + "modules/assets/src/api/infrastructure/persistence/support-persistence.mapper.ts": "e5301f67ac32ed605e0324606900bdcef9bd4ac7cab4f574be41d125b8ae9e00", + "modules/assets/src/api/infrastructure/persistence/workstation-persistence.mapper.ts": "4a1108366961eddd7eb9d0fd4196308c9a9a1a8f7aacde3b7b9c61fdb0b6bc2b", + "modules/assets/src/api/infrastructure/persistence/workstation-relational.ts": "eb88f38f44823a2772cde7d6b3e12fd062d30ab064469251e557a8179bcbf276", + "modules/assets/src/api/infrastructure/persistence/workstation.model.ts": "a0ba43d157d52d42185042c0beee0b37c83f90a1e4308a51d7a4278a19a5df3b", + "modules/assets/src/api/infrastructure/persistence/write-infrastructure-revision.ts": "50b02d1f80e72b7af14ae66d088245d427d78a0f49b563c64618b255a7df42d9", + "modules/assets/src/api/module.ts": "085c1a403587700d389af704ae0260599e8874a66c152a919fc93e522144e3a5", + "modules/assets/src/common/asset-template-icons.ts": "e1ab549b3903692e91399f6519e574c82912a15e47405de947fb5e05956156e5", + "modules/assets/src/common/brands.ts": "83baedbaa2713670c5e4fc09fe4296fd7d8e08cbcff04a91c3b79879f961dc32", + "modules/assets/src/common/directory-membership-definition.ts": "96d9afb7b6d839acd4b13fa99213fa30bfab498b3878b719999a1078a9ffe75d", + "modules/assets/src/common/directory-membership-read.ts": "e4141bafc092f0dbf95ede609051772f5d41e2b02eb5f9309fa38257746c8b2e", + "modules/assets/src/common/directory-membership-relationship.ts": "54af186bf761db10540861e30b963d93d9796a23d713e1f9b803425301d0e227", + "modules/assets/src/common/directory-memberships.ts": "a6ab99880b226525f0acaedd87aa5b10b256e25f63ef6f4b9883f3811d5f3dfd", + "modules/assets/src/common/index.ts": "ec6507287bb6d923a25185fe899da7a7c522904bb67b3fa00756b8b7f566cc69", + "modules/assets/src/common/infrastructure.ts": "9a1d0b2764211a4399d514aa3b95f2f850ba2e0d82db31a3610c9a869c677774", + "modules/assets/src/common/inventory.ts": "b22b949d4413b05f855c1b123af640e3fe7c4868fc792b05938d6d19d1f485b4", + "modules/assets/src/common/locales/en.json": "ea4529d517d5e64202a572eb812c68ac8f2a88816630793d6bc7bf1e9b0c27f6", + "modules/assets/src/common/locales/es.json": "0a36b2693a5cc69d7f5ae12d8b814b34d3d59e921678522f87b98317185b5aac", + "modules/assets/src/common/network-share-publications.ts": "8a5c94b73fc41143c6364da3f674c17e541d41d5b6ebd0d2de194e2754b50c9f", + "modules/assets/src/common/relationships.ts": "dcde200a00e4e349ca8cc02f05d4661ab6c0bb22d51622fd8e9d5427dd7b5cba", + "modules/assets/src/common/support.ts": "e03f2908bf42d635468e2e078f5af50095ac7ae1bf7f57d422cb85f5ae91614f", + "modules/assets/src/common/workstations.ts": "927d16317826670978162dd822b8f6c17e28233dbcf0f53072df934aaa9b5a7f", + "modules/assets/src/web/asset-relationships/create/api/create-asset-relationship.api.ts": "c34f1aac2981c45e109575e33dda32845f877abf6f898b13c1b334b1df1785e6", + "modules/assets/src/web/asset-relationships/create/api/index.ts": "7da2db35aea8de3854b55b9f70b1da92f546379c486da7b85f1cfb8590e7cd88", + "modules/assets/src/web/asset-relationships/end/api/end-asset-relationship.api.ts": "3114b38ebae45c13e5f024979718a7f5ea5dcaf3494f93227e73fa56b5e4ebc3", + "modules/assets/src/web/asset-relationships/end/api/index.ts": "ec3534ad634ec61547b4762c9592e1efd1b733330beb0c19b8af2c6949b0c3c6", + "modules/assets/src/web/asset-relationships/end/controllers/index.ts": "3761d7b48dc16f78d49dfc16a4b7e799e040f31ccc2238afbd97a0b7aef98946", + "modules/assets/src/web/asset-relationships/end/controllers/use-end-relationship-dialog-controller.ts": "8a4e3ab717a4db2cce7383f3f805a780197e6137e31188f82e392141b371a334", + "modules/assets/src/web/asset-relationships/end/index.ts": "fe83504e9cb313e5e467cdcc5883e8fd038000db27c24a9eb0f4796e76a8005f", + "modules/assets/src/web/asset-relationships/end/types/end-relationship-dialog-props.ts": "98b03bb6e7acc15c96c0313b7de7d575ee820dd181f71ca70bd9fd6335158953", + "modules/assets/src/web/asset-relationships/end/types/index.ts": "c9cb80a4074c9e8345a2309e0d046996bf8db9023f87b805a6b46b9d4eb0393b", + "modules/assets/src/web/asset-relationships/end/ui/end-relationship-dialog.tsx": "b7874eac0cf0897ddeb7977686dbfd9fed4db70187928e12ed51dace7208da85", + "modules/assets/src/web/asset-relationships/end/ui/index.ts": "887bf3e0679f95394314e91c5507db6da1b9ed9df2fad444a21192bdb71ce1ab", + "modules/assets/src/web/asset-relationships/index.ts": "1616bd32147d14faca7f2e7d7cfbd03565965f1e2bae970e9158b25156855a65", + "modules/assets/src/web/asset-relationships/list/controllers/index.ts": "f9013628a88a50d5d3a64c7457d936299ca123e5e0ff6d024902eabe389e5805", + "modules/assets/src/web/asset-relationships/list/controllers/use-asset-relationships-controller.ts": "f4fc298ff9bc02ad7ab0a455c04c0528ce45c295b0deb2c87ebcd9c14b2338ba", + "modules/assets/src/web/asset-relationships/list/index.ts": "faa6751004527e1d95f357c127a69093dbe6766d66b5d47ed962fb7867d11a17", + "modules/assets/src/web/asset-relationships/list/types/asset-relationships-props.ts": "40915288fd0719999bbffaf6923d5b9bd6100d2d355ead7b7305e8581421ea04", + "modules/assets/src/web/asset-relationships/list/types/index.ts": "21eab0e394591e4dabe11a06b2e81792c105100d5842888509c957419fb02ac6", + "modules/assets/src/web/asset-relationships/list/ui/asset-relationships.tsx": "68ac4a7839baf3ecf480764929da2ec437e23da12970322a634f415cfd93a623", + "modules/assets/src/web/asset-relationships/list/ui/index.ts": "9023de4d9adef45dc9a90e97c5ea2b4fcfaa840e9b149a6216435f3be03add26", + "modules/assets/src/web/asset-relationships/shared/controllers/index.ts": "93393587f436f68ce645de185ef5f7403f4981d08e3e2873fc0fbfc150ef5489", + "modules/assets/src/web/asset-relationships/shared/controllers/use-relationship-form-controller.ts": "7aed989a470e82c00032be73fb8467e9fffb3a0b5f6d297b3effdea229733fed", + "modules/assets/src/web/asset-relationships/shared/index.ts": "28a2c494dc727e71486386c721d5e00f9651596735d328808521bc146597ddbd", + "modules/assets/src/web/asset-relationships/shared/types/index.ts": "27d581a2521662a5f1ec4c46fa624757f678fecbc7d0125d0ddfe64a5daeaef0", + "modules/assets/src/web/asset-relationships/shared/types/relationship-form-props.ts": "a240bae15f53c08e16fa1c81ecf6a41a3d14469c4e7719fe23634730725772a5", + "modules/assets/src/web/asset-relationships/shared/ui/index.ts": "986ec2aa386e12c747308e1f8dc0cb7ad0381139ff036279c857c2563eae99c3", + "modules/assets/src/web/asset-relationships/shared/ui/relationship-editor-dialog.tsx": "235a090134b0a13a49efe96e01b86d8d3a1f5ddb29051dca5f1c33cd33e8ea4b", + "modules/assets/src/web/asset-relationships/shared/ui/relationship-form.tsx": "53bdb14b1e6e1a3dc380d6b95ba559f203571918731e7916fcb9b1c46f0bab15", + "modules/assets/src/web/assets/create/index.ts": "7e7d405aba10587694aa758d7457df6dfadf43bad0e370ddbd293ffefb489d2a", + "modules/assets/src/web/assets/create/ui/asset-create-progress.tsx": "b6909318bbcb755ace06aa7a4c58bd9a0525eda645cc06ffc8d9c5f946889026", + "modules/assets/src/web/assets/create/ui/index.ts": "22c74006818a2c595392e53d21c25d55cce3912599d7fa586d1a7d65746e61ff", + "modules/assets/src/web/assets/create/ui/workstation-asset-create-dialog.tsx": "eee984088c9f635e6def69e62cf8335ab90a800743dc32dc24b048b8d4e01479", + "modules/assets/src/web/assets/detail/controllers/index.ts": "2667cc2c53fcd2fc82b052b9f1ed027bf1843175bbe4dd40d1d5069d3d319d54", + "modules/assets/src/web/assets/detail/controllers/use-asset-detail-controller.ts": "7c15de2e105b15ebebafe7c85d362ef0b0faeb1c1ebac378f864cd7c8aa78c9a", + "modules/assets/src/web/assets/detail/controllers/use-asset-detail-page-controller.ts": "7ae6cb1eca4ffab1c2a97ad1034b6703f83f360367808860783ee6ba8f7edc31", + "modules/assets/src/web/assets/detail/index.ts": "9fa5a44da16a40fd55fe83fc5183f6167301b0f06ed0247b10a4dcf214d5a36c", + "modules/assets/src/web/assets/detail/types/asset-detail-props.ts": "5f3ef87bf5c4215af674e65e81e45b9742bae297f965593853b72ea95561f24b", + "modules/assets/src/web/assets/detail/types/index.ts": "cc8921c8ef8c40fc4799ea4089ba08e88937abb93e49df87b9936ab82cf0dfde", + "modules/assets/src/web/assets/detail/ui/asset-detail-content.tsx": "3701321370222aca2c0dbe9b19dfe6fac56a3147067ec656e00f7821647f34c2", + "modules/assets/src/web/assets/detail/ui/asset-detail-dialog.tsx": "0bc2816992aee0fb4e3c29c395d7c59cbea79164ac356d0bb22e74b55e34ec62", + "modules/assets/src/web/assets/detail/ui/asset-detail-page.tsx": "7aadbe119ee412aaad118d28e5a731e89c8d98790c1dd89a30b44e8706f18c8e", + "modules/assets/src/web/assets/detail/ui/asset-detail.test.tsx": "815dcf5cfc13ba9a27a1f3d6d3a5894bf80abe8649e375391a0380298fa2dda6", + "modules/assets/src/web/assets/detail/ui/asset-detail.tsx": "1ffa2607cdc8df159d3ba373ad2239278139e8be7f48d01efbc6454c3f1e7fcb", + "modules/assets/src/web/assets/detail/ui/asset-history.tsx": "56a347f7eff12f4b83e84a7a624ef89c6fd41fc1db7debae1d0bd6a168cdade1", + "modules/assets/src/web/assets/detail/ui/asset-panel-summary.tsx": "eb86582d70b4e75fb631e32f6c34d9c47d3de5ccf7211ad848c8e1deda98e91d", + "modules/assets/src/web/assets/detail/ui/asset-relationship-events.tsx": "ce6c33e61d08e8cfabce65e679c66741b43651b3637614b1f1a5ac5111cb0a08", + "modules/assets/src/web/assets/detail/ui/asset-revision-details.tsx": "933918808873c53ae35c6ab2b8f5c1622ba0e663ec78550458c9f2aebe83fa1b", + "modules/assets/src/web/assets/detail/ui/asset-selection-panel.tsx": "4897e74ebdfa1f9d93c7237d0fff2a41f8dd1614fa253e3890908f4cb2998ed4", + "modules/assets/src/web/assets/detail/ui/index.ts": "8d909b06905264472faac3d7f33b9b1dcd226f8dbe7b2369a861c4d02782da68", + "modules/assets/src/web/assets/index.ts": "f19395bfb973332eb4413fc46e62db33acd29e5daab1f246d71a62a4c50970c5", + "modules/assets/src/web/assets/list/api/get-asset-inventory.api.ts": "562ea14decb7b1982480174a1f2abd01de6bc249943c0017e1af8ea548a36d91", + "modules/assets/src/web/assets/list/api/index.ts": "523337098484b6450e00a027e276d14d49f7e784a241e39f8a077daabe994b53", + "modules/assets/src/web/assets/list/asset-workstation.test.tsx": "3fbc229386a32cda383e99e3b0cb39ac4d2c7ed972f359a1481a57e08c261207", + "modules/assets/src/web/assets/list/controllers/index.ts": "c0fcc391ce6105235d5239a174606066bc4762ad86de1301ea880eaf45dc2d41", + "modules/assets/src/web/assets/list/controllers/use-inventory-page-controller.ts": "ba157936c7bcf75630d6c7991b7df50b3373852402e619df1c8ae61fb4c0a701", + "modules/assets/src/web/assets/list/helpers/asset-list-query-state.ts": "5df3d9471336be8697d1c8a47e4fe3bb90a7547217741ae076b72f0f5e79eb81", + "modules/assets/src/web/assets/list/helpers/asset-workstation-action.ts": "628389b8ec4b57e4d523fa31c9c1b766ea1ef4134d570dc828bf380b002350ed", + "modules/assets/src/web/assets/list/helpers/inventory-detail-layout.ts": "1fecb0d1dbeee336cbb4173b71036f8e0f9c47571703a151049d4d3eb3ea1843", + "modules/assets/src/web/assets/list/index.ts": "d625140f6d9fe7331cafcf9bc232b29393bfb02b97b07629a3eacbbc5d47c106", + "modules/assets/src/web/assets/list/types/index.ts": "18500216fa1e0ad690eebe498c06dbd9120cb5b2342cb761d4fc1ea9c02e263c", + "modules/assets/src/web/assets/list/types/inventory-page-props.ts": "b683850fac8a9f1847f7394b2554a979344873682d5e495fc630a18c8dd8d1db", + "modules/assets/src/web/assets/list/ui/asset-workstation-action.tsx": "3d517d7e9de14c142643e0e1a317136a97396809b3fb6d2b9f53d1804ec812d0", + "modules/assets/src/web/assets/list/ui/index.ts": "c441c547b80163a9e354298188bb7acc2d2b8d04ac945fec6416d1a70e5ea128", + "modules/assets/src/web/assets/list/ui/inventory-page.tsx": "d4cb07344da9c973ee5f218fcc4b815befa4e16c96838536285a08952d11f5b2", + "modules/assets/src/web/assets/select/asset-selection.test.tsx": "03ea1b6f346b097155c34c9ac38ac82b5c19bea3c42238d10b9a6bf2ee57c995", + "modules/assets/src/web/assets/select/controllers/use-asset-picker-controller.ts": "a4a51e31be28e8685a087535a30aad29d85ce7f0715eaf9bc2d6e83551907111", + "modules/assets/src/web/assets/select/controllers/use-asset-picker-data.ts": "d92052770cc3ee56abc17b89bf018a736a0bc424720c8dd0df46dcb3d4488aa9", + "modules/assets/src/web/assets/select/types/asset-select-props.ts": "62171cd8e66b1f228af36a99fb3ef6d49c532b74f2c40e972338d22fb1c5ef08", + "modules/assets/src/web/assets/select/ui/asset-picker-dialog.tsx": "8cf5ae9517aef178afd169feae4a4f73f99edb216e8ea9beb89ea841bd09a18a", + "modules/assets/src/web/assets/select/ui/asset-picker-list.tsx": "9051011cde959693f93dde1ac195e9160cf7aeea533d430c1d1b8d378d2b8c7f", + "modules/assets/src/web/assets/select/ui/asset-select.tsx": "78a5f349c0d3ebdd62e06456fe2fbf7897f81cdeccb08f8b677dc96c2fc0167d", + "modules/assets/src/web/assets/shared/api/index.ts": "a49919be6e1781f023a3b2efca6020dc41fee19d6e60ce48e8c98f9caefca857", + "modules/assets/src/web/assets/shared/api/save-asset.api.ts": "dba4255300fd328cc44e1da3c2c76f6efde14cb662394ca9b30e8f45c904bd13", + "modules/assets/src/web/assets/shared/controllers/index.ts": "5cb11aa8c7307073cd3a8ecfd8b9f7ea1644a20af5d0a12adef5812af7c1c88b", + "modules/assets/src/web/assets/shared/controllers/use-asset-form-controller.ts": "83acc8cf0a5d147285ad87a5f7c568559152c58b61c7a5080be2a5ab386e6705", + "modules/assets/src/web/assets/shared/helpers/asset-additional-columns.tsx": "7aa6b8a05533ef138cc2b9eac2760d0c08cbf75ec15cf204fe2a2b7a6dada85a", + "modules/assets/src/web/assets/shared/helpers/asset-characteristic-columns.ts": "ceb9b2187098e27e92bbfdd0d8660ffc1c9db0e67623c84d8ab2065db6c39424", + "modules/assets/src/web/assets/shared/helpers/asset-characteristics-summary.ts": "43e26754f9e5d75c9518c72b6cc28b44d4cc1bb9fc893b8d5ab212467c3e4acd", + "modules/assets/src/web/assets/shared/helpers/asset-columns.test.tsx": "3fcb2f61e931c3ace704abd8ab0114079ca158da0fe15034b0ee5c92736464ac", + "modules/assets/src/web/assets/shared/helpers/asset-creation-values.ts": "5ccf605c21feb454dedafe3f60990b06f99fc32a368e911f71e28109665b5279", + "modules/assets/src/web/assets/shared/helpers/format-asset-registration-date.ts": "c72faabe714bf1b318d62b794d32e1bb83010755f889297af0aab6fb336814c1", + "modules/assets/src/web/assets/shared/index.ts": "8fd913b4f4ea3642ca514aae206f84488ca428f1ed8152d7d60629318afdbd02", + "modules/assets/src/web/assets/shared/inventory.test.tsx": "23385a0d5e80f92b0b12d817a8f9f945f136f7f761b057fdc8d0f8f5f9c416da", + "modules/assets/src/web/assets/shared/types/asset-form-props.ts": "f9c8e090a2a05d6cf25252d341a99531af96147af12ec5a5b72b9dad4afc357b", + "modules/assets/src/web/assets/shared/types/index.ts": "0c948d476637870450081c27f3c417b653f3ca6341468c33bc8214c1a0f7e822", + "modules/assets/src/web/assets/shared/ui/asset-characteristic-control.tsx": "d44e7d83cd9fb94e1aaf255da3f396f86f77153bf3b4d5eb91cc289a0aec9497", + "modules/assets/src/web/assets/shared/ui/asset-editor-dialog.tsx": "c2395a0b38aa60df707c630cd24b4a1bf121e1f8c70943dafb17cd0c6134bc7f", + "modules/assets/src/web/assets/shared/ui/asset-fields.tsx": "37fbbe3fbee8dfbd86f191a47eb6e0f5d24b76eca25f606dcf61533c184c347a", + "modules/assets/src/web/assets/shared/ui/asset-form.tsx": "686d8a258d2306667986a97178f877ebe84539f5da6c0be9dab85fa5babd6880", + "modules/assets/src/web/assets/shared/ui/asset-identity-fields.tsx": "97b3b17c21d072241c586587f150b2bf124a49b240864efccd76569f2a07df94", + "modules/assets/src/web/assets/shared/ui/asset-list.tsx": "046233340c05c2a42fc79600761cf4be1ddd1249806ea0ca3c58d42eb5bee3fc", + "modules/assets/src/web/assets/shared/ui/asset-summary-card.tsx": "aa364f073fb118ee807d09a3a297dc84d721a64c1268ef7d0b483c71c1e25027", + "modules/assets/src/web/assets/shared/ui/asset-template-indicator.tsx": "5024785a66702f460401c398da81444e6196e8ff82bcb29af9365592f22b0042", + "modules/assets/src/web/assets/shared/ui/delete-asset-dialog.tsx": "cce75043001691bdc657607fdbfaf52c41e50e64941151cf81ee6638d8232559", + "modules/assets/src/web/assets/shared/ui/index.ts": "bc7b431044cb5865fc3b2cc76ef76dd74a98078e5b90a3273c68cfb84a39de61", + "modules/assets/src/web/brands/delete/controllers/index.ts": "5322bae5d91c11492def88b23e6624b07f46f5cdab0b7857c1f5dffed09bf7b6", + "modules/assets/src/web/brands/delete/controllers/use-delete-brand-controller.ts": "bc0ae843d2b2da6db08d8f68c00ce0d65a1b47f0bdfaf49c819933272c1289f4", + "modules/assets/src/web/brands/delete/index.ts": "b9fa7ac67c93896141e75e362df740e86f3d9e3d0a49979e3f8950cf4b697b76", + "modules/assets/src/web/brands/delete/types/delete-brand-dialog-props.ts": "205690b73a85213f1e5e18ae410384b10beb5273409dc9354a4363fb81a557cf", + "modules/assets/src/web/brands/delete/types/index.ts": "2c3ff4e83f517eebc430fc2b78d761f7b05b1776821b09ed4528fb015151844a", + "modules/assets/src/web/brands/delete/ui/delete-brand-dialog.tsx": "37e8f54549f13d054ead0e1fe5dd9f5c3e2ad2dd2c8634e06e8d2749ef8dae7d", + "modules/assets/src/web/brands/delete/ui/index.ts": "206b327b5595220f2553be1412c5c1415a092d485718d07daefe1381c918b573", + "modules/assets/src/web/brands/index.ts": "d0b8f9502731146d841a777ef53174a709fca02bb0d1edc152ec6b11420463a7", + "modules/assets/src/web/brands/list/controllers/index.ts": "dfd37f06d8e095d9733a4789465170881d5873dd5eba848785706eb0332c6dc0", + "modules/assets/src/web/brands/list/controllers/use-brands-page-controller.ts": "52fbec8c660575af08b58c71a200591ff73799dc50f72601f46b82ce3ffdb573", + "modules/assets/src/web/brands/list/index.ts": "aeadf48dafe748f65bd67ee26e35c909bc3147c29f4f3a2f8509afecd7fe2f20", + "modules/assets/src/web/brands/list/ui/brands-page.tsx": "3be21f063e501bdd63d72f59bae4158504c388847ab56c0f2836d99c7c5656c9", + "modules/assets/src/web/brands/list/ui/index.ts": "4c9e574acb54a2733c6e2df29eb2edf3316adbd08df1368f1677141c2e809943", + "modules/assets/src/web/brands/shared/api/brand-api.ts": "e48eac6e9db626b2081f5aa952932a92c1fcf4f044f4cacd17c8dc2e1c1a1740", + "modules/assets/src/web/brands/shared/api/index.ts": "bf5423dec04772861063ed49c93127c093d025386cf4d7e5b97bb1b228cbfa31", + "modules/assets/src/web/brands/shared/brands.test.tsx": "3b03b65645938b38aea59a8d3031dc3dc6d5ea6d2c29a9467967397903e05ec4", + "modules/assets/src/web/brands/shared/controllers/index.ts": "b18c0c09057d416431b0a27f9f04309ff05ed19a5291a5ad2ce008b46593a9be", + "modules/assets/src/web/brands/shared/controllers/use-brand-form-controller.ts": "1a691a2c5f9dac619af83af9a271b4afcd60252d886567c9d20a4b90b0839b13", + "modules/assets/src/web/brands/shared/controllers/use-brand-select-controller.ts": "25f9308b062a0c1f0731f535a7526fb309c6c17b18b0d89036f6b4be187a069e", + "modules/assets/src/web/brands/shared/index.ts": "032cf620b2866c6410c51fa6b6ab397caf57fde9ba89f8f4a3108fe7922a6bd3", + "modules/assets/src/web/brands/shared/types/brand-form-props.ts": "f9e9683093b54b71c31fcd5bc10de8bea8af927ee46f26ebdea485d9825ed4ba", + "modules/assets/src/web/brands/shared/types/brand-select-props.ts": "51e60d6cd9407fe966b3f114bc6d007dc068300238d5de7d49d8c948500bfdab", + "modules/assets/src/web/brands/shared/types/index.ts": "6c0d7acd42caac1fc760f5b42619de9720257fa35f6bf269e1ddfab858860a83", + "modules/assets/src/web/brands/shared/ui/brand-editor-dialog.tsx": "1ac63ab815a266cde711aed09a5eb3cfc12f8f101ee9295c7d218d28640a83a0", + "modules/assets/src/web/brands/shared/ui/brand-form.tsx": "654a9f7d59bb617e64d3e1eb7a93763165c530756fd6779cd18c0d00907cec39", + "modules/assets/src/web/brands/shared/ui/brand-logo-field.tsx": "20e7db01984e3a69dceeb67f8a2ebcdb7cf3473f08e19cafe5b9860f838ac95e", + "modules/assets/src/web/brands/shared/ui/brand-logo.tsx": "430838582d95d6ffe7b9834899509e1d79b75d2a17512016cdf3596e0f3e4bd4", + "modules/assets/src/web/brands/shared/ui/brand-select.tsx": "f864d739bca17e968685064650b9f0a16b7e8b52abba3c965b15f3ac4b312fa0", + "modules/assets/src/web/brands/shared/ui/index.ts": "9492c0dde8c6a17b64872f80a3438bb2b6f79750a2a0133fd07d289e6f491681", + "modules/assets/src/web/catalog-fields/create/index.ts": "e3f0067ac1eaa1d5b101c77cec36fe70949d48e4c961bef1b0305b72df62ea0e", + "modules/assets/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx": "149bd9c4af15785475b6028ad9b243fc9688412b8985c9cc10a2cd8fd9a2fc19", + "modules/assets/src/web/catalog-fields/create/ui/index.ts": "e8b9099ef5430da1636687830192dee91bb043efb7bc8332b9336ebb228b0dc3", + "modules/assets/src/web/catalog-fields/index.ts": "654d30f11fda51aad263314eed301b7e025fbb518e0814a597393f750da22faa", + "modules/assets/src/web/catalog-fields/select/catalog-field-selection.test.tsx": "2d216447c652bb37ee96588414244970b4dacb7f44e9571775da61997203ec43", + "modules/assets/src/web/catalog-fields/select/index.ts": "23c63e2739fba81f740406a0d1f59a5a900e8cf088f9b78771ffeba9683740b3", + "modules/assets/src/web/catalog-fields/select/ui/catalog-field-picker-dialog.tsx": "9464aae231ee8ca86690b2434af3b133b0396f741fd83825a88ab7613cb362bd", + "modules/assets/src/web/catalog-fields/select/ui/catalog-field-picker-list.tsx": "e5fe43dcf4ed842b8b4f1204fd2b19be43404bf69dd895e1ba65aa7dd3c14f9d", + "modules/assets/src/web/catalog-fields/shared/controllers/index.ts": "22834822d620233576b39529f336b9bfe3297209399214922b1bcd30d3c3c402", + "modules/assets/src/web/catalog-fields/shared/controllers/use-catalog-form-controller.ts": "be6da9fdc5dd6dc1c71e3462a85b32626663add6294a172210515820a4c51810", + "modules/assets/src/web/catalog-fields/shared/index.ts": "5df803fdfd3fecce612d8546b49002a65ea7511adc93632c77d30aa408a5fcea", + "modules/assets/src/web/catalog-fields/shared/schemas/catalog-form.schema.ts": "65f96c55b787965b913fcbae5261e782fb886541a293b4cef0439a7b5d769021", + "modules/assets/src/web/catalog-fields/shared/schemas/index.ts": "fb4e1ca4a965e95600b4881ff0622c16b5d50b85f70adb768cba6002eca0de21", + "modules/assets/src/web/catalog-fields/shared/types/catalog-form-props.ts": "6ce32ca77311b1a3bba759c64b6b869b94600d96a1661e5f158780c9be902fc5", + "modules/assets/src/web/catalog-fields/shared/types/index.ts": "faae461fe81be5e2a07eab3e28baf0b5637da309980d4050b9f3e7dec2db408c", + "modules/assets/src/web/catalog-fields/shared/ui/catalog-form.tsx": "b052f0fa61c840420a74eeef615f1bf18fd31a64040c443b31c7ffb28db23d5c", + "modules/assets/src/web/catalog-fields/shared/ui/index.ts": "f49dbf424f6e56b28dd455ab2b7de488d16980737f5cde6b6e015f6f043a4a07", + "modules/assets/src/web/catalog-relations/create/index.ts": "d82d3c2b2949f3d4065e6749d424fd2717b33caaf6fed1e062d9c9f94073a33e", + "modules/assets/src/web/catalog-relations/create/ui/catalog-relation-create-dialog.tsx": "48b1c99680b783077b5c6eb257e6c181ee6021d289990644cab046ec51389b85", + "modules/assets/src/web/catalog-relations/create/ui/index.ts": "14694078efa4f75eed87055a4479b45ce610b44a1444b90ed96fe57f5ec06b6c", + "modules/assets/src/web/catalog-relations/index.ts": "97aa484c9490af5995cfc3e1a9cd68ed625e8e3c4689770c314bb3864637f0f8", + "modules/assets/src/web/catalog-relations/shared/controllers/index.ts": "95ec7044fca8211587e12a8703d11462bf900fef752ce48fa21ba07614a59c13", + "modules/assets/src/web/catalog-relations/shared/controllers/use-catalog-relation-form-controller.ts": "b498c57adfde280f66369385cd614166a0ef884904b37bc3f4a80fcba12d40a6", + "modules/assets/src/web/catalog-relations/shared/index.ts": "302e24e43b7e632b99b870073c88879b4fffe6ea9a8311f58e627c868f302fc5", + "modules/assets/src/web/catalog-relations/shared/schemas/catalog-relation-form.schema.ts": "3431e2994e145811d105a7d3ec04f0cd4e8cda3917e2b2f842897a73ae0f5429", + "modules/assets/src/web/catalog-relations/shared/schemas/index.ts": "a5b382032473a58ee4e7dbac6cc84871d7eb83d441298b1fb5fb27a2acc409cf", + "modules/assets/src/web/catalog-relations/shared/types/catalog-relation-form-props.ts": "c123176f45ba3bbf620574546ab25e958d7a432661da5efb7055b88f46a68872", + "modules/assets/src/web/catalog-relations/shared/types/index.ts": "144d5ef1e4a60ce35b2f45eb4d20cb853f501dd05af7eb6513427c998c52d91e", + "modules/assets/src/web/catalog-relations/shared/ui/catalog-relation-form.tsx": "0b0f96bd916c46d6edd49d6882b4dc5d024d8b9a124ae3074c5bda19bb33a6d0", + "modules/assets/src/web/catalog-relations/shared/ui/index.ts": "c94164df06d92da294176c67e5ff4a1ddbe513f4934a94091e3d50b162b3a65f", + "modules/assets/src/web/catalog-templates/create/index.ts": "288c1c4e16965f7a541ab2e18c44b0a598f54306d16e05665f45235ae5716d65", + "modules/assets/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx": "d0f05d20407634c9c8f7e4cca6932c49c683bfa5db32b84a476585f2a532f07f", + "modules/assets/src/web/catalog-templates/create/ui/index.ts": "745d5e9f4708b742a6d8ccf03e2ff5d59f566c420bdf8fb883f74b31427db260", + "modules/assets/src/web/catalog-templates/index.ts": "88baafbbc822ea4ba968ff3f142bfb6e617b78193feb92cdc5ab0a4103aa11f6", + "modules/assets/src/web/catalog-templates/shared/controllers/index.ts": "3347224fcce1ad878f0a05f31a323f3e9e40a536cb7e52602f2ebc426a1cdda2", + "modules/assets/src/web/catalog-templates/shared/controllers/use-catalog-template-form-controller.ts": "0178b53b4dc3ef0d8183f25390b832117e2b2ac89230d69697aa3baf997be9d6", + "modules/assets/src/web/catalog-templates/shared/helpers/append-template-fields.ts": "1ad86ab610c5137275f88ad92616a2890a3da7b6c2728707bc32b8082bcafb08", + "modules/assets/src/web/catalog-templates/shared/index.ts": "4329204b4905787dd9ed703140f34e7bff687aec7f117ed7d8859289cc65c71d", + "modules/assets/src/web/catalog-templates/shared/schemas/catalog-template-form.schema.ts": "906ef9961bf5c4fa52d135733e537c06e902ee74e86f12c72bca712ef2e11135", + "modules/assets/src/web/catalog-templates/shared/schemas/index.ts": "937ce68c5e517519b57c81391142f72bbbab8226c0db66929b02783e637a83d2", + "modules/assets/src/web/catalog-templates/shared/types/catalog-template-form-props.ts": "2fea65ad3a6db0b398e6cb884df5f10c963a518cce41778be9cce22b3c99cc4c", + "modules/assets/src/web/catalog-templates/shared/types/index.ts": "688e75ee1028c8c8b088dc1624d095e65904457095a374e8e9c4a0850b8084b7", + "modules/assets/src/web/catalog-templates/shared/ui/asset-template-icon.tsx": "570fc72a3035b6248a820ec77cb1c431b414c4416ed690fbc5cfdd712db0ce61", + "modules/assets/src/web/catalog-templates/shared/ui/catalog-template-form.tsx": "0aade656c73e03271d123de1c58517931bb65bc1ff3557c986d6cee42ad7f9bb", + "modules/assets/src/web/catalog-templates/shared/ui/index.ts": "afbde0b015102fcac34d8f82a43a40bfae2cea7d6f9bb84c84e5f6619ea8f770", + "modules/assets/src/web/catalog/delete/index.ts": "c8140a44278bae5cf25b81272fa4aa7aff758855275f23da3df9252923fd3f22", + "modules/assets/src/web/catalog/delete/ui/delete-catalog-definition-dialog.tsx": "15bd405e131b8e85dd33099b3fbb10e16dc89741f12aa9fe903b3490d21f0c2f", + "modules/assets/src/web/catalog/detail/index.ts": "f2c6bd8f819c7bc0bfb54309b997792bf2dd97f16451d6dc97e694386e490123", + "modules/assets/src/web/catalog/detail/ui/catalog-definition-dialog.tsx": "bfca4352efe802258f711a7ed5ce951bc1aa1ac5eb8ee5cca9d5111ac7e72028", + "modules/assets/src/web/catalog/detail/ui/index.ts": "40895f6b3d31b0837606ff7eb10c2e41fa9fbac9d87d16ce02f66b529dbe11e8", + "modules/assets/src/web/catalog/index.ts": "be94f323ac1b28cce45693e147c9cf14cd0e45a48c3b8ed25bc23419c2cad4c3", + "modules/assets/src/web/catalog/list/controllers/index.ts": "161a958e3010d32254048c7deca88ddaf173e3af0c856ab578d7a4c4b7c10074", + "modules/assets/src/web/catalog/list/controllers/use-catalog-page-controller.ts": "3e5928122d44c5fa8ea8d749dc387cadd8186216509ab965213e602910e44b18", + "modules/assets/src/web/catalog/list/index.ts": "3960f960d93958e50f5de0fb461d201feafddd92f1514568fdb131510c126fb1", + "modules/assets/src/web/catalog/list/types/catalog-page-props.ts": "54c6dd7ee918b1cf6558fc48c5b79b4ef90ac00210f0f27f48710160826030a5", + "modules/assets/src/web/catalog/list/types/index.ts": "7fab0398685f90c6ac49670d205037690db4b851717a0079cb74864c710fd848", + "modules/assets/src/web/catalog/list/ui/catalog-cell.tsx": "03313b2852b1021eac0c7a04f17678428dbb774a21739faa3e4492c8b1079cd5", + "modules/assets/src/web/catalog/list/ui/catalog-details.tsx": "e191dbf9517a1d2df5e892f1b93b6314eba26906c718cdbf98471ccb923fd93e", + "modules/assets/src/web/catalog/list/ui/catalog-page.tsx": "d158943f31a775d26a3a5a0fbb463e4030181aecbbd209521c3def4c664451e2", + "modules/assets/src/web/catalog/list/ui/catalog-row-actions.tsx": "6451d66f41e2be288b12edbc4087e579675326135fc1d93e2bbd4045440dbaff", + "modules/assets/src/web/catalog/list/ui/index.ts": "e60f2c6f906821cc700d2db433bea3c9f1f544ea3cc68c4e0b291e57ec1aeb77", + "modules/assets/src/web/catalog/shared/api/catalog-api.ts": "92ac9d592d9a21fcab147d5791ae10012c8d62ed9f996e40d727e259820c540a", + "modules/assets/src/web/catalog/shared/api/index.ts": "892276ead9d71830f2b1bfc063695cd331d1000def64adc75b5895cb999e9e03", + "modules/assets/src/web/catalog/shared/catalog.test.tsx": "8663f1dbde7f016000bd21b0ff928d857b63801b4fd30f4060ba8c13f95cdfb4", + "modules/assets/src/web/catalog/shared/controllers/index.ts": "c3215bd06b5240d15b2bc1af618d35a74b2b4ece2dde68e8502abf20f06d1077", + "modules/assets/src/web/catalog/shared/controllers/use-catalog-save.ts": "eab0d783cfd03f8e0a4dd20fed17f67c296f26673e403634909338fa2d791e0a", + "modules/assets/src/web/catalog/shared/index.ts": "cda5b58dd8fde847d110f50329807d8b70307d1d095e47779acb3cc14093886a", + "modules/assets/src/web/catalog/shared/ui/catalog-editor-dialog.tsx": "dc10d81134afcb9aaf5d5f83abde71c8fc5956fae0afbdc540c90995b0d7e2fd", + "modules/assets/src/web/catalog/shared/ui/catalog-error.tsx": "5473d0bc8b36e0a1fa68fc119cac2defdfeac2fb3c34d8797975977ab5541da4", + "modules/assets/src/web/catalog/shared/ui/catalog-help.tsx": "bf482685b729e6e9c5fe5386179f7ccf57e8c42c4f0820865d2775d7d41314b7", + "modules/assets/src/web/catalog/shared/ui/catalog-name.tsx": "c004dad9019b24a78f029a913e86fcb733d20666ff687157689b1b3387739c44", + "modules/assets/src/web/catalog/shared/ui/index.ts": "483a2d11a512b9ca8bb651455699126d0cee1453065db17e2b1502536bc3f159", + "modules/assets/src/web/directory-memberships/detail/controllers/use-asset-directory-membership.ts": "7bd9aa60544ec59975ac8b91249a325ad92de5091d722b250e11779e0c2437b3", + "modules/assets/src/web/directory-memberships/detail/ui/asset-directory-membership.tsx": "f571c318b475234f33d2160dcf543ab45b1abb8264bc791d5c4eabff224686ea", + "modules/assets/src/web/directory-memberships/detail/ui/domain-directory-memberships.tsx": "c141cfdaf6642a23bf744c93ec7455cc5ba03975fea6bae3e376fcb995efb723", + "modules/assets/src/web/directory-memberships/manage/ui/directory-membership-editor.tsx": "8db79bf44e6e3defe8e42bbce96b806ea4f3a686966e2b2da4594d5416ea3b5c", + "modules/assets/src/web/directory-memberships/manage/ui/end-directory-membership-dialog.tsx": "271633bdfe2130f1a23b35036115bc700a49cbefbc5c8603a4354f000315977f", + "modules/assets/src/web/directory-memberships/select/ui/directory-domain-picker.tsx": "2054626aa89c1eef878763360a961a37759838814c0e6db196cb7eb61593cfe2", + "modules/assets/src/web/directory-memberships/shared/api/directory-membership-api.ts": "2663265b629209251be4b763283686f1f6f18685b3bfc8a557340528e47868f1", + "modules/assets/src/web/directory-memberships/shared/controllers/use-directory-membership-mutation.ts": "d4df6c15ecfcbfb26c9be830c381caf48eeb9942354b2066fbf6867f58fd038f", + "modules/assets/src/web/directory-memberships/shared/controllers/use-directory-relationships.ts": "8b2aa244a2af27ecd839d894222b228161d333aa6cdc6d41e1184cd122b1198e", + "modules/assets/src/web/directory-memberships/shared/directory-memberships.test.tsx": "cd8bbb35417975fb5af99f719708ce094bdd212a53680a37cba28f9a794a754a", + "modules/assets/src/web/directory-memberships/shared/ui/directory-relationship-table.tsx": "2eb1dad1ec02c5020c21621fb3c0225c3d8483d21f935f3c2ea13b6154fecb37", + "modules/assets/src/web/directory-memberships/shared/ui/directory-relationships.tsx": "d523f5cc4b21be6fdbf516df812b4719e3ae08c5f2ae756f640b559df77eb7dc", + "modules/assets/src/web/index.ts": "30a8c78828a2bad2707b129bb8c96c059915680a3e075618250fd0a2dcaf2332", + "modules/assets/src/web/infrastructure/list/ui/infrastructure-page.tsx": "107547a06d24fb7b132558caee9d1cc72d72e552c8e13d5ba838220027605637", + "modules/assets/src/web/infrastructure/shared/api/infrastructure-api.ts": "68a07abfc733579c039d3450eb02ce20c54d9f33dae2c9cec7540d72034a26a8", + "modules/assets/src/web/infrastructure/shared/helpers/infrastructure-roles.ts": "709869eb7d303a0c4aba7dbf591d08a6809de9f0a3c943da86917275bc61ded1", + "modules/assets/src/web/infrastructure/shared/infrastructure.test.tsx": "8754273ed7ee336eac8b1002ecf53141f997b29b6b944a59b8fb034616987199", + "modules/assets/src/web/infrastructure/shared/ui/asset-infrastructure-panel.tsx": "b2d7b4763c3267cd26edb7c2a5bf99b3703d2462e6efa215fd904fc1d4610cda", + "modules/assets/src/web/infrastructure/shared/ui/asset-infrastructure-sections.tsx": "28e06bb2f08ad5023a87db4ab177e7e298bc728416a4a26a1d02cc3009b35fbd", + "modules/assets/src/web/infrastructure/shared/ui/infrastructure-editor-dialog.tsx": "11618371a4e39ea19836e45e6b30354a6fc1af2df87672c5e94b4af6f3b6f21d", + "modules/assets/src/web/infrastructure/shared/ui/interface-fields.tsx": "e34312abdad0e8629e33f75124bc996ff81e2f2b37cc123c81ac73fb51c9a359", + "modules/assets/src/web/network-share-publications/detail/ui/network-share-publications.tsx": "520fe95b62d0e79eb9a59f273c9bf89474eb7f2236ee2551c0d8d9b7d76deaea", + "modules/assets/src/web/network-share-publications/manage/ui/publication-editor.tsx": "d62142789b3988d90beb5dc56fcc925667248af84e5d26e36d0e32feb39bdc39", + "modules/assets/src/web/network-share-publications/select/ui/publication-picker.tsx": "f61a16e0a145a973a1474df406516eb6a20292e69d5029a4864c54d240fb5a38", + "modules/assets/src/web/network-share-publications/shared/api/network-share-publication-api.ts": "4dd243ec7c15ae138196e0108a242d1cccb55f05350843e92104ab8a2b3ffa69", + "modules/assets/src/web/network-share-publications/shared/controllers/use-publication-page.ts": "170c5765fa8ccafc86adf20cb64492ca751193a1451b47fd1d2662756d826d3e", + "modules/assets/src/web/network-share-publications/shared/network-share-ui.test.tsx": "e29e324ab631f0b91306188041299be96aaea7ddeae8d16c325f16b3955f26ab", + "modules/assets/src/web/network-share-publications/shared/ui/publication-list.tsx": "0c0e23dc8b004ba88123b3c6233cbc3e102d5fb233da8dc32c4eb70adf3fbd3f", + "modules/assets/src/web/network-share-publications/shared/ui/publication-period.tsx": "c933b4592cde9e464e722bbfab612a50e10fde252806df5a3dcfba75d47b2a74", + "modules/assets/src/web/network-share-publications/shared/ui/publication-row.tsx": "1696330e6165b5421bb92353d4a870138ef248418de221eeeef4b204f36515f5", + "modules/assets/src/web/shared/api/delete-record.api.ts": "8e6079442c1274e52ff6d1a63aac6f4cff54cceae41b12611740f086e0f1c44f", + "modules/assets/src/web/shared/api/index.ts": "6eab2438707e2d500c113ac8ac24d3b3aa8f8ead536214c9d1e58c0d7b80f1a4", + "modules/assets/src/web/shared/api/inventory-api-error.ts": "592da672f8c9aa4d7d18f5bef3f26d32b16382b6e62679dbee873365c432e01a", + "modules/assets/src/web/shared/api/inventory-api.ts": "45b840f9006be04085cd4a955235812ea12e15413b440123e1542b5e62c61cb0", + "modules/assets/src/web/shared/api/inventory-request.ts": "87539558b31439edba75198658b79caca07d99921cabd8eeabf0ce4a65f11337", + "modules/assets/src/web/shared/api/support-api-error.ts": "233c79e69bac0222ebd94120030313ff421f5ee4155315aab630c8c327158092", + "modules/assets/src/web/shared/api/support-request.ts": "b0b33872c1fe22dfb994c3024aef075db5365702ec08d6775d2ea50df31e0e6e", + "modules/assets/src/web/shared/hooks/use-asset-collection-state.ts": "464e6837c572c5e737dc7a055f63e90be4211711fefbe129b9e06881cf64b418", + "modules/assets/src/web/shared/i18n.ts": "e58d996684d8590947cf585cc173f99b00d1f4f368bf63e8de260b4bbd8cc94f", + "modules/assets/src/web/shared/index.ts": "c154213a90ca1372cfe2ffd7595464ecfc4692127f142abeece53b3451cd4627", + "modules/assets/src/web/shared/queries/index.ts": "d32814bdab31bf35d0fa88bb133bd0071d583645b5537215051dfd0d763dde94", + "modules/assets/src/web/shared/queries/inventory-query-keys.ts": "f1855f43dc6f1c339a1eb143ceb09c79eee8889f850619c67ba3179f41a55fc8", + "modules/assets/src/web/shared/queries/support-query-keys.ts": "5bd9bc069858168f1684d43a421341281ef997bd5dc6f7517c824db3475ef2c2", + "modules/assets/src/web/shared/ui/delete-record-dialog.tsx": "52e9f6ce58e86b051d28c9f1c2d493e316182155490ee95425ecb7346890a013", + "modules/assets/src/web/shared/ui/index.ts": "45c755caa5f442213b67a37a15ecc0347be2cf2618ddb4773fadc7232a7b74b6", + "modules/assets/src/web/shared/ui/inventory-feedback.tsx": "66623d25050b7390329ac89ee2f6767d0a722059eced438ae7bb226e819d1c92", + "modules/assets/src/web/shared/ui/support-feedback.tsx": "88fd2cc7bd4a4fc6838307a58c31a1bb0ca4e64ded9895d441460d22fcd20f1a", + "modules/assets/src/web/support-connections/detail/index.ts": "8dadee0248dbe0bb92cab03251ad2f4d63b2f0c382ff7c72539670a63ae083be", + "modules/assets/src/web/support-connections/detail/ui/index.ts": "2f2ecccb20a32604879e77d1e10242e7f942a8162370b0b2fcbe37b3dc70ef42", + "modules/assets/src/web/support-connections/detail/ui/support-connection-overview.tsx": "f8ef16253a916f26d3af7022656e18c2dec0f44688283a4dc155b36ee4b4eb65", + "modules/assets/src/web/support-connections/detail/ui/support-summary.tsx": "024542e7bebc98962599e302a7a2c625a9d035b7303357f4a27a78665180621a", + "modules/assets/src/web/support-connections/history/index.ts": "31e5d76707bf93e69037db039d03e86c877e96795729684d12bcee43fc388b49", + "modules/assets/src/web/support-connections/history/ui/index.ts": "f51665ab6ef40974676bae3ee4317c9eb97c18e842ec6c83766778e1e1f07efd", + "modules/assets/src/web/support-connections/history/ui/support-history-dialog.tsx": "1f93430268251d9a43de49e8f5edaead73c9b142978515eb3bec3ab9697eb657", + "modules/assets/src/web/support-connections/index.ts": "0a2b0abfa0d40a147383e09a705bc851c9e130aee8b3fa1eda6f9b2aa17328ea", + "modules/assets/src/web/support-connections/list/api/get-support-connections.api.ts": "56863b96faf60c4dee4a1a7fbcb21c7fdec82bfa02bc75b10563768ba1a53ac3", + "modules/assets/src/web/support-connections/list/api/index.ts": "dec666e443c2fda0b4c30df4ede11bb606d29249f2f0b860fb20d22c109a193a", + "modules/assets/src/web/support-connections/list/controllers/index.ts": "1f10be57b75172f337efb48542f5b73ca0f244a202492c2d08d7fc18c0af46b6", + "modules/assets/src/web/support-connections/list/controllers/use-asset-support-controller.ts": "2309a56f09fdd624fff49d3680914808b3de91e5579189d80c946884582dcbf5", + "modules/assets/src/web/support-connections/list/index.ts": "4174e6d3b010aac9cbd11ed1892e4a19389b6029b1b5c848458b5a79730d7716", + "modules/assets/src/web/support-connections/list/types/asset-support-props.ts": "c36f8e93b7e037e13a6f5d5171f86ed943aa94c344571a9250837ceb9c04ba78", + "modules/assets/src/web/support-connections/list/types/index.ts": "6bfc186a02366772c171955b1aa4d5503bd39b9f1184cb28c96a0ff5bc75f1f0", + "modules/assets/src/web/support-connections/list/ui/asset-support-management-dialog.tsx": "c2c4e67db01eb0752e0e3c571988906df16c812d4173c35b2fb159fbd51f9a5c", + "modules/assets/src/web/support-connections/list/ui/asset-support-overview.tsx": "4f76eca9052f2e58e48749903a7e4d2d12758d4d77cf149c429380aa5c9b1d5e", + "modules/assets/src/web/support-connections/list/ui/asset-support.tsx": "0d14b1ed1ccd1abe95700fa2ccafb335198df8c66965feea8807f85a001b0d0a", + "modules/assets/src/web/support-connections/list/ui/index.ts": "ccf68a79d35dba36341b3a75180668e0c8906f7c463ebf90cbb082876a73f2cb", + "modules/assets/src/web/support-connections/shared/api/index.ts": "0037b18e5ec6cc8707771ac08e5016fa21cc8193059a119b67329ef40e10afc1", + "modules/assets/src/web/support-connections/shared/api/save-support-connection.api.ts": "74b7b7568d6eca1e3e62a55088558bd17a66197b005e4cf3a21c58de278bdebd", + "modules/assets/src/web/support-connections/shared/controllers/index.ts": "623e05a58ed4fb4f3f3ebe5087d06a4634a81c68d55d5ef973cd93cd54032774", + "modules/assets/src/web/support-connections/shared/controllers/use-support-form-controller.ts": "4528713fb924efaf8f52ed90a01225c86cf57cb4d207fee7bbb5bff1a1f08994", + "modules/assets/src/web/support-connections/shared/index.ts": "95398a58ec7ee2b2ac5f5057fa1f41f0581800445f996208010a1ec9601d0ce4", + "modules/assets/src/web/support-connections/shared/support.test.tsx": "50e16e929e74c0266e798e6b319437ff8e134799bdb4f5f36aef9c72946c6e17", + "modules/assets/src/web/support-connections/shared/types/index.ts": "25d465ca86cc8c029d0ce265bbde822013530029e9cf22c5feb313c643157557", + "modules/assets/src/web/support-connections/shared/types/support-form-props.ts": "f19265236bb031ab2f364dac9a5d6757eefc80671f5d8613d35c9693d18b8001", + "modules/assets/src/web/support-connections/shared/ui/index.ts": "f365c3996ad6d5cff864cf8609b18d92b18067781c0543b9c3e599742f391be4", + "modules/assets/src/web/support-connections/shared/ui/support-connection-editor-dialog.tsx": "3173c9d2a4c6b7331dad6691c9a0611de8c5873fa7bd9368a8a680d319028592", + "modules/assets/src/web/support-connections/shared/ui/support-form.tsx": "dd1ccbac0a2f587d243b8b61a64cdbb11e4c6d3351a878a59646e15814fb6f02", + "modules/assets/src/web/support-connections/shared/ui/support-help.tsx": "3b2c1e9e265e99bab0f116dfd49ea173af915da7d70af41abad81bfca3518b82", + "modules/assets/src/web/support-connections/shared/ui/support-resource-create-dialog.tsx": "4cd2f22d78e72c7643e65b1245368337312290b41b9433ba04ab452d2f291279", + "modules/assets/src/web/workstations/associate-assets/controllers/use-workstation-asset-add.ts": "c15b1a7b3db9f04ca573eb9a4af87a30a6b66b265a55f5db6b38f07c400b61f3", + "modules/assets/src/web/workstations/associate-assets/ui/workstation-asset-add-actions.tsx": "16f00a7b6f8d3f837ba98304f73092a71fcf2c37536105f099c6a9726d32eee4", + "modules/assets/src/web/workstations/associate-assets/ui/workstation-asset-add-dialog.tsx": "cde84875573c05c1538e7833284b955643c68f2542165933bebf44590c4e7378", + "modules/assets/src/web/workstations/history/index.ts": "109007cbcffb9568d504e79f963f056e3b90d31206d53350890e432689731c6b", + "modules/assets/src/web/workstations/history/ui/index.ts": "65f8143bf541b198f041e0ed7c1fd503f1ad89d5f4d52edf77aec10209991d6e", + "modules/assets/src/web/workstations/history/ui/workstation-history-dialog.tsx": "58ef0eab104ec91f0d6159aec1bc764941d0a7f89a7544d75a9be3eca34b313a", + "modules/assets/src/web/workstations/history/ui/workstation-history.tsx": "ac832fa43bbe3d04083e74873a86dee6ecc856667d04ed212b30ca0291d772b2", + "modules/assets/src/web/workstations/index.ts": "9080282b387ed542c0f219e027a0cc335ae73e8a17ebc27024e44468132e7907", + "modules/assets/src/web/workstations/list/controllers/index.ts": "4100b754e995f1f71a6920cd257a7750b397847e0be7117417ddb40b166b005b", + "modules/assets/src/web/workstations/list/controllers/use-workstations-page-controller.ts": "0ce509ebbeaea0c065753aa1690a25d3101d3b34e4db75580ea032bf45d0f61d", + "modules/assets/src/web/workstations/list/index.ts": "6750b401957cd3e18226a8570e11eae1e77114a801f651630c6c0da7a1a7c70c", + "modules/assets/src/web/workstations/list/types/index.ts": "ac1469e5997f8f1341c738d2eb0c06cd099e30183f7853d46b4bf9de6669e34d", + "modules/assets/src/web/workstations/list/types/workstations-page-props.ts": "9aafea93d9d88d345ee21cbee3c706b0afe20a9e0726f546faf8c502c1239c53", + "modules/assets/src/web/workstations/list/ui/index.ts": "d338aab4e2dfb6d667a3211fd4e43ae18cf5953836802d983c65337a094bfd63", + "modules/assets/src/web/workstations/list/ui/workstations-page.tsx": "f789e401fcc49675bf3a8b4a7cfdd5f7d66c1a497ea2d8cf693b4776519b2b52", + "modules/assets/src/web/workstations/rename/api/rename-workstation.api.ts": "bf0405308b09beaf1acaa63dc24428e45b731e6fe95e5ef30287da277372ff94", + "modules/assets/src/web/workstations/rename/api/rename-workstation.test.ts": "d6af014207b71c9fb8790882787c5099ed78c022651fcb2adea2f739bb460dc5", + "modules/assets/src/web/workstations/rename/ui/workstation-name-editor.tsx": "f4b352d8669b4121360c5d5a8ecbec33aaa1c300cdf31f8a03e68eceed48679c", + "modules/assets/src/web/workstations/shared/api/index.ts": "7bb8d2324b1b8cc6b39f874eb546e0fb924c31dc659c043ad56e22c3167cec1d", + "modules/assets/src/web/workstations/shared/api/save-workstation.api.ts": "7fb38f5958484bab34386a8127721575a7e2e224948a1cd326576cd14cb98d06", + "modules/assets/src/web/workstations/shared/controllers/index.ts": "2ae4941f55421b8b889c41a94b8464491db7a9d0677e53512b1fa5531e135c5a", + "modules/assets/src/web/workstations/shared/controllers/use-workstation-form-controller.ts": "e64d2ed36320c6295148b7b5ecefb596fb4a9faba5788f50623612202fea32d3", + "modules/assets/src/web/workstations/shared/helpers/workstation-asset-availability.test.ts": "1e60486f5c72770d32af638f6a8bcaf19557c52071f4dae8c676e863c599950f", + "modules/assets/src/web/workstations/shared/helpers/workstation-asset-availability.ts": "4dd2407f82bfe7d968858fad34011d30628fce6c6a3fe027055e7235723db37d", + "modules/assets/src/web/workstations/shared/helpers/workstation-creation.test.ts": "4ba30e0b2f1de47469abc8d4e7f6e4a75f61192d8726fd7b332c71818766a090", + "modules/assets/src/web/workstations/shared/helpers/workstation-creation.ts": "d44158cdb06a3ef6233ce3a531ae4ae6b9012b45557921f5a71a31998f749e60", + "modules/assets/src/web/workstations/shared/index.ts": "d7b1c4852780dd8f55b4f2a8f7f6fac02d812983a1ff5655af3b682dc1838912", + "modules/assets/src/web/workstations/shared/types/index.ts": "3d55f4ed63cd34525b89e195b8a7e6faf7f1ddf4d8ff050248a9799c0406c4ce", + "modules/assets/src/web/workstations/shared/types/workstation-form-props.ts": "e2ddb412718052a88e6806edcb8167143bc9aed43e7c6f397394cde6f544c365", + "modules/assets/src/web/workstations/shared/ui/index.ts": "4ae25abbaf6fd9454f158bc9533db2dde61ecc87be0ef1a158d95f8d0162a527", + "modules/assets/src/web/workstations/shared/ui/workstation-actions.tsx": "7b367a8496c3bedcc5ac877c3cac7edad52b4e99df70162bbff49f279e44a162", + "modules/assets/src/web/workstations/shared/ui/workstation-asset-fields.tsx": "8ca539c8a786eff335f6272315c00abadb62d95115a82955990d418f0aae2e4b", + "modules/assets/src/web/workstations/shared/ui/workstation-association-fields.tsx": "35111b9134ce7a3e5b46487bdb3d10c21f02b57906be418bc535e5e0e5248253", + "modules/assets/src/web/workstations/shared/ui/workstation-computer-field.tsx": "e99860dfca9ebc2d78b8a95317c01057f6ff5fd4e76846838b4c6763f5c4109e", + "modules/assets/src/web/workstations/shared/ui/workstation-editor-dialog.tsx": "f7312f97e176d53e96e73e892e3c010014d74df096214e5c8b90af40c30fc29b", + "modules/assets/src/web/workstations/shared/ui/workstation-form-actions.tsx": "8e0d2a15b3e62af506f70a7b168f2fbfc1621616c5ea9b598034e9f3e19cc12f", + "modules/assets/src/web/workstations/shared/ui/workstation-form.tsx": "72fde34bb05dacf4401fc8df8bb2e02b513364d0d147991e7c4baf1c6d24d285", + "modules/assets/src/web/workstations/shared/ui/workstation-identity-fields.tsx": "5b7a834ff3b2c7dfb8e1f9b8f4596b0c6cd833210766aa1a43653c31feb3dfc3", + "modules/assets/src/web/workstations/shared/ui/workstation-lifecycle-dialog.tsx": "38f477896684500cd02108c712711391903111c99c5107ed238ff34a78fe07e8", + "modules/assets/src/web/workstations/shared/ui/workstation-save-feedback.tsx": "1691397ed4f9f3a960f1e4464d21394cd6dda5113d5d6b8fbdcfb255b03427fa", + "modules/assets/src/web/workstations/shared/ui/workstation-summary.tsx": "fbcbf223e6e674ae0eba1d37c5adb0573091451487d89f373181f5b2562ded37", + "modules/assets/src/web/workstations/shared/workstation-name.test.ts": "1ef22a44d14858ab4b99b3be7a980da8259dc6bcb59a4cfe7800296873597ef3", + "modules/assets/src/web/workstations/shared/workstation-name.ts": "c696e867a20f4eaf16c24e8e817946a7bdb6ee624f93bef9f7587d6ca6ca72dd", + "modules/companies/src/api/application/access-response.builder.ts": "21b41921b31aa037d53903ead3c774834b971b929594acc2cd59273d07064c4e", + "modules/companies/src/api/application/access.repository.ts": "8ee92a5d69248f9f3eb46b15a3b636cc8f62af32ff13167515f4da7bbf22828a", + "modules/companies/src/api/application/access.use-cases.ts": "d0df46e81e66069fd920b9d815da5510c7cf2e89db9560895924cb53c3fe798e", + "modules/companies/src/api/application/application-configuration-input.mapper.ts": "75baa9b4aa28f4cc56d07bf5ebffcc37620e9c4ba13c960d30a500579a868ecb", + "modules/companies/src/api/application/application-configuration-policy.ts": "e48acc318db59e555e18c0b64fc9df3bb315d52ebd297db05e447c51f896b87c", + "modules/companies/src/api/application/application-configuration-response.builder.ts": "cdd5a96799f4749d9067ae6673dcd655ad113a5dec0d98637d7bca29179bc117", + "modules/companies/src/api/application/application-configuration.repository.ts": "966756b81dfa96e4e77753b5ad61954b639d34343323dbf2249073f3da0e3961", + "modules/companies/src/api/application/application-configuration.use-cases.ts": "0e0e9989a02b1e353a1239fed658e652df412c17bf9e65d696a54b820bcd5133", + "modules/companies/src/api/application/certificate-configuration-input.mapper.ts": "e17c2a6628ea2f93698cfb8b6282f99e71f1236dcd8fe9f7c492e570c6d0d32a", + "modules/companies/src/api/application/certificate-configuration-policy.ts": "6c3293895018e015ec767f64af983274e9c43699f65c309af8d8b297bf0f4833", + "modules/companies/src/api/application/certificate-configuration-response.builder.ts": "80c3b46b516be611d03f0262496008f1b611eca9a428bd93cb911ece5fb14603", + "modules/companies/src/api/application/certificate-configuration.repository.ts": "f2bbc7de8046b257a12f99f360638ef0cbd897a936bac9b90cbb59b4f8a73304", + "modules/companies/src/api/application/certificate-configuration.use-cases.ts": "70e2804705dc284ab73db7d83219e0959799e928ec889b3bb61c6a30c24a78a0", + "modules/companies/src/api/application/company-input.mapper.ts": "ecf4444529c0f798e95ca9a7b2f062158c5497745d1ec53cc580faf253bd5b7e", + "modules/companies/src/api/application/company-logo.use-cases.ts": "fb290bdb5a9e4082aafd0effabb21913968b5a6ebd7aa32db3a2eb37559eba8b", + "modules/companies/src/api/application/company-response.builder.ts": "944b1cb1654eb12c4c5b7e317d0d109a329245ad824d35a57504fa234342f6e7", + "modules/companies/src/api/application/company.repository.ts": "37afacef82d65cf29a805a57c2807e72f34bd4d1cc9eac8a6f2374628aecb8c3", + "modules/companies/src/api/application/company.use-cases.ts": "1126b91ed23970c97adfdc36eee6e35c4c897ccce92e36a54b3fabaa1d5cf418", + "modules/companies/src/api/application/dashboard.use-cases.ts": "646d8d689068d5fbf4e6ac3e750cfdf6918857f64c06397dfff581f731e01db8", + "modules/companies/src/api/application/directory-context-plan.test.ts": "5eb4240ad4d06c3afc7486c862e1afb8c949019534cfce849f9f918d416de30c", + "modules/companies/src/api/application/directory-context-plan.ts": "700226c8ed8ee5ade276a6e855423bd64067a725c0aab073a91e9eb4f8359c75", + "modules/companies/src/api/application/folder-mapping-account-policy.ts": "1133da593d32299d1bbf727712270f182a057a8cf69bae626af1f75889b33757", + "modules/companies/src/api/application/folder-mapping-input.mapper.ts": "22eb840657270c9f85da1d97d2a31eddb992df78393e1cf2c5d01304d00fa0ce", + "modules/companies/src/api/application/folder-mapping-policy.ts": "ba2f5c94da5736047296beb7818af763d11798a613c8f688df6a51e02822fe1b", + "modules/companies/src/api/application/folder-mapping-response.builder.ts": "ac10405e5256d2796654e297b7c716fc9b523832628e9481a4f0ba20ddc83e9a", + "modules/companies/src/api/application/folder-mapping.repository.ts": "a7e81de012cc0030320c8cd1aebe878d88c598f047a1b0388cf6c89d744cbc2e", + "modules/companies/src/api/application/folder-mapping.use-cases.ts": "0bf16bee97bbc15923574a40d54aa9546a30aa9612c4736e06dc226efa3a304b", + "modules/companies/src/api/application/local-identity-plan.test.ts": "b6025aa01707d1e02336fb0cfe91568c5be09a7c48b997d0afba81eb3a78a716", + "modules/companies/src/api/application/local-identity-plan.ts": "66c5f8c3bde5db8efe167685bb0156bfea7af3b506f59480bddf158bdb7ea5ff", + "modules/companies/src/api/application/local-identity.repository.ts": "61ec11beac43590ea14f177513e5f077132768c8414f2d4c5d8e73eb7bf082f0", + "modules/companies/src/api/application/local-identity.use-cases.ts": "dff2bb604fdf6b4890a15c2c06c5fe6b36b9bb86aabc7825b01c9ebbe179b607", + "modules/companies/src/api/application/mail-configuration-input.mapper.ts": "c1121f313303c7bf6e5c3a843bf56bd04f4cf5c5a49624ddd97a2843f45b4804", + "modules/companies/src/api/application/mail-configuration-policy.ts": "d054dd6b5ec66dabf2235ba9e042dba9a57722b70350d6ce7ff86ab826f9bfca", + "modules/companies/src/api/application/mail-configuration-response.builder.ts": "b50042bab8f3de45ef5efaf6bb713c04a9fefac13d037f506e3a38c5705aebea", + "modules/companies/src/api/application/mail-configuration.repository.ts": "4299ec4e916d79fff38b29469bcb7355dea61fe376b6e459159949a85fd46567", + "modules/companies/src/api/application/mail-configuration.use-cases.ts": "bfa88b07b27ebe3761cacd80a45cddd1b88343c04e0b3835a530cc6017f9ce39", + "modules/companies/src/api/application/mailbox-input.mapper.ts": "7074529d7d2458d3675a76853cc16e83fb9310504c26a390cb7814e58823e351", + "modules/companies/src/api/application/mailbox-response.builder.ts": "e08c51646becace4d7ddbc7fb1a8b830577e7f8c226f36961a77bb02aeb40f84", + "modules/companies/src/api/application/mailbox.repository.ts": "4654dfe8677268204e157b1400abcdc821c1fb761cc44881c9bf081ee015533d", + "modules/companies/src/api/application/mailbox.use-cases.ts": "8a61fe20b4f37d4f19e10bc4c7860253db6e778a1e40de09410b6cdcea8e7256", + "modules/companies/src/api/application/person-photo.use-cases.ts": "09d37a3507b384227a74068861b033e6198f4c01e98da822adde4755439b0b83", + "modules/companies/src/api/application/printer-configuration-input.mapper.ts": "4b926dea0b8c65e5b37a3e9afed8eed47db0c1aab426df11a9f46761d145dd50", + "modules/companies/src/api/application/printer-configuration-policy.ts": "f13fc1e8d749dd631ced817babe117aea5c2528aa93d8327b30cc23b16756692", + "modules/companies/src/api/application/printer-configuration-response.builder.ts": "e8d726fc6798edbcd16be961b18b53060dc2001afc93b5d37ed80c020f7bcfd5", + "modules/companies/src/api/application/printer-configuration.repository.ts": "d6ab8fcb435e1e1cd768e310e7c318c08cf1cd2dc030868033827101d571f3da", + "modules/companies/src/api/application/printer-configuration.use-cases.ts": "d6aaf86f006d71f71cf61d0b94d42a6315fd945408e36f29f1ff762543e28fec", + "modules/companies/src/api/application/process-response.builder.ts": "85a55e8e1e9d63356c7c4ed2aeee37e5cd05514b3e6da308566180cc0f841038", + "modules/companies/src/api/application/process-review-access.ts": "857c360b38c667a45c742ecfe4b9a95e5b2b4a7d99b9b370f750b7473ea69b7a", + "modules/companies/src/api/application/process-review.builder.ts": "79d2ca9508c3538f7c04a94ad5c18a93999b6eec6a980bcf6019feaf38e8f471", + "modules/companies/src/api/application/process.repository.ts": "1fc4ffb13e6e61ec35a461174fb1118323b4e1a50931c3dab6055f7000262e0e", + "modules/companies/src/api/application/process.use-cases.ts": "44702b0d16d7ca4b2bd7c5a95540c3cd3da16b59b2403236670e606cf4805584", + "modules/companies/src/api/application/remote-connection-input.mapper.ts": "513f861318b6762091ce164992431752859ef55898dd4bfde08e99998dba4490", + "modules/companies/src/api/application/remote-connection-policy.ts": "4033f05956ae99ccd0a95243ab14e13a5bf6973bac7ea069cd7d6cb1e4a7e9d4", + "modules/companies/src/api/application/remote-connection-response.builder.ts": "7d867557171bae896e7cc92e16491c526f3c3d58173e21f675378695d7a608b4", + "modules/companies/src/api/application/remote-connection.repository.ts": "f8052abe0c82b0117a05d0e97ff070ab3b1ca20034aee7d1f33cd6e8ee353d55", + "modules/companies/src/api/application/remote-connection.use-cases.ts": "6a3478c88ba4053c03ffaee44d86d595c1e9b0a961edd338173f49f0d77781d3", + "modules/companies/src/api/application/resource-client-capabilities.ts": "c27e220e9b415b1b35160a9a8809bf5792a1c4772e9e9d02105e4636c8560a84", + "modules/companies/src/api/application/software-installation-input.mapper.ts": "09125c484beec6a6b6a62b237eb271c9aa83eb83792af75176fa4376dadae4f4", + "modules/companies/src/api/application/software-installation-policy.ts": "71ebd911a1ff649e46ca88b0852b96f430f7029bc049276c81873d9abdf70ac7", + "modules/companies/src/api/application/software-installation-response.builder.ts": "682f7af3b10b1fdf0d60ae36aaf6878af772390624e9009a8ec6c65f8127917a", + "modules/companies/src/api/application/software-installation.repository.ts": "defe11dce86f906110cd04ef0cecb22ab416a7c80044a64308291f43ffa2b360", + "modules/companies/src/api/application/software-installation.use-cases.ts": "bad84001338d9d39860a45afac4b50165ee4cba1b775a4ea9cbdfb9da396723e", + "modules/companies/src/api/application/telework-authorization-input.mapper.ts": "affdb957b1337b5456386273a64cfdaf0fd6cb722c4a90942e33d43e94ab679a", + "modules/companies/src/api/application/telework-authorization-policy.ts": "029961c4ed5013fcf22a4fb94eb88cf3c18fef1e5352a4a562f902f5f54c2b40", + "modules/companies/src/api/application/telework-authorization-response.builder.ts": "a359efb0e1655aaa6ef4db2ee9d4fbf05e187801c3cb8b5a636a6c9c0f31908e", + "modules/companies/src/api/application/telework-authorization.repository.ts": "5b0f9d9523634f1b5f3c679582adb3d5298a2c5dd97d79edb1c52fecfb5dccd3", + "modules/companies/src/api/application/telework-authorization.use-cases.ts": "23af8a499f48b616f7718206035cdefb9543d70c6dba6235ab780bf34c8ed5f2", + "modules/companies/src/api/application/work-profile-input.mapper.ts": "62e1f759e381c1530ac03ffa62f0fc5a23dc6ee93357035019360d901507af4e", + "modules/companies/src/api/application/work-profile-response.builder.ts": "ab5eaf9a424add14cc55a235bd6562bef7e3c050d99980d668d58a49304d25e3", + "modules/companies/src/api/application/work-profile.repository.ts": "518689a8c29ea8285af90d878ae87db8cb75da33231f31c2a3ecc44b29cc0998", + "modules/companies/src/api/application/work-profile.use-cases.ts": "e8f7a13bff172475b58324ec0a2c6a35acc34f00ad097424f395088deb8bc816", + "modules/companies/src/api/domain/access/access-definition.ts": "a4333ae9b2cfcf8ce07c9dd9e2f904e1c67266c1f8200f1f4231e4b45d820885", + "modules/companies/src/api/domain/access/access-error.ts": "6013984a15269437e6934509b82b6eb2a29cb9ae8b6cb45d420f15acf8d61c91", + "modules/companies/src/api/domain/access/access-item.entity.ts": "34a296fdcc5d8eff5f90221812ab84d94583c5b8a3f9bbae2324e725211e9ac5", + "modules/companies/src/api/domain/access/access-policy.ts": "72da8c18e1db6f84e7bc05dc5d6f65dd65ae0215dbc73211861abe3fe1277b73", + "modules/companies/src/api/domain/access/access-projection.ts": "ad234797a6eae8f399c65ca955497f0cbb1ca7692dc6e79bf6e55d4f7e86441c", + "modules/companies/src/api/domain/access/access-values.vo.ts": "f56c30732c1d4a3e1669355e98a1b7baffa649260c402a223e52c189e2969d5d", + "modules/companies/src/api/domain/access/access-workspace.aggregate.ts": "b77f57b8134f1b55e4026c7ac3e7a113d75085a11d1bcda7e371c9a57842015b", + "modules/companies/src/api/domain/access/access.test.ts": "5c90cd8e1a36bffd371eb35e6a36bce59b09b5b2ca22380077ac4c4a645483ba", + "modules/companies/src/api/domain/application-configuration-revision.entity.ts": "44e6736358612bd3e4ec767e613a79c9d64ad4d3699719d7403f38dc7ae9c9a0", + "modules/companies/src/api/domain/application-configuration-values.ts": "5dd80dc36871c0e1c53e6c991513093e70774b6445fd0a8b568ceaa3e913de94", + "modules/companies/src/api/domain/application-configuration.aggregate.ts": "e7b87393ff800247f81f9decfaff203944f0cad09e73cf1629648c130d23bb59", + "modules/companies/src/api/domain/application-configuration.test.ts": "069d064e93eca5533478c265526dc8f3ed5babcf155dba33c7c3b7c4706b023e", + "modules/companies/src/api/domain/certificate-configuration-revision.entity.ts": "1405ff2736f64a46465967172f999157693c279a93fcfbbfcfccb6ffb8827edb", + "modules/companies/src/api/domain/certificate-configuration-values.ts": "71d11fc7e26024edb081f750c9fb0562aefa4163843ec5b5a135505440a597c7", + "modules/companies/src/api/domain/certificate-configuration.aggregate.ts": "6b54a879e54029b8ec70ebec1dd51ad8d0e2bbebe349cd573434f3c9d492157c", + "modules/companies/src/api/domain/certificate-configuration.test.ts": "73c164049b933fb4683135f234105b9ad46c0aba6a356e45620841aee51ed572", + "modules/companies/src/api/domain/company-error.ts": "95b0aae2bca88a80bbd3eeb3d042e17787bb4442c0c6f8f9c78b72eb272da92e", + "modules/companies/src/api/domain/company-logo-error.ts": "4209ab48b2d9a481bcbd062afbf233df33437ca2353185477048a60f53dc9293", + "modules/companies/src/api/domain/company.aggregate.test.ts": "db395e75d8d4372e135319a9c8dd48d8279431e034f48550e7ed0cc4b79bfdd9", + "modules/companies/src/api/domain/company.aggregate.ts": "00ef4c726119ac24528cf2d44663d645d9b92facadbfb56b716c5f4aab0e1921", + "modules/companies/src/api/domain/department-assignment.entity.ts": "9064781d1694f436a1092b7a81db1ef6fd26ed51a4eb49b77f7e89231beb7473", + "modules/companies/src/api/domain/department.entity.ts": "cc169b19635b033aad5236fc6389a88d63a3b7e2969d9aef5917282acc640347", + "modules/companies/src/api/domain/folder-mapping-account.test.ts": "5412ece3d9946190393bcb414af8d7ee6c16334afa38533d24494b974a3a3efc", + "modules/companies/src/api/domain/folder-mapping-revision.entity.ts": "e881508b581d3fca63733c9aa6b099b5b7c73cbad270295c82b639096a98c12d", + "modules/companies/src/api/domain/folder-mapping-values.ts": "230ed57853212b1b640a0d252d533f2edca1d76dc1cbf35e07846a6c03f98bd0", + "modules/companies/src/api/domain/folder-mapping.aggregate.ts": "afdf36736324e8db05cffd2e86d97c141aa4813a4d7b3209379fec01388742a7", + "modules/companies/src/api/domain/local-identity-environment.entity.ts": "728783059b6cc27b6c36fce7e0681fe882ddb49f2a0a3f09263132516ebda321", + "modules/companies/src/api/domain/mail-configuration-revision.entity.ts": "34477938dfa8e9178598151bc38a351804af0e209abf12a0333247bceb765289", + "modules/companies/src/api/domain/mail-configuration-values.ts": "aa6d25a5c13f26ef56f912241c9bc539622ea7b7d03a6b3ab2509cb779882723", + "modules/companies/src/api/domain/mail-configuration.aggregate.ts": "da0be18e1a97b6876871ed9337eb72457cd7969a7d6398601f31bf7516e27865", + "modules/companies/src/api/domain/mail-configuration.test.ts": "16a87fc58140416f313f98161699acf3cc8689f6787680c003c9b31f0a0b3a24", + "modules/companies/src/api/domain/mailbox-revision.entity.ts": "b79c66a2069dca5cdc57206d93b183c194c589ab012339f3aaea57aaca14eefe", + "modules/companies/src/api/domain/mailbox-use-revision.entity.ts": "3741734d9907192da61378672ddfa90a6eb914ffe7c3fef1b3b806423b55567c", + "modules/companies/src/api/domain/mailbox-use.aggregate.ts": "2d8ccbd41dc63d1235ad63b497c6278cbc39c26cf5f789c3688e7e0f4747348c", + "modules/companies/src/api/domain/mailbox-values.ts": "30cb4ec993086005ec4ffd0452c7d43c0a69e5b2333f1b40abdb9ea412a22dcc", + "modules/companies/src/api/domain/mailbox.aggregate.ts": "4ad39abfac1a39d116df1499c237afbf0318660ff7b78e473ef1b8b931967680", + "modules/companies/src/api/domain/mailbox.test.ts": "790b0a5d8e32dc1d3f84f0a7ce42fece0ae38a677123b87a9dd86d9872d33247", + "modules/companies/src/api/domain/people.test.ts": "bec35ff336868c9cdc1bb1bc78f301f6345686ceab23522e6b1fd1b853cdbba3", + "modules/companies/src/api/domain/person-photo-error.ts": "df52e95e610278eafbde911d36106dd474f1d9d02b07d4183979dccff5e9edc2", + "modules/companies/src/api/domain/person.entity.ts": "a7d810b20812a88c2e684679f322d4ceafd39455b451cbecf15e53ffaf655543", + "modules/companies/src/api/domain/printer-configuration-revision.entity.ts": "b26d0d472ce8da68fd828fe455b41472a3854ef83b5947deee55dd276a619809", + "modules/companies/src/api/domain/printer-configuration-values.ts": "2b9741fc392af43c5e98877bc031c4e52f062a711170233817dc21d4aa07dcce", + "modules/companies/src/api/domain/printer-configuration.aggregate.ts": "d8db9f2ca2f567f2ba0a5bf07331beb878f4c9c3a4480d649fb038247b395d15", + "modules/companies/src/api/domain/printer-configuration.test.ts": "e5b27a5132719b56cc45156f152ea55f15081be09b8044d76cc41b947f8a5a48", + "modules/companies/src/api/domain/process-revision.entity.ts": "1f2e401a3cc21e43a3d3f3c223e65eaeb04f259f0f9ae3e4c1d1ded88d4e93ee", + "modules/companies/src/api/domain/process-task.entity.ts": "ed189afdcc1c314044186a9d2d95ae9dab14d45e544d2b404fd9d223f91e1046", + "modules/companies/src/api/domain/process-template-revision.entity.ts": "fa41159271ebb8984d3a542d4953aa193a9923cb8f9978db33b75b4720588af1", + "modules/companies/src/api/domain/process-template.aggregate.ts": "f25ffb9c76bf1b4f38847fc89e1cef6ec6235c03b303f7e98bbd1c8b35dd4188", + "modules/companies/src/api/domain/process-values.ts": "89e410c67a48033ae8f40f7308f98d3922f1f3ccaed2698323065ee0be4b2c64", + "modules/companies/src/api/domain/process.aggregate.ts": "fd7d049c3533e60aae8676b52a6a3871566ae2e002cf926e61624bfecb1fc4b4", + "modules/companies/src/api/domain/process.test.ts": "0fa98e92fd216bfbc53221f4834dff568cec03c010c7473650a0dc3841169b23", + "modules/companies/src/api/domain/remote-connection-revision.entity.ts": "5321ac1996028d2804d46b42f0350a9baf2b3cb7855961e91d983ed9403c5035", + "modules/companies/src/api/domain/remote-connection-values.ts": "7b374634716aea41d06605b77c481e7573fecce6d754e7b7adce8f1fa143a89e", + "modules/companies/src/api/domain/remote-connection.aggregate.ts": "c6a3e59986bf8dbbe89b1f6b40b7fd97f8e76dc1d4b5793f6a614269c59b0011", + "modules/companies/src/api/domain/remote-connection.test.ts": "7e157ed6258be2d3950a9c879bca2a625410c91f3b83755126bdecdff2fd3f72", + "modules/companies/src/api/domain/site.entity.ts": "bde64800d530adfd3a5b435b900082c5d7e984262590aa668827dbc8c327107f", + "modules/companies/src/api/domain/software-installation-revision.entity.ts": "4ae4eb6dadd8252ae96b3364f8ec5ae4a18a83db0350477e6838c42b84ca3690", + "modules/companies/src/api/domain/software-installation-values.ts": "e59fdbae3514e9c3f1c04106db83f7ba493371e387b81986341451e2c1c8341e", + "modules/companies/src/api/domain/software-installation.aggregate.ts": "69ec13f822576a1ee58a349613c0c4baaa2cf641eaf2b8849f5f41056befe721", + "modules/companies/src/api/domain/software-installation.test.ts": "a95afd2fb6bf4025adc8d14098a40a374a971cb2b46c7f017c9a7fe9321ceb85", + "modules/companies/src/api/domain/telework-authorization-revision.entity.ts": "4329d66903048f5ab8dcdf1df1d3ae290c9cd9f4c4180b1a95035b10aaf85fd8", + "modules/companies/src/api/domain/telework-authorization-values.ts": "60744ac5612ec40922abb63a1808d9935b68284e44a44ed0b654bc4ffd22ba5f", + "modules/companies/src/api/domain/telework-authorization.aggregate.ts": "92ba57e91dc76764eb889d4ae70f1458f4c946895b487f6fec995f113a3c20fd", + "modules/companies/src/api/domain/telework-authorization.test.ts": "0be911d4b9e3126e22275961790aee30baeeb6b2f915c3b6e5ebcb367cb6f162", + "modules/companies/src/api/domain/value-objects/application-configuration-values.vo.ts": "9982b3d48ace792b0815511f7f54375140fba7b45776834d4498526bc05847b0", + "modules/companies/src/api/domain/value-objects/calendar-date.vo.ts": "20c491c4a4b5c4bdb240b70e4c9c6046898d28d745a18dd11bb7d249b99f1cbf", + "modules/companies/src/api/domain/value-objects/certificate-configuration-values.vo.ts": "a3178df4b8875c587d6d6b49494c0025dce53ccb321adf014603a871bf096000", + "modules/companies/src/api/domain/value-objects/drive-letter.vo.ts": "794b5f60c3740caed197ae46f4fb2bc8821d1b247476d750abfea63cf4a095dc", + "modules/companies/src/api/domain/value-objects/folder-mapping-values.vo.ts": "5521619259e4b87a93aebc29387dc139c95806d907a1e614c23bed16dfca1cc6", + "modules/companies/src/api/domain/value-objects/mail-configuration-values.vo.ts": "117a47f20a7829a2434211557e5be0a7037bc925045ba72c0393e76e8d7a7d1a", + "modules/companies/src/api/domain/value-objects/mailbox-use-values.vo.ts": "8e80ccb1dacc486d0a82d59df6460af20bc86960f14f2521eb22dc73d30f40e2", + "modules/companies/src/api/domain/value-objects/mailbox-values.vo.ts": "18dcaeb54ba6463790e29969087aef6d819b205d760e070ba21d9fdac8dcf574", + "modules/companies/src/api/domain/value-objects/phone-number.vo.ts": "05ab31321f2dc3e5d8cc3735e7a29d6beed7f73bdba38f4475e819e813cc5410", + "modules/companies/src/api/domain/value-objects/printer-configuration-values.vo.ts": "01d9b5389b3d3944b3dab9aa31e408bb3418c4555b32f7a790ae75b45dbac4c1", + "modules/companies/src/api/domain/value-objects/process-reference-values.vo.ts": "9789ddc5158593606ad0695557515a9cb110de4b334e9fc98a6bc430224f76da", + "modules/companies/src/api/domain/value-objects/process-template-values.vo.ts": "6912137aa6c4294ec386e8f6f0f539e453416aaa841cfbafe5c56ca6d27c2b90", + "modules/companies/src/api/domain/value-objects/process-values.vo.ts": "ac954675e9c5d56c13695908cc5cff5b2c1e2e8ee03b916ae0e19b7bf5470ef0", + "modules/companies/src/api/domain/value-objects/remote-connection-values.vo.ts": "8241af22934c0ba2a7494933171ee6af0ca0359280438bcdc442ad746c7e1b32", + "modules/companies/src/api/domain/value-objects/shared-folder-path.vo.ts": "556307e8d01e2dd8c8ecb18aac18189b2fbf715d9eef63df4ea9334255064428", + "modules/companies/src/api/domain/value-objects/site-address.vo.ts": "c5669717ece746d573c1eed618b6b07fd6cc4bdd561b2afeceb6ee450aeedc82", + "modules/companies/src/api/domain/value-objects/software-installation-values.vo.ts": "1ec49e47ce4469792bda081e72c66c059b30e5b8d37638e9592b9625c5779a76", + "modules/companies/src/api/domain/value-objects/telework-authorization-values.vo.ts": "ee24a884a9c090f7c9a1b2d45ab007df946e23fab69bfa04f86486fb87d32447", + "modules/companies/src/api/domain/value-objects/work-profile-values.vo.ts": "228515fbfd958fabed85214e1016106b30cdef61a1c8b3bccd67b634ef1aea87", + "modules/companies/src/api/domain/work-profile-revision.entity.ts": "26e3a354ec567b7acc1bdaed3f573ba276097a10295ebc9d509b12e8f16d04eb", + "modules/companies/src/api/domain/work-profile-values.ts": "9c60f46b47d06114d5d4f075c2b15ff97007a0d003b9c4fc33a2517268da331a", + "modules/companies/src/api/domain/work-profile.aggregate.ts": "63eb4e9492a8c50534b7a8862f3ca0471e79d9b6d2538b76b412d3cbc187578d", + "modules/companies/src/api/domain/work-profile.test.ts": "11459135c9e0701bbe937363d8f8c3c2e5617a5811520a992e9da12a3124022f", + "modules/companies/src/api/infrastructure/company-logo-processor.test.ts": "c1964e114d871b01448185f3bfcad415909dc4e147b2525ac7dc7d5b0920fbbd", + "modules/companies/src/api/infrastructure/company-logo-processor.ts": "8d828dc2381aa7c18439f801eff3998b97748ce272cf645b5f94390dee8a399d", + "modules/companies/src/api/infrastructure/http/access.routes.ts": "2d8f77c07e414cf61d2c95922767079ae0725159dd233facbb8c95fd15c83aa8", + "modules/companies/src/api/infrastructure/http/application-configuration.routes.ts": "5594617eede571dd8078333681d103fe893b0e79d7e29fec4a86a5f5e5ebf4e6", + "modules/companies/src/api/infrastructure/http/certificate-configuration.routes.ts": "e399fa9418a3a6226a67cd38cf605cf9fb488502be6afd43f3e44b20ebc1f92d", + "modules/companies/src/api/infrastructure/http/company-logo.routes.ts": "0160beec451dce03c6914dd267e48cb5c0180c05618e5c2ddb3b67120e74b329", + "modules/companies/src/api/infrastructure/http/company.routes.ts": "7c2d87cb27a922d9bf750bcb160325caedcb48e9b12b82b6d090f5c8711c46ca", + "modules/companies/src/api/infrastructure/http/dashboard.routes.ts": "85b8ee54f5a5565a32406110ad1259556654dcfa3c98d7d3c2bbd535f7783a6c", + "modules/companies/src/api/infrastructure/http/folder-mapping.routes.ts": "7bb1304abf9bfa126e72bfe712eabc9cae93a96ccb39aee4da93dfac632f1dca", + "modules/companies/src/api/infrastructure/http/local-identity.routes.ts": "a88107e18dac85a12b291704bab18bcff0ab0dd8e48c9e68bb544d8140cdc839", + "modules/companies/src/api/infrastructure/http/mail-configuration.routes.ts": "8b673c789e837e4daa3a798b91a7456596fcdbfed0646d72459d14b05c230631", + "modules/companies/src/api/infrastructure/http/mailbox.routes.ts": "0bfc2ddb62fb6a152e88e8424c5db268a9923459c40af82012c25a59fe117e96", + "modules/companies/src/api/infrastructure/http/person-photo.routes.ts": "f2b0ea3ccaa3f09ddbccec70cdcb1d8175b2aac179b84a1c82695918d8309825", + "modules/companies/src/api/infrastructure/http/printer-configuration.routes.ts": "049bce1aeb5970f7fc526e5da330330b82ed9fda307150bba002fa6cfd351c04", + "modules/companies/src/api/infrastructure/http/process.routes.ts": "b47dfbd42b4c3ee463c920efa12383809881ca38d5908fbce2bac3d273a7d1d2", + "modules/companies/src/api/infrastructure/http/remote-connection.routes.ts": "cd738d56a1ca222315157810013f0a7bbcf4e550fa01fa2f220f6f6207a24247", + "modules/companies/src/api/infrastructure/http/software-installation.routes.ts": "f6261167a74f2050611169287e32800bc14b8c73dab8ad97fd8215b98bc86920", + "modules/companies/src/api/infrastructure/http/telework-authorization.routes.ts": "5e0ccfc36d06193fdb1ca242f76b31358e3a834e596a421fe2fb4240e3583fa2", + "modules/companies/src/api/infrastructure/http/work-profile.routes.ts": "7a3fc4f4daf647af5a0ec59abadb613adb6011fcd8d2a0ee8dd311122b199110", + "modules/companies/src/api/infrastructure/persistence/access-persistence.ts": "c692add59deb70fb6f71e48d6341d176de078f42c297030af3e34ee2e65f47e5", + "modules/companies/src/api/infrastructure/persistence/access-relational.ts": "1192a810bcc713dd1466b06b3cc6a66d946b64301cc221499f2c910255988fba", + "modules/companies/src/api/infrastructure/persistence/application-configuration-migration.ts": "0cb7bd20733579ec28b2b0c3df698c2fa79350a35a631a6393e261ff52468fe3", + "modules/companies/src/api/infrastructure/persistence/application-configuration-persistence.mapper.ts": "bb0e76fef5d602888944cf1b8a497ee20ce0c6f669907f53010f660152d094ee", + "modules/companies/src/api/infrastructure/persistence/certificate-configuration-migration.ts": "4f860816fb653889612fe59cd69d52d014a8d2fdd62b0122ac780568ebb478f5", + "modules/companies/src/api/infrastructure/persistence/certificate-configuration-persistence.mapper.ts": "6b6f5f4f1dc46bf9a18c145c8d70a7acb196f1cfc9129089e41866ee45f04071", + "modules/companies/src/api/infrastructure/persistence/company-existence-reader.ts": "0a9d0975a04ec385a3ae223294e2ff17492cf316e614ec0dc4fe3046c2fe4817", + "modules/companies/src/api/infrastructure/persistence/company-logo-migration.ts": "a6a57af4f35ef594a4872766d71a9d74313a942c46e4758fc086ca1f8884c8b6", + "modules/companies/src/api/infrastructure/persistence/company-persistence.mapper.ts": "b5136a8ae50b2544a0ff9083f6df146e718a2ef4763809b74db8b6f347a96558", + "modules/companies/src/api/infrastructure/persistence/company.model.ts": "345e07f53e157ef137c315cb75bc2701baf8beb5cf33b219ced29fb9c716387e", + "modules/companies/src/api/infrastructure/persistence/configuration-resource-references.ts": "df1f909f99954cec994147bc4b334e5313ea33a9245f8ec498843c24d06ddbe2", + "modules/companies/src/api/infrastructure/persistence/configuration-snapshots.ts": "fe575a8f7f4a53ae065ba24d669ae7cb9886b5633472292802c69d079f18a3bf", + "modules/companies/src/api/infrastructure/persistence/directory-context-migration.ts": "45b725c11061a5cc84066dcc9193c08ec497316ad002ec265dc99671d438ffb2", + "modules/companies/src/api/infrastructure/persistence/directory-context-writer.ts": "9a1db52990f7cdf954a3314a1d70187ff589c6bcd116e5ebec7cd5efe2e66821", + "modules/companies/src/api/infrastructure/persistence/folder-mapping-account-migration.ts": "65d0feefd5e0327d6ccd88d54e1730bb677e0d74e958ab0b6dd35bf8b23efbba", + "modules/companies/src/api/infrastructure/persistence/folder-mapping-migration.ts": "cb059825ebaa6d9b50e635ece6d887a8110ed1eb5dbc435bc433f0b1eab433d3", + "modules/companies/src/api/infrastructure/persistence/folder-mapping-persistence.mapper.ts": "c1bb6e963786734f4152bb8e3dce1461469cc52d411cf5676f7983cb375e0c63", + "modules/companies/src/api/infrastructure/persistence/local-identity-migration.ts": "a634032093eaf1d7726deba8ece56eae861962c6d62ba693999aeed19ec7dd6f", + "modules/companies/src/api/infrastructure/persistence/local-identity.mapper.ts": "d2b9c9fb34110816ad2bd90085d5518c02003fefa4ca54f0dd0d3b7e520ec1f7", + "modules/companies/src/api/infrastructure/persistence/mail-configuration-migration.ts": "abd68ea637ab8c900ee6e5306af0aa58d51ee573a149d0188527aaf91a9b90b2", + "modules/companies/src/api/infrastructure/persistence/mail-configuration-persistence.mapper.ts": "266bea766d4928892a1a1bba22ebdb8b2f3bc0c28d626a02e93cc7cc3428cf30", + "modules/companies/src/api/infrastructure/persistence/mail-remote-constraints.ts": "326df8d43206c9a644b95c9e3d520805233029691466bbc4dd25823f62388d89", + "modules/companies/src/api/infrastructure/persistence/mail-remote-snapshots.ts": "5be1c25589b0bf10b77c822fcc39f1df4cc5fc9670e221acebd5b6e0f6c4cc29", + "modules/companies/src/api/infrastructure/persistence/mailbox-migration.ts": "5228a72773c9cda1b0aeb7014b0b2bec29935695bea0d06ec9e8580b70947b69", + "modules/companies/src/api/infrastructure/persistence/mailbox-persistence.mapper.ts": "e8a5c9b1d89107556ae7bcc7243bc8e0d3ea5b1fc6659c91d220dd69016abd48", + "modules/companies/src/api/infrastructure/persistence/migrate-companies.ts": "ce047f45c56d9a0184333180f2d8453462857e57fa752c7621a4dffac203d18a", + "modules/companies/src/api/infrastructure/persistence/migrate-people.ts": "8789a29fe93b93bc286cc690feb16119a3226a7f0c0d78a8c7af7da3c63e6f9e", + "modules/companies/src/api/infrastructure/persistence/people.model.ts": "1c1b13e1bd17781a2d2d142f565fb0e55277033d93baca7ec1bc76aa6a051f9b", + "modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts": "88457fadd0d28120b3dd4c41a40746a68cedf9edf013f30833458dbc3e61073a", + "modules/companies/src/api/infrastructure/persistence/printer-configuration-migration.ts": "7143e299524d8366fbea3821b4994ba29c8b84e7b8dc57934caeaf00cad01674", + "modules/companies/src/api/infrastructure/persistence/printer-configuration-persistence.mapper.ts": "87219fd5c6d0c1027653c4034e208eaae9973d9633017b7eef51e3816cf57e02", + "modules/companies/src/api/infrastructure/persistence/process-migration.ts": "df30ca60c81be9531e03841d7ec8807e8bfb0101995c07d7c49b0921c28882ad", + "modules/companies/src/api/infrastructure/persistence/process-persistence.mapper.ts": "28f9509434891add1b578aa119bcf7005db0a67b58dc5777feb0a1187db4b9a0", + "modules/companies/src/api/infrastructure/persistence/process-relational.ts": "01b6a584045cf7c7e656a894ecdc5cf8bf74d5f28235652db8e726566b287417", + "modules/companies/src/api/infrastructure/persistence/process-review-reader.ts": "335652c5a5446f23b80ad0edffdd2c42df26d59ccdaeb83935c9b7864eab5e01", + "modules/companies/src/api/infrastructure/persistence/process-template-persistence.mapper.ts": "22d7d64b9d9d3705e39a37238f9d5f8ce8591238260d0b4dc3c7572253d72469", + "modules/companies/src/api/infrastructure/persistence/relational-sql.ts": "7115214d41f72ae2208d81740410b716349a44edfd4081bf92484c5d5cf42800", + "modules/companies/src/api/infrastructure/persistence/remote-connection-migration.ts": "70ec0d5f5d31c0d278646b4f9f93583e7627dbdbaecbbbc6d6c5e149de8bae9a", + "modules/companies/src/api/infrastructure/persistence/remote-connection-persistence.mapper.ts": "dfca98bff4ecc1407f0a7d98540f19f46aeb92b9f949f74e5314647f73fc6e54", + "modules/companies/src/api/infrastructure/persistence/remove-archived-support-tables.ts": "3b729c90d454a0738af9177d3a303ad39291689b0de3797a5bd39004b54bbd63", + "modules/companies/src/api/infrastructure/persistence/resource-access-writer.ts": "849700389ccbd01b80b8f90ead360ff1b76767fddc69e3c818ad66ffab41f9ae", + "modules/companies/src/api/infrastructure/persistence/resource-configuration-dependencies.ts": "83f053ea56d388c1b0c7d483144a4100e8aea2e2c07a5ea1a1c8088746a7a8f6", + "modules/companies/src/api/infrastructure/persistence/scalar-snapshot-reader.ts": "21a98a83ffa8a0b07efce98a1b1b8be8f3f1672b18628fbb0b90260ea5c1c8c0", + "modules/companies/src/api/infrastructure/persistence/scalar-snapshot-writer.ts": "50915b006411a4c8ce54e3c1356f49dff9f285126fa06e163b2b1266b9bb83bb", + "modules/companies/src/api/infrastructure/persistence/sequelize-application-configuration.repository.ts": "22398d4f765bf05cfdc69749d9f1f8ef4fbd5f7732dc6783262dd7db60d209c2", + "modules/companies/src/api/infrastructure/persistence/sequelize-certificate-configuration.repository.ts": "9ac34f4542a760609e5afd52a4b0cc6e1d3db16097f7caa7767e3386c6ec6138", + "modules/companies/src/api/infrastructure/persistence/sequelize-company-logo.repository.ts": "63190c9a3e3419fd0ee0c0e90381d264459fd13b1c2728976a1e7ec4d56d3985", + "modules/companies/src/api/infrastructure/persistence/sequelize-company.repository.ts": "de573abe0cc2f2339f5413b5ff71477361e7680774276cd7da013ad0e47575c7", + "modules/companies/src/api/infrastructure/persistence/sequelize-dashboard.repository.ts": "8b79659409d62ea9e81f1da73f4b93175ec8c24e93668da319f0da86e864e821", + "modules/companies/src/api/infrastructure/persistence/sequelize-folder-mapping.repository.ts": "69d19dad8845297da1f10bc1402c5dedd5f6624b009ad27fa5520bbb9bab4db6", + "modules/companies/src/api/infrastructure/persistence/sequelize-local-identity.repository.ts": "210e89320507242e0f289715ba7d560bc808c25262df6862ca828639a091fdfd", + "modules/companies/src/api/infrastructure/persistence/sequelize-mail-configuration.repository.ts": "a4bb299ce4069f8e10aaa9310bb8efcfcbee09c0e51149030c999ec3d590f4c5", + "modules/companies/src/api/infrastructure/persistence/sequelize-mailbox.repository.ts": "994123b02d2c2183b867200196af98edb6d5a25c104ac7986970790ae224cbba", + "modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts": "edfddbe4ef1cf9c54206f522200671e787421d0bac8dc822770f69b39980d855", + "modules/companies/src/api/infrastructure/persistence/sequelize-printer-configuration.repository.ts": "990cc6875f9a41aea2d3631413d82264b872af665501ac26702a860e7155eace", + "modules/companies/src/api/infrastructure/persistence/sequelize-process.repository.ts": "5aa7c92a5b6532599662c3e43c6dcae31929d547d5f63a7816ea819368195281", + "modules/companies/src/api/infrastructure/persistence/sequelize-remote-connection.repository.ts": "a3e38951f38cc40d695fbb86cde0fdcc812372d370e9196c5421413811c59af8", + "modules/companies/src/api/infrastructure/persistence/sequelize-software-installation.repository.ts": "873fd3f16ebd4b28e48006ae49f6efb51d28cdcd0960137fdd6e95384fa64111", + "modules/companies/src/api/infrastructure/persistence/sequelize-telework-authorization.repository.ts": "3713b478ad134c887f517406270ca86ba31f4c8c7a08d75c2702526b058c41fc", + "modules/companies/src/api/infrastructure/persistence/sequelize-work-profile.repository.ts": "e0a751901de7011d1484a11c85c4d1f2c1c80158cfeedcaa823c2e6336521bb5", + "modules/companies/src/api/infrastructure/persistence/software-installation-migration.ts": "0f38b7cc6f7ea8ec4e38089765a68b1ba051339ecdac666d1f291cc17fa986b8", + "modules/companies/src/api/infrastructure/persistence/software-installation-persistence.mapper.ts": "31eb5f27d5b94d80dd806bb51197cb3e222c04b802cfcfbf22fa9b8b195eb133", + "modules/companies/src/api/infrastructure/persistence/software-installation-snapshot.ts": "9020cc790d238401a52de8c63d9d2765c218b8f3dbb32ab79a24b00b26edabab", + "modules/companies/src/api/infrastructure/persistence/telework-authorization-migration.ts": "233f9eac0d3a33652a4ac64641b78877664cdf103c4d07c8287ce1c18435544a", + "modules/companies/src/api/infrastructure/persistence/telework-authorization-persistence.mapper.ts": "91b3b93adc9eea8a08d378e2ba66d9a1a682c4ac246ec4caf250b6318f149a58", + "modules/companies/src/api/infrastructure/persistence/work-profile-migration.ts": "1de455c09bfdfc9e1e3cb46f0c523d03be1cdbcef494da85009f5bb724cc8f96", + "modules/companies/src/api/infrastructure/persistence/work-profile-persistence.mapper.ts": "0ae716ee383f8c46d9c3e0f84678be9fb8ed113eefbf4b4f34dc41d2c9149049", + "modules/companies/src/api/infrastructure/person-photo-processor.ts": "63d49836c2104c7c7a777281fe6e95ab5fad57c78f1e0bad9187ff441c7ce0eb", + "modules/companies/src/api/module.ts": "c826d19d8b06eda39738af953c349c3d3cab63952ff2c7c2649794b22f4b05e6", + "modules/companies/src/common/application-configurations.ts": "fd8db3dd5ecc73a6eeb9e57c6c53d8c7ff2b06b9cdd69255e51edb4f65c37052", + "modules/companies/src/common/certificate-configurations.ts": "bee1e14c4f0c97c63fee3afd92abc01ffa759ce9aafd936828302d6156422273", + "modules/companies/src/common/company-logo.ts": "966ef2b34a3499368b98f7c0358964c539a14dc80b17335f508932a676dc8233", + "modules/companies/src/common/dashboard.ts": "83e2a5490ee2898d21af77d63b3b538c4a0e462f1df75c6f9eae60c09dfcbf4f", + "modules/companies/src/common/dto/request/access.request.dto.ts": "2280178b5a3a14d469c9631119d4c8cd96d1045ebab5a9fe4b6f8109f2d183cd", + "modules/companies/src/common/dto/request/company.request.dto.ts": "b3e3f6000d356462def3412bbe9ef888bf1b5c0afa99fe3e9f3caa9659247680", + "modules/companies/src/common/dto/request/people.request.dto.ts": "2f424f7297e99c44e7934260203214eaa12b26909ee3e19719a0ce55c7d8f42e", + "modules/companies/src/common/dto/response/company.response.dto.ts": "fddaaed39add67f16a3bb4b5b8c50b40361164f481614143502a81ed2ef01e4a", + "modules/companies/src/common/dto/shared/access.dto.ts": "772728741c858667ed7cb77c1d660f77571fc6671bc9195540333372f729aee3", + "modules/companies/src/common/dto/shared/company.dto.ts": "a5b0c2d3793b75b69e61b5402f7393c7bcf94389f57dbc8753c46b5a0470312b", + "modules/companies/src/common/dto/shared/people.dto.ts": "238ab9622bbbc1904e9d9e7051da1c91511fc25d977813d28e6af191ce599edf", + "modules/companies/src/common/folder-mappings.ts": "603ab6de49bbe9fd2a99f119b90a4dff2eab537209ad8ddb8a9dd898c3cc761a", + "modules/companies/src/common/index.ts": "f9dc8e13e69e37fcd461ba139ae5e7204189122df1dcbcac188ce186e2b3ae80", + "modules/companies/src/common/local-identity-environments.ts": "08a7cb3591e7a2fcfe005748c8abed08262b8f9e0709723d7ee98478ad6a82ce", + "modules/companies/src/common/locales/en.json": "2321de3c7dce16aac9e5f561de72b24fc4da8298ada19ef90d17626a74471aed", + "modules/companies/src/common/locales/es.json": "a63c9ca9794c1f96619d97c5434205ddb161c76485dfc5d1ad2bd553a4ffa3ba", + "modules/companies/src/common/mail-configurations.ts": "7b6a24e8b0862e9f3f32c946545ff7420a8c6767a4cb77c7c1612c384e68e6ec", + "modules/companies/src/common/mailboxes.ts": "504fc76048c4216c4a302024ab148079aad6cc06c3e4bced6cbb7d9c33a08804", + "modules/companies/src/common/person-photo.ts": "31874dc5c6c2765cf30778c9de3d31cfce79e7b1dcae86d2d7439ee1e986b8d0", + "modules/companies/src/common/printer-configurations.ts": "c8642c5e4e97bcb5f10c9b1dcc6c2c7e7dc641d3af6929bee90c7f99a599fef4", + "modules/companies/src/common/processes.ts": "6dbe0d3166fc89bd3c7a181d6f82ea2ad6f60f08f0d18217c7539fddb829aece", + "modules/companies/src/common/remote-connections.ts": "6506fd85d7ea55ac3b1fa1de9cedf3ac74f41563fe65f8f318ba5538da29a1c3", + "modules/companies/src/common/software-installations.ts": "d64b220536d2fcc360fd0628c61fe0b5804c4cfa1b285ddbecdf78aefa166240", + "modules/companies/src/common/telework-authorizations.ts": "71d6bba7d3c63a2e6d34a3d49b9d6343fbbf05fcea7002e4329d4cb071163000", + "modules/companies/src/common/work-profiles.ts": "08799887f2ff7976f99f4bab43883e9a2e018bad03f7b58db0d62abd55f03b25", + "modules/companies/src/web/access/create/controllers/index.ts": "8cd0b2d92c14088d38cba5692577856f60c81c797230cf05430891e2a64f0ead", + "modules/companies/src/web/access/create/controllers/use-access-quick-editor-controller.ts": "3d525bc80d911874acf2d555dae33c1573f9ae249093ff76b9d58dc7c13d9acd", + "modules/companies/src/web/access/create/controllers/use-quick-create-dialog-controller.ts": "88ac181c08ca133243dbb7e0cbfc7ffbf2c942112a44a7a6d44f7e6c7e96ab68", + "modules/companies/src/web/access/create/helpers/index.ts": "169aa1edc35300d764384f6514c6df7eb225c6159408b48d38e2abb8b9b52627", + "modules/companies/src/web/access/create/helpers/quick-create-dialog-values.ts": "ca7cc84c1607ec962a85907d281d22ce8fbeee90e2f280aa02ef39cd0a79a722", + "modules/companies/src/web/access/create/helpers/quick-create-plan.ts": "8c5fd46196a722f2a997879a4ee46bac58fc78bb045925194d62a68890ae60f6", + "modules/companies/src/web/access/create/index.ts": "35b6d3721c649e866806f0689787bbedb2dccf5bcfc2b7df72b3bff7d59c46e0", + "modules/companies/src/web/access/create/types/access-quick-editor-props.ts": "16aa182cb1940eb8b21f436385f79ae69c50d1dbcdbf8d855ce89ca7c4d1ac98", + "modules/companies/src/web/access/create/types/index.ts": "40fb4b556ce22785f9b51f97cf001c8f4b5baf3e107e54c1af5bfb07b3e005b9", + "modules/companies/src/web/access/create/types/quick-create-dialog-props.ts": "1769c6921b7d2255c3bb82ec410b464cd632268886016d0eb9c4872b9dd94797", + "modules/companies/src/web/access/create/ui/access-quick-editor.tsx": "1b2394f517cad0c704a06f22636980e3acf7a9d8abbc9391236fc1c90a682382", + "modules/companies/src/web/access/create/ui/index.ts": "656a92ef6d32c52e1784e0389a7c07fc61750b0474f20014714e55537d873710", + "modules/companies/src/web/access/create/ui/quick-create-dialog.tsx": "67ebdbfbf226dcb6dc050fc1e574217b526cc39912feba9b8ed8bab5b54eaa91", + "modules/companies/src/web/access/help/index.ts": "8d14cc2f352c3f08ae5a4c8b99b9e7fc781c9b2e91b2bf681a96ff9a592529be", + "modules/companies/src/web/access/help/ui/access-help-dialog.tsx": "e51835cbd38655a0b361dca0084184ba77b2054dfa8cd2d4d128e60701275abf", + "modules/companies/src/web/access/help/ui/entity-help.tsx": "4b535ba5d14c99640411bad6d890cab7b389269efbf7a92dd3503e669b7e52a4", + "modules/companies/src/web/access/help/ui/index.ts": "1d8b891b47a24cee07caddfdaf22e7544581800c183d1be714be9041c890523b", + "modules/companies/src/web/access/history/index.ts": "7814632250070a0e65688a7512c35d11eea30c3a85a1a2061751c180e3356cf0", + "modules/companies/src/web/access/history/ui/access-history.tsx": "00c686cd6d656e0dacefedc7a7f1a9f4f05246cdee2e01aae0ac153e1c66835e", + "modules/companies/src/web/access/history/ui/index.ts": "20bfb899e0ea136870ff025401669f017a0d55ab006718786d1b5171d89387f3", + "modules/companies/src/web/access/index.ts": "0b7f3c370ba707d02b82a6461fb71e7cb1b15997cd03c8af8811ab9f63c13641", + "modules/companies/src/web/access/list/api/get-access.api.ts": "e5891d05be377525dac529b713b768bc587ba74f23871003249f421d1666b85c", + "modules/companies/src/web/access/list/api/index.ts": "386a7b637eefcc3c23c418309623632be25e2c7a17842b657c565385c9e9e28c", + "modules/companies/src/web/access/list/controllers/index.ts": "d9c6c96c034f64ff4b3d1bfecb9453b9f3a734621d12a1223157a261eba9cc18", + "modules/companies/src/web/access/list/controllers/use-access-workspace-controller.ts": "294dc4953b2275b11962cab485eb879fcd011df472e0eb5b0a5f39556c992b7e", + "modules/companies/src/web/access/list/helpers/access-environment-filter.test.ts": "3f5ccea2f6e9491aa76ea6b4f77b9c2a08709efa75cfbb9dc823874db5f3763d", + "modules/companies/src/web/access/list/helpers/access-environment-filter.ts": "0691903a7d2e214db78294009afb6fa7240f702a44d5238039a43752b9017788", + "modules/companies/src/web/access/list/helpers/access-resource-filter.test.ts": "94a160390a8faccb6e17c3f57dc7534a6a96317644162427814eed72a8086eaa", + "modules/companies/src/web/access/list/helpers/access-resource-filter.ts": "46badf941a61116284a3e1e43618a098a6cc63ee82dbf4eb224c3ca04d1be94d", + "modules/companies/src/web/access/list/index.ts": "6689ff5c81e3ea4972ab3b6ad5612716f2ef55584db07d33f3688808b9551351", + "modules/companies/src/web/access/list/types/access-workspace-props.ts": "6f184bc88c07cd672fd88aa412d65708afebd42e4857efbee467b9a2869a9e7a", + "modules/companies/src/web/access/list/types/index.ts": "4efc43b8c46cefc74e96a1aa41eca46449587928e117a6e1ca5672a23ceb31fc", + "modules/companies/src/web/access/list/ui/access-row.tsx": "f4d6e77d40b9116fead4328c2558a0eefd3c97c5d559ce27164b5d4828e6e5b4", + "modules/companies/src/web/access/list/ui/access-workspace.tsx": "a4e0c39f999f35e6e61036d30233525453bc07f372e00b799c981df83a1ec464", + "modules/companies/src/web/access/list/ui/entry-state.tsx": "dea9f7343138e1d7ed8ec8921190bc8ac9835143b7e2856000e30681d6b5398c", + "modules/companies/src/web/access/list/ui/index.ts": "d3c813ac59f42b023f268685988ab3d9ccabc9cf8dc939d3ba84bb6a888a35d3", + "modules/companies/src/web/access/shared/access.test.tsx": "0b9f01497da6e965a2af1094a0573cfb287795d41a135135465a41e7c497a20b", + "modules/companies/src/web/access/shared/api/access-api-error.ts": "109b802d271c0835da091debb6bb303301e8aec0e5997d9f51f25f5e2d3b49f2", + "modules/companies/src/web/access/shared/api/access-request.ts": "c8776ee1332808029ebca00f7584ae3d5cafd8472cbe17e66b105ec49fdc838c", + "modules/companies/src/web/access/shared/api/index.ts": "79f3685ec4d7413e9bbccb98df2b772c9c2d7f7641b77a1395cb62fdde55a226", + "modules/companies/src/web/access/shared/api/save-access.api.ts": "6001d02a85f4e1186f27cd864c6147217491f3f6b45b43f60eaf10dc37da54ae", + "modules/companies/src/web/access/shared/controllers/index.ts": "1b695d70cef4553f247602ec60b3472f519ecc17d24aebdcac2065a9b080574f", + "modules/companies/src/web/access/shared/controllers/use-access-form-fields-controller.ts": "a8a573e99eb91d7f7ee3fe9d6836795ef2b6d99bf638dfc0fbb2c78de6fdbb6b", + "modules/companies/src/web/access/shared/helpers/access-fields.ts": "678c5ff7546925c2baa522853b4b350dda62673b6efd125c92aa7f1df41a86ce", + "modules/companies/src/web/access/shared/helpers/access-form-values.ts": "33f481c7c0b748b23366a90a0afb0e39155dbd7ba37bdef304a5ca2bc9fe321b", + "modules/companies/src/web/access/shared/helpers/access-kinds.ts": "4a3bf8614d751b5eba4f961a781f4ad8cfb0e9bb9155ce90dc4d14bbe32dcda1", + "modules/companies/src/web/access/shared/helpers/access-labels.ts": "f44aa2649bf5f129c9890e8b0ff449dce99a7fd48f2fea2d41d8321d00e9af88", + "modules/companies/src/web/access/shared/helpers/index.ts": "ea4844c9ee9a2789e3591471f7e6a9484f6efefb7b819f2bb67c7a0abb7624dc", + "modules/companies/src/web/access/shared/i18n.ts": "030d3ae8db741de91d8381fc29a4064f29ac7af266a655eb11cb4798e71ef0f1", + "modules/companies/src/web/access/shared/index.ts": "7d7cfd3720e9c5ae68b5949105a6eba6cdd5fe63555fabae7888d77e3e995ff3", + "modules/companies/src/web/access/shared/queries/access-query-keys.ts": "9742fc5080c22696cca608e5edd757622b0e66dc9197ebb34cad1b8b839959fd", + "modules/companies/src/web/access/shared/queries/index.ts": "f0d7d278f7f5a389a94948b79e06c51e0c986275633236d433f0df22e6ad166f", + "modules/companies/src/web/access/shared/types/access-field-option.ts": "30de1266a006c7eceb155c1415ab9e5c9768de4e0374b90f1a144e553471a824", + "modules/companies/src/web/access/shared/types/access-form-props.ts": "0562059516db397cec1dfa5dcc71d10b91150fd9fa10a9265eca6b55f181f624", + "modules/companies/src/web/access/shared/types/index.ts": "05617bea01533454d8b9ac8d3f527729d56dcfb0a49763b1d0f1be31e05f9e25", + "modules/companies/src/web/access/shared/ui/access-editor-dialog.tsx": "d1bf94fa699792c20c8e2e574b1439a69838d3f41d75d2f70393ba14c2d20e11", + "modules/companies/src/web/access/shared/ui/access-field-control.tsx": "bee88c484cfaf71fd0def001acebcea8ba934a9a2414136884f15b75fa5b2ba3", + "modules/companies/src/web/access/shared/ui/access-form-fields.tsx": "70e622fcdfe74843c433788c4c459df41b6126533183a094855e183a75466f64", + "modules/companies/src/web/access/shared/ui/access-form.tsx": "0749ca639d22c024b3246101cb572aacb6e329f8a8d8375a7380ac54e7ca1163", + "modules/companies/src/web/access/shared/ui/index.ts": "c0ae2268a440b5924eb1e4d8ce16b06e8bb4608900de68fd4c121f69de83f502", + "modules/companies/src/web/access/shared/ui/permissions-control.tsx": "d40e6df1e61092e51905f63067fb12efe5e71041e20684299884885eefea4446", + "modules/companies/src/web/application-configurations/create/index.ts": "03337db215a099eb963d8d845ad50aae64f22096a691a4db2e420ba730726c2c", + "modules/companies/src/web/application-configurations/create/ui/application-quick-editor.tsx": "8d2f7d332168dd3951e037ed8d516cfcac4c34c59e8001539508300d10900cd3", + "modules/companies/src/web/application-configurations/create/ui/index.ts": "adf8ecb4bfd13eee7583f9cb23667bbf40930aaf54e785a4b72ea1fe71703919", + "modules/companies/src/web/application-configurations/history/index.ts": "a1a219f241ad790d8a3256d4a1c078758e6f79c55d695dea6027479ce8ca0e37", + "modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx": "eb1fa64fd99f655e7abd7293cb6a58974b340540481f991926ef5c1b3b87aea7", + "modules/companies/src/web/application-configurations/history/ui/index.ts": "134d966a67f93a3bd84d86dd3a77d6b850ca2a89740d69b967913931d3be56c6", + "modules/companies/src/web/application-configurations/index.ts": "839eb3f773e8b833fc4aafada8c4719b6cceb00c186a1b54427982e536a5e486", + "modules/companies/src/web/application-configurations/list/controllers/index.ts": "7b99ade54322548fc0e325aabbf5718fb83d2d145881c6bd13643aa276aadde2", + "modules/companies/src/web/application-configurations/list/controllers/use-application-configurations-page-controller.ts": "74da0a0992e217c6407c7fd4490144fd9900ffebe63427eac3b09f14edebeb26", + "modules/companies/src/web/application-configurations/list/index.ts": "2d82f25a8e494cee83570b62668f6638cc61ba1374da99c3b34c2fde6e7c5315", + "modules/companies/src/web/application-configurations/list/types/application-configurations-page-props.ts": "312342acab224131dca8c52cdd5a9a64678f6bd5de38adabe88ed053918e8f17", + "modules/companies/src/web/application-configurations/list/types/index.ts": "3f5312d1793ff48750bb8a44e6329e7e07c22bbb5f2f1f64ce052ce0fea07d72", + "modules/companies/src/web/application-configurations/list/ui/application-configurations-page.tsx": "4d731ec224c7d1a826d8d7b5c95aa77c9ea3ba6046254bf896dfe080c1aa280f", + "modules/companies/src/web/application-configurations/list/ui/index.ts": "af4b0b1903744d1f46224ef69bda8f292c5f2b984ccdc17b2b900e3de26d5b80", + "modules/companies/src/web/application-configurations/shared/api/application-api.ts": "ea71a017723b28b9cf4d84b043729e8005301e10ee5b7d8c7c09b9d72853c80c", + "modules/companies/src/web/application-configurations/shared/api/index.ts": "df8fc6ee3f840f971461ea46ab343de34f522c0be202c549b7ec18ff3ae77280", + "modules/companies/src/web/application-configurations/shared/application.test.tsx": "42e9209f3c854310782c834d5e6702848e56c3542d597c13e59d9cfeec676e81", + "modules/companies/src/web/application-configurations/shared/controllers/index.ts": "e1138795a592620383bbb812253b591e99254dad9184c86e4d68923186772fbc", + "modules/companies/src/web/application-configurations/shared/controllers/use-application-configuration-form-controller.ts": "e240aa03a15a2e91d85642af2f37e4252c2c8c00f5676f237c8b176581bab908", + "modules/companies/src/web/application-configurations/shared/helpers/application-configuration-form-values.ts": "ba78e87fcf991ebacad26141c1451409e4ce2b401addd182857e096e85fdb388", + "modules/companies/src/web/application-configurations/shared/helpers/index.ts": "8cf37d00dbafcff2a4dca275890e734ae8a7a5d4d135011c4d9b0311086b890a", + "modules/companies/src/web/application-configurations/shared/index.ts": "1b6fe3c803f79fcaf19bf891a6780064ff1db6e20916d7b44c0c9b1516e374ae", + "modules/companies/src/web/application-configurations/shared/types/application-configuration-form-props.ts": "626c6e403857d0b7fa8183e62ee9622e11fcbd90a56beedc05b59bfcaaaa35ec", + "modules/companies/src/web/application-configurations/shared/types/index.ts": "909f61c836cf219b84f26a3496f97aaf5e6ed9c982e8706ba853b7ea3893dc82", + "modules/companies/src/web/application-configurations/shared/ui/application-configuration-editor-dialog.tsx": "b2a8c64ddf84b45f932e93b6549c30101fa591065a20bdff1d3e32a58e5c2e19", + "modules/companies/src/web/application-configurations/shared/ui/application-configuration-form.tsx": "51a7f89ca5cc85859419264f3cc7e5b302d26b130339de748f6188ebf7a157dd", + "modules/companies/src/web/application-configurations/shared/ui/application-feedback.tsx": "509589809a4f61d87cf0460e9d32af13424aedc55f6975de477b67c9d42d9f85", + "modules/companies/src/web/application-configurations/shared/ui/index.ts": "6bc4e1546905e2920b52de310562bf665e146823c6930641fd8fbfe66c84fbc0", + "modules/companies/src/web/assets/detail/ui/asset-operating-systems.tsx": "4b799e7e398c97b1bfe410eb898a5d855fb7696e18beadf839634de7adedf9df", + "modules/companies/src/web/assets/detail/ui/asset-related-information.tsx": "01a57f44e8387d0fa866d5f7bce528bcc333100ae59a6d5f2f0a3747ed377cf0", + "modules/companies/src/web/assignments/history/index.ts": "f4414fa3ae6418c2053bfaff995beedff7be6e22e87e16575c76433f29760454", + "modules/companies/src/web/assignments/history/ui/assignment-history-dialog.tsx": "12e6b4ea66688a38b5d5ec74f6a619692f7187204de46c8584a4029ef574badf", + "modules/companies/src/web/assignments/history/ui/index.ts": "fd7e92c15f15e69bda0ad140dd2a5f957e0f58c24dc4efb952ccec1c6741b382", + "modules/companies/src/web/assignments/index.ts": "9f616dcfc49d2191839fa041aea0d762dd9c3c6725f1263af34d587904ca5515", + "modules/companies/src/web/assignments/shared/api/index.ts": "bfc1c7c5ae6442d6964e7e8492d2045e6331b13762ae4a43cfb62bedd10965da", + "modules/companies/src/web/assignments/shared/api/save-assignment.api.ts": "415cef299dde1ed0ff197b9a5930d5be1cd5369e8f6d05cf7cd98c30ec825bff", + "modules/companies/src/web/assignments/shared/controllers/index.ts": "5dca928f59ce34b46391dd51aaf88740e893862bc189685b1f6cb8d7164f4056", + "modules/companies/src/web/assignments/shared/controllers/use-assignment-form-controller.ts": "f6e502cf510b8b3a602555af693fb33daa854478cc10cdd33dd5a0959bdc00ae", + "modules/companies/src/web/assignments/shared/helpers/assignment-form-values.ts": "0d9b41375da1ed801f2f555745c9d7ef808eb65c53c3885cf2bed3667189bdd6", + "modules/companies/src/web/assignments/shared/helpers/index.ts": "b1739a0f0a3443ecddc49d2bef39ac7c31f4d91a1dc3d4dad980073d040c375e", + "modules/companies/src/web/assignments/shared/index.ts": "6cf526d22a9ee4336718eaa5a22907aeb2f0e65d5f62ba1cbb72b6d35ba1680d", + "modules/companies/src/web/assignments/shared/schemas/assignment-form.schema.ts": "877ebbf1f4af8a20e10b4c42715e0597f003ba6f0bbfa656d827053aa135ef76", + "modules/companies/src/web/assignments/shared/schemas/index.ts": "da924a7395a6008a819f4fddd24625577d564f7f8cf8c4c7606821bb968b5e38", + "modules/companies/src/web/assignments/shared/types/assignment-form-props.ts": "91270b991c82f35cccdcf1aa953fc05cb4bf60926199db8a80759a5f6c4cb1ed", + "modules/companies/src/web/assignments/shared/types/index.ts": "df2e1ac198375953b458911fd77d1ec568e3f7a18e379e2246733df4b131bb8d", + "modules/companies/src/web/assignments/shared/ui/assignment-editor-dialog.tsx": "9af70f6e183cb3baa5d0067269a1b5ce6c658e6c540fd2c8c1e78f774a45b989", + "modules/companies/src/web/assignments/shared/ui/assignment-form.tsx": "9b91704f6a2292d3daf2af5f2ee8761b0241ae9df52eac212ebb5204f79f101f", + "modules/companies/src/web/assignments/shared/ui/index.ts": "65d48737ac5b214ec528479215e4e41e34008a08d32e768fc75bc4ddbffac46b", + "modules/companies/src/web/certificate-configurations/create/index.ts": "a0daba13f10022d3ddd4c15e5fbe097b977534969999fc03f5d434f876396061", + "modules/companies/src/web/certificate-configurations/create/ui/certificate-quick-editor.tsx": "48a87670a67ea3397ade7bc38d87dbd64f3b9d8263acc496d7cdf843cf7310b7", + "modules/companies/src/web/certificate-configurations/create/ui/index.ts": "a15c70de1f797c4f2b97fee9d73c061202990a287111549478ce6f202575c764", + "modules/companies/src/web/certificate-configurations/history/index.ts": "9c23d218a047d8b42b92ac191b2c2e8de1e3ec9c9abb482b7d2c655ceb2176fd", + "modules/companies/src/web/certificate-configurations/history/ui/certificate-history-dialog.tsx": "300237468485e6cf0cdb1653989d6568c3e3d58eace5da2081051d0db28c65bc", + "modules/companies/src/web/certificate-configurations/history/ui/index.ts": "4dacce1b2facd31e9a9a809388808de2fc3b4aad6a4ebc47abd0ac3c29e43393", + "modules/companies/src/web/certificate-configurations/index.ts": "33698e0981c79ae020e820930f1b877f34bca3d7440e42429c067cc3142e3c06", + "modules/companies/src/web/certificate-configurations/list/controllers/index.ts": "feb0df0f4ba17231262a212a9b1d29939f9e258d11dfc32e66c680dd1ac4619d", + "modules/companies/src/web/certificate-configurations/list/controllers/use-certificate-configurations-page-controller.ts": "10b5b9997da6c67c828de364384430984934f3514ce95793cc891b66689f16cd", + "modules/companies/src/web/certificate-configurations/list/index.ts": "462b5dec58a1f6ce9479bfc9c1b0ed46fe5a99127b3309c6ef2bf034327eaf47", + "modules/companies/src/web/certificate-configurations/list/types/certificate-configurations-page-props.ts": "f802ea5db0917dd518cf14fc19effc97d0ff157e0ccd521d45228ff6f86d60d6", + "modules/companies/src/web/certificate-configurations/list/types/index.ts": "76a70eb58bc0f2bf624c8171fab733cb169e4701d70695b6d39fe01846253c28", + "modules/companies/src/web/certificate-configurations/list/ui/certificate-configurations-page.tsx": "f509bf383effcbab8aa3f0e14e2cd29b3ec4132333591116ae6acf37c794d544", + "modules/companies/src/web/certificate-configurations/list/ui/index.ts": "956485cca6c91a9575ca0d36de1bb4e643910942e016b640ced8f045083c4300", + "modules/companies/src/web/certificate-configurations/shared/api/certificate-api.ts": "6e5bb37821acef41c3a6a0fb5a76c638be0c703dda7c53947571a4c6382dde8d", + "modules/companies/src/web/certificate-configurations/shared/api/index.ts": "8f7ba069e4742bb27be820412f673cbcfd6b3b1055b6b218182802e370e757e6", + "modules/companies/src/web/certificate-configurations/shared/certificate.test.tsx": "bcb5bc5713d935987fc08c930b655147c8e9bcbf129a149af553174b62c44c39", + "modules/companies/src/web/certificate-configurations/shared/controllers/index.ts": "8d40123fa5fc2a14cdf47b5669102b4d1f9f389c05e90d7e05da5920160328c6", + "modules/companies/src/web/certificate-configurations/shared/controllers/use-certificate-configuration-form-controller.ts": "a9bda22bca2fc0e07cdfbc4ce1c3980fd72f15ef7f22e6f3e30e7578e842aa34", + "modules/companies/src/web/certificate-configurations/shared/helpers/certificate-configuration-form-values.ts": "b14060eb6a5bdd951a65d1c9b99967a7c9405e9ed5797abddef4e74bd1f22608", + "modules/companies/src/web/certificate-configurations/shared/helpers/index.ts": "80202be4b53a1d71561ed555d5becafb15229ba938185727053e65fec2fd5525", + "modules/companies/src/web/certificate-configurations/shared/index.ts": "203174e1329ec01f22937850d5b17a68dc802a7f0d97b425caa10cae9f6825c6", + "modules/companies/src/web/certificate-configurations/shared/types/certificate-configuration-form-props.ts": "94fcf3b8bec91f929b9c74de2af3487c3d89118068b2bfa39ad06524bae38e63", + "modules/companies/src/web/certificate-configurations/shared/types/index.ts": "75918b4aaf7ee31bdb3b5f30273c3990f6a82b84b8bd1a5a32c5b0c8a209c11f", + "modules/companies/src/web/certificate-configurations/shared/ui/certificate-configuration-editor-dialog.tsx": "d194aa683ac503cf808e3a1b385b672521999c67e3efb4ebdccb01dde49d2772", + "modules/companies/src/web/certificate-configurations/shared/ui/certificate-configuration-form.tsx": "01c1c11b4e023b4c999d454ad18e4b20049d844ce1429fa4d855f571c1b4e82c", + "modules/companies/src/web/certificate-configurations/shared/ui/certificate-feedback.tsx": "ecb2a62ae98f2e86e2e4824d2bba7bfb524646f3ce83660d8ab8901a67c98089", + "modules/companies/src/web/certificate-configurations/shared/ui/index.ts": "6ca244316f6dde4472b2dc8481961615d4b2ba79deca309b2c139572a13d35fb", + "modules/companies/src/web/companies/change-logo/api/company-logo-api.ts": "8206987f78f501d080e38f9df6221418c20dc32e40c15a95e08662da3ba00f93", + "modules/companies/src/web/companies/change-logo/api/index.ts": "f87ddd351bff5d1f21a40cae5637b76d8a0e926cfe438ce4b5154e4f1f9dcf16", + "modules/companies/src/web/companies/change-logo/helpers/index.ts": "56eac124100d6d23a18902191476ac1814db6b04da4fd27bf96d25d74aae80d7", + "modules/companies/src/web/companies/change-logo/helpers/validate-company-logo.ts": "1f47745dbb3f64d692cce0b53fa2a3538cb084278104bdbe7fc84ccc56a936cd", + "modules/companies/src/web/companies/change-logo/index.ts": "df22a0a7cc053858e1541844a9720bc21b615e61dba7e22ebab7afa3dc28760c", + "modules/companies/src/web/companies/change-logo/ui/company-logo-field.tsx": "94a2be7592b253d0febbf4416952a21aeaddfa133e62a99d52ef744e3af1d635", + "modules/companies/src/web/companies/change-logo/ui/index.ts": "ec84a970a42115bff28dc5c23f67a94b14210df96f25799389cd3cd628fed65d", + "modules/companies/src/web/companies/detail/api/get-company.api.ts": "14f59ff7a64e89a6e2f0d6b3f314e359aa4a8ab61cbccc8d7d9dbc9e3e84d8ba", + "modules/companies/src/web/companies/detail/api/index.ts": "59b4fb6f2a862141e71724cf1796b14c25110fef43cc93d96fdc00d2f48f5a5f", + "modules/companies/src/web/companies/detail/controllers/index.ts": "b88fb2649a0ea6c402f3c4768a10fdbf63d69adeb6d3da94385989387ebd722f", + "modules/companies/src/web/companies/detail/controllers/use-company-detail-controller.ts": "b0eb9df2ee6530acaaaf98973c9f9260cd0f1b519833a3840e4a0881a3e8b9e9", + "modules/companies/src/web/companies/detail/helpers/use-company-navigation-entries.ts": "766e70d7f4286783d4c151ff9b96dc558a0aba6b4fa06a20f8a716a312b59f6b", + "modules/companies/src/web/companies/detail/index.ts": "7cc9cac18223a9a7f8a05ae21dfc33edb92d717b8abd1314fdd3fe75a88068dd", + "modules/companies/src/web/companies/detail/types/company-detail-props.ts": "1b98313c67952925bc60a03e447b664ced867631dc5ce8b3e84e5426824e22ad", + "modules/companies/src/web/companies/detail/types/index.ts": "4b8d5ff8e786ba59fef1be8e8aeb53b24e64288adfa29bc6229363a7f53f45c3", + "modules/companies/src/web/companies/detail/ui/company-context-bar.tsx": "6ae207bbec66c7830f61a3911d3ffd77a59e246f241c9966ee38e5be60d87c3a", + "modules/companies/src/web/companies/detail/ui/company-detail-body.tsx": "c6cf78208175dba2e255bf33b6601d2594988f19bb98d18d6fc52ff98b442702", + "modules/companies/src/web/companies/detail/ui/company-detail.tsx": "f5153f43af9f59e2ba572eea2f930dc53ab246dade9e93e76d7d9073b39fca6f", + "modules/companies/src/web/companies/detail/ui/company-entity-context.tsx": "955c3bf24853820db40a8e30e85c6cc4b8513e0b58bb4d063dc4f9c13e895ed6", + "modules/companies/src/web/companies/detail/ui/company-fixed-navigation.tsx": "0a522df565fce691554cc3bf7a908bb248110e0480d98e49c990e48f12a0ae88", + "modules/companies/src/web/companies/detail/ui/company-header.tsx": "bd2ee3a23ce49d6335a875bde0939172c0b6c481b1832b963acb882d853e35c4", + "modules/companies/src/web/companies/detail/ui/company-inventory.tsx": "5830df6fc455b323e52a2113576ad2c34f61600241a6bfd7662ebc0600f5adce", + "modules/companies/src/web/companies/detail/ui/company-navigation-sheet.tsx": "e155229572319efa9794b09a7b656b11e6f71cba101d236bb9e9817aa34c539c", + "modules/companies/src/web/companies/detail/ui/company-overview-statistics.tsx": "923dbc71ca9d79b1610c9bcb8598e62cb71068e91023cd5d1741e00dba6caca3", + "modules/companies/src/web/companies/detail/ui/company-overview.tsx": "e1b2931021db1da18ddfc81edb5a6c858e90554ee9e44d0b4d1bbd7f407ce8c3", + "modules/companies/src/web/companies/detail/ui/company-section-navigation.tsx": "4d8db05accb0a8d128bcccbb70db558b10def0549e9c4ad815b754bae494154c", + "modules/companies/src/web/companies/detail/ui/company-section.tsx": "18cbe45389e8aa9af3c85ed328a2365ec3caba9988a918baaa066292adcefc27", + "modules/companies/src/web/companies/detail/ui/index.ts": "5432f10f713ff707c92840c59c5838fc7a164b2734bced5e725d0e8390723da7", + "modules/companies/src/web/companies/detail/ui/inventory-quick-create-dialog.tsx": "2b2b4e672231dc474e65434c7e9e2220ea1804e446406fc0e604348160692ba1", + "modules/companies/src/web/companies/index.ts": "022fb8916eeb9c54ee03123e915ffadc3af197ad6f2a907f5d2616caa5e191c5", + "modules/companies/src/web/companies/list/api/index.ts": "5f2fedb1ac69fc1a7f936342f2d916f6e47694d953ebfe38c0351dba90fc3ca8", + "modules/companies/src/web/companies/list/api/list-companies.api.ts": "9336a64cbc14e16f970a14f05dcaad1e6103ff8d272090bbc2e21b4be1e98709", + "modules/companies/src/web/companies/list/company-filters.test.tsx": "e8215d25e3ca410c76029644fa961316f344e116be43024306d9c553c332b230", + "modules/companies/src/web/companies/list/controllers/index.ts": "2409ea73ebab075e2f5c83294e5e669ef63b1547276d38d709dcc8ce2ee3d1fc", + "modules/companies/src/web/companies/list/controllers/use-companies-page-controller.ts": "50f8176a8725f2a1f6304818cde7b066e0dfd40ee7ad674332de8e647a4667cd", + "modules/companies/src/web/companies/list/index.ts": "18ddf0c7045165c6f8036fbbaa1870841b92119840bd2e8e3b3affd32a926903", + "modules/companies/src/web/companies/list/types/companies-page-props.ts": "99511755526eb99bbfff5bec53efc12009f11e357b397db7690960e036f51902", + "modules/companies/src/web/companies/list/types/index.ts": "5798359fdf21a9e1c79a35c7d6dd48b4bdf536d3b13d2f0e8bd3aa0836e1aff6", + "modules/companies/src/web/companies/list/ui/companies-page.tsx": "308e3e2541bd1b3faafa618924f661bd43decb6582870c1af0ee6a3fb4b4bd11", + "modules/companies/src/web/companies/list/ui/index.ts": "6af8b1ced7933691945e39f71a8b63ce3df9fe026e0152d883b72d87e2c5d50d", + "modules/companies/src/web/companies/shared/api/company-api-error.ts": "7e06d1e4f704d8d242990c4a03566c4acfeb21e081c1d3b3868f27a89efe8a92", + "modules/companies/src/web/companies/shared/api/company-request.ts": "3cd2be50a6287d1344202176e527c512df6ecbbcf7e5d617a68f15b93bab909b", + "modules/companies/src/web/companies/shared/api/index.ts": "a43bfe1bec50327417cf84601dc50a18849d260e97d4915a537c8dd896915a86", + "modules/companies/src/web/companies/shared/api/save-company.api.ts": "1a3481da4f2221d8e47bf42a25a48d82dd1e70234d644270e13d8a11a178d370", + "modules/companies/src/web/companies/shared/companies-page.test.tsx": "edd2b477a2c51c8460686307aa55f13c868a100684c39c92ce79d74290b105cc", + "modules/companies/src/web/companies/shared/company-avatar.test.tsx": "e12b1abe3c96b21153c9116d5e5f40e3a059a56c3da92bf5f1ca4490488811ab", + "modules/companies/src/web/companies/shared/controllers/index.ts": "d0666bdab90e7dbe984b4c161bf1ae88cbf32440963a7d209abd9e6857742980", + "modules/companies/src/web/companies/shared/controllers/use-company-form-controller.ts": "ddce339b760ac565d611686fc86f7b9c3b0ff6017e19268fbdcfd80924d90d9c", + "modules/companies/src/web/companies/shared/index.ts": "9d5b509a36ae5855792615a3a19cd371450616ed72b5ee11cba62acdf6310dce", + "modules/companies/src/web/companies/shared/queries/company-query-keys.ts": "f757081b9889df71e1795e68c2188aea31a1158e859bb915cb0dffefa4800951", + "modules/companies/src/web/companies/shared/queries/index.ts": "241f7bde99106a802f066ad5e0ec8b192d31ae0968793f3638164787622f0179", + "modules/companies/src/web/companies/shared/types/company-form-props.ts": "71de9c5b6eaf421daeafa7e0113087809b57a632f46b4e912e4ae47b2aaea5ec", + "modules/companies/src/web/companies/shared/types/company-tab.ts": "176de495b0f83e9d3b251d031d4754aaf6761c7cc75dba58cae9f20db99384b7", + "modules/companies/src/web/companies/shared/types/index.ts": "8f6dc49bdfb35ac38c8d3a6d82773a6b08c300ca939f55516545f3997eea6982", + "modules/companies/src/web/companies/shared/ui/company-avatar.tsx": "0f848104998e398270fa22b431b1d36c9f8d9ce27f7aac644148522ca3f6b174", + "modules/companies/src/web/companies/shared/ui/company-editor-dialog.tsx": "b7fac51dcd1d4f92a8c1f7579af0f73ecf65e0f964f2318ce8da25d1336f9477", + "modules/companies/src/web/companies/shared/ui/company-feedback.tsx": "2a8440bc9068c080880a12ebfd45d4fcda61cf10da8b9e63d4a0beb3026e9667", + "modules/companies/src/web/companies/shared/ui/company-form.tsx": "c77b8cf13d504203eb4c68f4ca55786271ed4b8d32fd2985921df344aa94dbeb", + "modules/companies/src/web/companies/shared/ui/company-identity.tsx": "3d9796d13ea15b4ccc504bb320c0ba5544f6b581fb408290d06c4d01f04c84c9", + "modules/companies/src/web/companies/shared/ui/company-select.tsx": "6a0d84174d8b97089098313e07c96ba7af40518275e74e3e4266f08a9a1a3003", + "modules/companies/src/web/companies/shared/ui/index.ts": "f2b3eb0872bc8493a0c98a9ce6b66016c4f175fc007af75be68d73e66d113a4f", + "modules/companies/src/web/dashboard/create/controllers/index.ts": "3b346e3abd62be0ad59fe55b545dcde3701c101b94ea0632d7f0d09207c55c68", + "modules/companies/src/web/dashboard/create/controllers/use-dashboard-quick-create-controller.ts": "de0d22d091896956ba463b2c5027fcaa24080ea38dce6dbcb45e2f711b1b41d0", + "modules/companies/src/web/dashboard/create/index.ts": "05478dbf272cec0552bb5087cab2777a4846338e02f786b582924dc4b85d5810", + "modules/companies/src/web/dashboard/create/types/dashboard-quick-create-props.ts": "b3d817083e49a1e71a25431d06fa360b3a274e8d80c94a18b07d107abdb0b670", + "modules/companies/src/web/dashboard/create/types/index.ts": "ed6d3c8a644171eb8e5ef78b63bb6ab69831c59d3c666ebd1d86d1f33b684240", + "modules/companies/src/web/dashboard/create/ui/dashboard-quick-create.tsx": "6c66f1fd8ac1a0ad8f149dbca536a34289a805e996ec3644a75ce9bcece34055", + "modules/companies/src/web/dashboard/create/ui/index.ts": "e33e8250b525414fe27b3e371c6f2c519cdb4730b3ce6499fb0f4823140697d2", + "modules/companies/src/web/dashboard/detail/controllers/index.ts": "ab7a49b0a8fa1a8e8ca1c8ac4bf5e1845916dfba89390d9d77921247214ddd62", + "modules/companies/src/web/dashboard/detail/controllers/use-dashboard-details-dialog-controller.ts": "7b6fe92a812d0228a09fba4b7d06723a781ce238f01c80162e9dd892059f897a", + "modules/companies/src/web/dashboard/detail/helpers/dashboard-details-dialog-values.ts": "ca42198beef3f6317bd9e89b210f552714c1afcb504f4616cfd798bd124c7606", + "modules/companies/src/web/dashboard/detail/helpers/index.ts": "e7e6c3231fcae6665e3114233737cc0802fba779b0fd6c5525ffee1d777c9d86", + "modules/companies/src/web/dashboard/detail/index.ts": "e1a2eacdb677e07481f5b04f701f5bceb32f9f7cd1e3bd2bfd4749a309645877", + "modules/companies/src/web/dashboard/detail/types/dashboard-details-dialog-props.ts": "c4e3b5773a8e16f5db4c8d1af1fe3cfdec9ad6cd1e40157f12bb56169eaa9e78", + "modules/companies/src/web/dashboard/detail/types/index.ts": "1f28cdee95cd4715a17ab802b63a2e781cd16513874259cb0228010e540600dc", + "modules/companies/src/web/dashboard/detail/ui/dashboard-details-dialog.tsx": "5d27b218bc10a414b09ed37a7af2907895c52d52978af60b8bb3b815c9b3b5fc", + "modules/companies/src/web/dashboard/detail/ui/dashboard-records-table.tsx": "77746e1e9f6714f48107b240a2f6897596023bf9c8a058d51ffaaacbdcfd5764", + "modules/companies/src/web/dashboard/detail/ui/index.ts": "4e53f51af430194d6aa22c74d874342d3239a516dbd340c7dd7ad12391f40384", + "modules/companies/src/web/dashboard/index.ts": "0bf7e8fefa43277e9515e81b389a80027142792f5c5eb50d1e05f575e05afe0c", + "modules/companies/src/web/dashboard/shared/api/dashboard-api.ts": "59b5504b4640e520f4b2a28566eca7ba3461f825f461289276109205c65304b5", + "modules/companies/src/web/dashboard/shared/api/index.ts": "4aa712855defa37cf6b2b4cc1e486b4760c2002c91c7026be397bca91d52a012", + "modules/companies/src/web/dashboard/shared/helpers/dashboard-kind-icons.ts": "c44a6383ec1d5d7a98aa4be6c3a8cf39f4a2d8d7dd80dd408200a6e42c761405", + "modules/companies/src/web/dashboard/shared/helpers/dashboard-navigation.ts": "fdd1e1c4302352c8207e3f1b9db11e5fd1e4e32903ee1d67f41bfdcfa6d51763", + "modules/companies/src/web/dashboard/shared/helpers/index.ts": "434c33ece3a511e28a3e6a9d62c97ec19279f852246ce98c6bd85eeea06c4d15", + "modules/companies/src/web/dashboard/shared/index.ts": "ced2e5ee763ec47e2ee0a148e11b2c154a05d85b6ffb3235bad8101081f65c19", + "modules/companies/src/web/dashboard/shared/ui/dashboard-block.tsx": "501183fcec565b6e0b453037584d337ecba1a7a3ee1c96bf9b99cc225ca399ed", + "modules/companies/src/web/dashboard/shared/ui/dashboard-navigation-button.tsx": "ca3aa1235f12a5b78fcd8eab3afb8e6dbf94e714bb36e56f200ca67d1f3ddb6d", + "modules/companies/src/web/dashboard/shared/ui/dashboard-panel.tsx": "36e5197a8108520a7493fdbe9c45b82ad724a265060c2e56b4f25dfbd3db35f7", + "modules/companies/src/web/dashboard/shared/ui/dashboard-state-badge.tsx": "7dbd0c5603be242dce2213fec0594c2f48db887927363e9b91f47bbca6fe7c9e", + "modules/companies/src/web/dashboard/shared/ui/dashboard-table.tsx": "6a2eab2e774c7a25f9529a4ec5935b604ea48cecec469994c66b894174a0dbb2", + "modules/companies/src/web/dashboard/shared/ui/index.ts": "2c5a3c6bb410bfb0ab268132c765a234da178db56fbf6e6331c8b9ea271a33d5", + "modules/companies/src/web/dashboard/view/controllers/index.ts": "5571f51c909d9aa4b2e824b604b2c5c76ebb8279902bbd6785ddb74962649ab9", + "modules/companies/src/web/dashboard/view/controllers/use-dashboard-page-controller.ts": "fe958be8b345efdba60a3277867f63ba856a637969d8394e1ea45b84fc2bb942", + "modules/companies/src/web/dashboard/view/index.ts": "e3bb4e98bec442bd14a83a7bdba40c0b367f49ea06e4ec10b3db25d01e2924b5", + "modules/companies/src/web/dashboard/view/types/dashboard-page-props.ts": "834ffbd36bd094ed8f20429d9f33aee8b8b42615de7df53f28e5c26a1bb1db31", + "modules/companies/src/web/dashboard/view/types/index.ts": "7a4b838f53fe494320ad63723d36136d91d35061b624d481d4f93ea66eda460e", + "modules/companies/src/web/dashboard/view/ui/dashboard-activity-panel.tsx": "516e05b8c07b04cb6900067f2847afb543272be2aa8519975527c3f4945e53e7", + "modules/companies/src/web/dashboard/view/ui/dashboard-attention-panel.tsx": "6784213bd764af70e007d0410588b635d03960ec8028921b64db272a37cbf83e", + "modules/companies/src/web/dashboard/view/ui/dashboard-companies-panel.tsx": "473916b2d02531aee040a278d1e9de785e2f19e6d8d093a17922c11af2ab5b3a", + "modules/companies/src/web/dashboard/view/ui/dashboard-page.tsx": "22ff77e50e7eda35257b210f54fb7ed3f52ddb023cc082c6142d629f5a8cddb7", + "modules/companies/src/web/dashboard/view/ui/dashboard-statistics.tsx": "0d2509e80407c3fe8be59bd4a6b9dcb11b63dc8c6217dbaf17e10123cb80f38d", + "modules/companies/src/web/dashboard/view/ui/index.ts": "821183eb71572bd02c4b6f05f2934986c710e2ca37d8ef1cfda32aff74a54789", + "modules/companies/src/web/departments/index.ts": "8008abb9bb50901f24f8f376ceec8800ec7c90da709542d1990b4d800330b1aa", + "modules/companies/src/web/departments/list/index.ts": "82de0cac2a121ad3ac6bfd3d42eab3230f9201e7769e1981fbc409ad8f228dc3", + "modules/companies/src/web/departments/list/ui/department-section.tsx": "5fcd5403fc94c68510d48c4c1085ab0dbc1f8c9d1309ba1511e58774b52f6ad1", + "modules/companies/src/web/departments/list/ui/index.ts": "3f87774a4dbc18ef9d4b7765005473b680dcaea9e043f5135b1f093087b301b7", + "modules/companies/src/web/departments/shared/api/index.ts": "201469ab1ab60ea1669012b27a8eb1cc1172971dec1c40cd964091942d6d95dd", + "modules/companies/src/web/departments/shared/api/save-department.api.ts": "c62a345dcb2d003ee836aa25628eea9918f084a77808c8c6aae30a84e9afafb1", + "modules/companies/src/web/departments/shared/controllers/index.ts": "992603bf5a3c8bae827e786dbfb33e539b04eeed62e458fb733c981da81dfd02", + "modules/companies/src/web/departments/shared/controllers/use-department-form-controller.ts": "9e982c68fc4383e4d84d6abbe0543df092e9b699d6f7201f805de97c55c68326", + "modules/companies/src/web/departments/shared/index.ts": "b6c82c0ff1eb719b7640facadec02cec8b9b67b8ca0ef218500f499460d36738", + "modules/companies/src/web/departments/shared/types/department-form-props.ts": "25c6d7255f4e4b09e220882fde09035a81861cb15e91f7a863197268c6a21c9d", + "modules/companies/src/web/departments/shared/types/index.ts": "8dc0356e46e09b486a8d1b8a2ef80413a45d85ad8908d198d52f848d8c4a5965", + "modules/companies/src/web/departments/shared/ui/department-editor-dialog.tsx": "a1000afe1edd52e01f17b5c3d6ef301cad9e7893ce393425db300f944ca8ec1c", + "modules/companies/src/web/departments/shared/ui/department-form.tsx": "d4da691a1c5138a0e293b2ca3630b913170e2b50a6c8de2d655ff764f10b9990", + "modules/companies/src/web/departments/shared/ui/index.ts": "35718a04c3174b4345871872f854c0b969ae3889a759dbb4f0b3407a218d37a0", + "modules/companies/src/web/folder-mappings/create/index.ts": "d740fa9cf9e2cd7f9daca023cdb6486c4d07673d77f1b884b8f3fa770efd266a", + "modules/companies/src/web/folder-mappings/create/ui/folder-quick-editor.tsx": "e62fd401a1d2ee347200f211b519ebb9847c7ff48e170f4856cbc0780ceae436", + "modules/companies/src/web/folder-mappings/create/ui/index.ts": "ac60ceffdbd79613e09ba3f72bbce700626b17ed1185a0685cbbd8d80cd7da25", + "modules/companies/src/web/folder-mappings/history/index.ts": "6de92e387e5837c9daaf3978d53c3ce9a8821f1e6b8765c57a8decf4a3f463bd", + "modules/companies/src/web/folder-mappings/history/ui/folder-mapping-history-dialog.tsx": "7874d841989d91647cd5b5f0777aa213b27716dcfa4f8173041ed6094eca2497", + "modules/companies/src/web/folder-mappings/history/ui/index.ts": "21d0662f861226aadb997cbffae79b1ef9928dd904d2883c829f49d6bad346a4", + "modules/companies/src/web/folder-mappings/index.ts": "3e1af0a76f394b94e3182bc7a145c62e0bcb60aa1f4db804eb0628f1b08e83da", + "modules/companies/src/web/folder-mappings/list/controllers/index.ts": "bf7625359b986d8aa9e6e0f783b95c1230e9359fc55d543fe3a1f3ee891b44e5", + "modules/companies/src/web/folder-mappings/list/controllers/use-folder-mappings-page-controller.ts": "6571317f64341434fb15bcfe7b643bef94124a66ae53c20bcfa68566fc08f0d5", + "modules/companies/src/web/folder-mappings/list/helpers/folder-mappings-filtering.ts": "60c9beb555178d4f6182e0c72c8fe2b7e504b1d1693c4e345140beaae515c92f", + "modules/companies/src/web/folder-mappings/list/helpers/index.ts": "6fa7b17f7059eefd805333fbba934efc618856fef3799e57ca181fb717c3ed04", + "modules/companies/src/web/folder-mappings/list/index.ts": "cbb3e2be72ba8375542cdefafa121e2ba8f1554d54dfbf250eb5473310e3c444", + "modules/companies/src/web/folder-mappings/list/types/folder-mappings-page-props.ts": "c1dba6b4355329f707b2c93c9d794c8cda031a2f86dc316179c4f159a38ee456", + "modules/companies/src/web/folder-mappings/list/types/index.ts": "886e7ed9cfe13334aa9635310d3ba140fb502ea5026e7b37c4d997f6e2a00e18", + "modules/companies/src/web/folder-mappings/list/ui/folder-mappings-page.tsx": "e0646e2863c0908a052545310e2413a6217bf955c563eb7c5189d633a77c8643", + "modules/companies/src/web/folder-mappings/list/ui/index.ts": "a9396623715245d9720b287424cc931e72f72c8e88978f2e2e32ba1e333aee15", + "modules/companies/src/web/folder-mappings/shared/api/folder-api.ts": "aa6248c32635a9e378b310e5d582e116e6d4f503c2073f443c426dcb897b6b73", + "modules/companies/src/web/folder-mappings/shared/api/index.ts": "daaacf029a998f81d687a62727b6bb7fbf58b382ed31fb6b0aaf3f9b7e28b515", + "modules/companies/src/web/folder-mappings/shared/controllers/index.ts": "e259cd3532fac74cc29384de69033af8fc4436dbd5e6eb716d198045f9f0a639", + "modules/companies/src/web/folder-mappings/shared/controllers/use-folder-mapping-form-controller.ts": "5e017fa45542a0aee9198743e09433b18ce8d522a61197fa3ad3add201a75058", + "modules/companies/src/web/folder-mappings/shared/helpers/folder-account-options.test.ts": "72985fd8a32b2af0ecf908a460f706f2addc18ce7eaf028c0943d279e39f1ce6", + "modules/companies/src/web/folder-mappings/shared/helpers/folder-account-options.ts": "f732e4516e3ce5cb19975dd5c9364d277d543274c10bed79443aa046910630f2", + "modules/companies/src/web/folder-mappings/shared/helpers/folder-mapping-form-values.ts": "1508bd47820de3eb599e8a5e0a556b2661374f6827ff96ffc287c3482cedc35c", + "modules/companies/src/web/folder-mappings/shared/helpers/index.ts": "742bc13b02a4bc9271f436597de1e120d88192a034c25c93088eb22c1c1f90f8", + "modules/companies/src/web/folder-mappings/shared/index.ts": "f1aec7a9a897de3faa39fbb25328aede2f2b8d35f0f44a9143125ddcc8c15345", + "modules/companies/src/web/folder-mappings/shared/types/folder-mapping-form-props.ts": "1bc6d03ba64fc732555bcb0e2a1da48e212ef1766cc6736f4fcae65b5caf3ec8", + "modules/companies/src/web/folder-mappings/shared/types/index.ts": "9e138ec9ed96554a8cdaeecb39c6ad57341e7c95b98baeb6e559ef7a1a2fcbed", + "modules/companies/src/web/folder-mappings/shared/ui/folder-access-account-field.tsx": "1f98384808a284cd3fd30074a06514982ad150355d4c23322086a11012fec797", + "modules/companies/src/web/folder-mappings/shared/ui/folder-feedback.tsx": "74179a08b8c005f1fa6cbd07e0d5c0af81332c80e4dac2ce5f866da745fae21d", + "modules/companies/src/web/folder-mappings/shared/ui/folder-mapping-editor-dialog.tsx": "cd3735e97d630314797e7cda078242b78bf92b978d97862a8a1e44ffe1ef48cb", + "modules/companies/src/web/folder-mappings/shared/ui/folder-mapping-form.tsx": "a023a30d72a6158ef3cffa13d7715bd591173143197dac9b56e58300b025a372", + "modules/companies/src/web/folder-mappings/shared/ui/folder-mapping-targets.tsx": "0079bf07561d1e726970c3c1fb2d75f308b4e5a79bb5efa2ed5b74af9f629fb4", + "modules/companies/src/web/folder-mappings/shared/ui/index.ts": "ca421b3028150d629de9462dceca358a26d35df38575f342df22efdbcf0bb1df", + "modules/companies/src/web/index.ts": "077baede98509058ad47720df9b0ea7ea17fa1f6d19030e3b82b5c47428770fa", + "modules/companies/src/web/infrastructure/shared/helpers/printer-usage.test.ts": "d7f434156b1fb32a715af9e8eae734a8f4364816a1a1c039e202d332448b88ea", + "modules/companies/src/web/infrastructure/shared/helpers/printer-usage.ts": "191c867b09dc35b426ed5a1345ce40a63540abaee4e5b7eadaebe41f4f27c1ef", + "modules/companies/src/web/infrastructure/shared/ui/asset-printer-usage.tsx": "f4441621b4854f41ef2daa713a3365ed1f0e456df144fc208b52dc07312198d9", + "modules/companies/src/web/local-identity-environments/detail/ui/asset-local-identities.tsx": "736d412bb74a005bd0d9b49b8b649c3a7eb60eb2285ae3ce3bda99d7f8a48984", + "modules/companies/src/web/local-identity-environments/detail/ui/local-identity-owner.tsx": "6cf7f0dbd7f772779b17e5fdd1ce76fc207073adaa455f71716fe8697940cb2d", + "modules/companies/src/web/local-identity-environments/manage/ui/local-identity-editor.tsx": "bd6fe2c0279380178c7669e6067be3735453e3d38c7be138d0c497b6e784eb34", + "modules/companies/src/web/local-identity-environments/shared/api/local-identity-api.ts": "4ea3452c8fd1c9319d389b56a0fda94769f25560f2d64579d9f0f1bcef290dba", + "modules/companies/src/web/local-identity-environments/shared/local-identities-ui.test.tsx": "b624df6456e84f164a00607f4e59239819ae06b16853973504f1315293687401", + "modules/companies/src/web/mail-configurations/create/index.ts": "721f0c29c554377ff0a40aba38c9c4e8b1be8ce8c1380d3f0996997c07884093", + "modules/companies/src/web/mail-configurations/create/ui/index.ts": "c3cd44740db5d2b336e0efbab5ed7f5fa4e45ed4777fcf51e7ab4ebc89960d14", + "modules/companies/src/web/mail-configurations/create/ui/mail-quick-editor.tsx": "95b6fc560c0aa2c044bdc2c96ccb92c663a6afbffaa5c6bbc568ecc6152ae057", + "modules/companies/src/web/mail-configurations/history/index.ts": "baec25c27e5debd6db7fbd57cbe66d898f0ff3a772ce47b9ee30be8ba2dab754", + "modules/companies/src/web/mail-configurations/history/ui/index.ts": "b98057130394121536e894486a112a9bcf8eaba142188882a73d3f4c8377340c", + "modules/companies/src/web/mail-configurations/history/ui/mail-configuration-history-dialog.tsx": "ff6cdec76da5af06f166257375588d4f89c7d2355107bcf8446d91fb65366537", + "modules/companies/src/web/mail-configurations/index.ts": "64490480a21e43116586f0743a0a18f4014122f618e9668cf80815b94b07de1d", + "modules/companies/src/web/mail-configurations/list/controllers/index.ts": "3eefc9b987d01ee1204ea967c0991da9fdde4acf4289f6b455fe0823808a104a", + "modules/companies/src/web/mail-configurations/list/controllers/use-mail-configurations-page-controller.ts": "6fb0d826946554d9725c8fd32cda9d32281a5a2cf223533f712a000bb12bba48", + "modules/companies/src/web/mail-configurations/list/index.ts": "1832f9b60acfb8b8213044f8eca97a7b0637d5d6a9e245b097ac7e3abbf5b406", + "modules/companies/src/web/mail-configurations/list/types/index.ts": "6c7409371dd02a03594beb8dcbc8f0ccef47191cdc37be67aac9af27449a991c", + "modules/companies/src/web/mail-configurations/list/types/mail-configurations-page-props.ts": "be500cc4016a0d571e9d160b378edc9e6b7bd46205f6fa7ceebd4f2e7346664a", + "modules/companies/src/web/mail-configurations/list/ui/index.ts": "b97b9d4334dac13b9dd003fe1587daf1e8b7d698cd79857017645c84320326da", + "modules/companies/src/web/mail-configurations/list/ui/mail-configurations-page.tsx": "d5f974de17d688b7d78f9e6b899ec97a2ca2486b429581973806477d71993700", + "modules/companies/src/web/mail-configurations/shared/api/index.ts": "469c9678a41f4215eb4214e8829dd9caafb3ff5c89c4b58d4ccc93b68290aa25", + "modules/companies/src/web/mail-configurations/shared/api/mail-api.ts": "d60a2e9b1ea532ecda0ebe08846d6f49df8aff0d8c2778aa417e485cae846a2d", + "modules/companies/src/web/mail-configurations/shared/controllers/index.ts": "115ec92e077c59509719304ad734ef6edb87b0b69fafce78fe14745dc0f4d505", + "modules/companies/src/web/mail-configurations/shared/controllers/use-mail-configuration-form-controller.ts": "243bc8dc44318ceff4e36e9ba8fd04682a4086dc4cd69d8dc2b793b6dd0a7b7c", + "modules/companies/src/web/mail-configurations/shared/helpers/index.ts": "0122448826c9acb9d15aa64329a5a9a3d26c97c8c3b652a1275f3565b88b4184", + "modules/companies/src/web/mail-configurations/shared/helpers/mail-configuration-form-values.ts": "8a519c1c1673662005aa5100fec1631e2f930cf1021784fd06c4dc89cf076773", + "modules/companies/src/web/mail-configurations/shared/index.ts": "ef92f4cab4016e4a0b4a805858c54f572b5d1798fa60e75eb2dabd9e4dd3198b", + "modules/companies/src/web/mail-configurations/shared/mail.test.tsx": "ba20e07ce8f3b49d8a1aaa5dd2ca1fbff3d4fd72eeb2f87c039e691483269d28", + "modules/companies/src/web/mail-configurations/shared/types/index.ts": "79bb94cce7869a9f0b1fe356458ae4671e1cc7a0f2bdd9c1b42b22f0f4933db4", + "modules/companies/src/web/mail-configurations/shared/types/mail-configuration-form-props.ts": "740ff3c310d551baf9e0390f17af70e0082f0a979000b383187b3c3b34326288", + "modules/companies/src/web/mail-configurations/shared/ui/index.ts": "5e5e21df2a2d2f78fca9a7e8d00b06b79eecf88ddcf6f186f3ebf786f52531e6", + "modules/companies/src/web/mail-configurations/shared/ui/mail-configuration-editor-dialog.tsx": "5106d01f8409381fdcf0944b2fc11e8546aac5b8bc787b5a73b114e002704bf2", + "modules/companies/src/web/mail-configurations/shared/ui/mail-configuration-form.tsx": "d1c6536e3bfd67260601561e3006d22e7f72931b6e968daded5a5ce46c959860", + "modules/companies/src/web/mail-configurations/shared/ui/mail-configuration-targets.tsx": "a9882c6a9abc6e7b536428bf3443b852900d0b055b404faf958f1aeaa293a6a5", + "modules/companies/src/web/mail-configurations/shared/ui/mail-feedback.tsx": "3650425725bf5ef1d823d7be83c0c50b0f2b1516a0b656b85455a95183bfc32f", + "modules/companies/src/web/mailbox-uses/create/index.ts": "ecefe70e0007d36bae23b3b59b96dcee05bb6609bdb41a5b5d0d9eecba204542", + "modules/companies/src/web/mailbox-uses/create/ui/index.ts": "d21d9fb87cbd5ab44107924c349d3bc63b962dd99077e21d213b2aacd2bd2bfb", + "modules/companies/src/web/mailbox-uses/create/ui/mailbox-usage-prompt.tsx": "f7ee91f684c30fc194ec4d67c3aefaa314b0b798f050757a7fe408d667962d55", + "modules/companies/src/web/mailbox-uses/index.ts": "30bcc7eafe2c7106d4e85fbc1ba406081a2ae223f3eed9d6759cbcb7be894975", + "modules/companies/src/web/mailbox-uses/shared/api/index.ts": "e2b3ba7e17cdcc54951e3ec48b947add097ac156902038edcec4d50afa41c92f", + "modules/companies/src/web/mailbox-uses/shared/api/save-mailbox-use.api.ts": "d479c0cb4ed9001afb98cea4a5be1323b02e647de4546583964eb3031fe58a7d", + "modules/companies/src/web/mailbox-uses/shared/controllers/index.ts": "1b8cb1b3f2443949b5ee6d90b704c10512b720381dc91e776d9a8d64918a835b", + "modules/companies/src/web/mailbox-uses/shared/controllers/use-mailbox-use-form-controller.ts": "ff454d64f8ebfc16fb1bde9e5e5fb7b8655474952a593a86669e2dacf1d846fa", + "modules/companies/src/web/mailbox-uses/shared/helpers/index.ts": "7c96c7d3a3f229294a7bbfceb79341a1738ffd2e34a70d008fb18180653be2d1", + "modules/companies/src/web/mailbox-uses/shared/helpers/mailbox-use-form-values.ts": "ab15c8d5d366d225deeabf007daa406f954b821317ec4a6931276b76b17637ee", + "modules/companies/src/web/mailbox-uses/shared/index.ts": "980e09e4befcb06664d292d8e1c05c788388484d0008eac14076d544c8120910", + "modules/companies/src/web/mailbox-uses/shared/types/index.ts": "bc667347a62bddfaf98cced89d34c729153a117146bff4b4a7bbd3d276583696", + "modules/companies/src/web/mailbox-uses/shared/types/mailbox-use-form-props.ts": "445a7b9ef2a4497cbdf080b07ed954e971ca21942453b0c66d41a583c17bc141", + "modules/companies/src/web/mailbox-uses/shared/ui/index.ts": "6cc527abb48c0947d4607a3b5b2d320428a582694eea4f4bb1c271cafed57e29", + "modules/companies/src/web/mailbox-uses/shared/ui/mailbox-use-editor-dialog.tsx": "600fc7f217c0e9de747402b02376b10a9573bd7d4975b37b588056c875829b0b", + "modules/companies/src/web/mailbox-uses/shared/ui/mailbox-use-form.tsx": "62b223a38b790596e099dbe4a363d7c9afbac9c99cf6c1919177bb2f44cfc979", + "modules/companies/src/web/mailboxes/create/index.ts": "f6bbcf86d762a103b9e6df7d30e56a8fe4f931408526f571c27acac85da17b50", + "modules/companies/src/web/mailboxes/create/ui/index.ts": "ec9402869290ec168d7471f87e56293b2610e47d160ff291c6a9b4a165cdc392", + "modules/companies/src/web/mailboxes/create/ui/mailbox-create-dialog.tsx": "56d34eada9601cc5b514e858f08212d7a7f6c6f8489c7b1d7e85f0d4e550efa5", + "modules/companies/src/web/mailboxes/index.ts": "8d85bd3533075731485f7da244dc511b77b759be0c1f7e9e5ac0cf28e2c45871", + "modules/companies/src/web/mailboxes/list/api/get-mailboxes.api.ts": "6807e47289a297ae2a8fbb8eb13b56d5241b87e39d555fdfb59822832f4d3f4e", + "modules/companies/src/web/mailboxes/list/api/index.ts": "3e0455ffd77b1ccf15203091df263869ae00f2dc58696b7862368b73ab351e89", + "modules/companies/src/web/mailboxes/shared/api/mailbox-request.ts": "cee066f3aab93edcbb4ae46c85e40abd5b2bc3de7a98102a4a85520096fe1339", + "modules/companies/src/web/mailboxes/shared/controllers/index.ts": "3ef004684b0370a2f77f2582b53a6ee231afe60e4b5b8fbef7b7f6514139a200", + "modules/companies/src/web/mailboxes/shared/controllers/use-mailbox-relations-controller.ts": "7c5f00e11fa94df2a0ac490ed793e150ac0a842489aa9dcea280255ced6cdcdf", + "modules/companies/src/web/mailboxes/shared/index.ts": "ff9ea9ebae70e8b6c46d4c901641a1010adb0eecd48b2b3366aeb2e43ea9ef93", + "modules/companies/src/web/mailboxes/shared/queries/index.ts": "d0a0d038038428a7e1bc336aaad255b3eed15a6c8c39f45bd8aeb026aa1f6591", + "modules/companies/src/web/mailboxes/shared/queries/mailbox-query-keys.ts": "9fa9ec16de054254125374f1b089781fa64ad682fb899652d6eb99ae92d00ba5", + "modules/companies/src/web/mailboxes/shared/types/index.ts": "bba0864bd927ff2410332bee1ef7bc910babecbec235df8b7471a68805ac8d4d", + "modules/companies/src/web/mailboxes/shared/types/mailbox-relations-props.ts": "d63e16c9a0cd870cc2a992ab0ac3e3e15a53b45508c93cc26a215a65907f1742", + "modules/companies/src/web/mailboxes/shared/ui/index.ts": "2821e4666437aeea21b2be2a88216aa456c1ddb0bdbd4be7990372760940ea52", + "modules/companies/src/web/mailboxes/shared/ui/mailbox-form.tsx": "688e21768babc1e2bd7d7bb6cf518aa3912d4d169bd28f6a5fed9473ca7de158", + "modules/companies/src/web/mailboxes/shared/ui/mailbox-relations.tsx": "c455426495fe0bdcd3b642f457e14ac675b418a9582016d28622833bd349c42e", + "modules/companies/src/web/people/detail/index.ts": "825726027aae1dca86e504dcfb11c4dfb19e774a936b2b2ad4553a718ccf362f", + "modules/companies/src/web/people/detail/ui/current-workstations.tsx": "d57b5291e39e15c16b1c9543cf2715b0630b9c5a8e61e6105493dcead642c051", + "modules/companies/src/web/people/detail/ui/index.ts": "7b48c177479f865eb5d09d59e97a23a8db54cc9f34987c0933297b83bfc77945", + "modules/companies/src/web/people/detail/ui/person-details.tsx": "89c09526630ef2e50e5f59043a360118d4dd5f81df1594c1291cfab8f4ef6748", + "modules/companies/src/web/people/index.ts": "54d38b83dffd61852bd049fdc07317f6ff398dda6be28d4a9514acfccb75948c", + "modules/companies/src/web/people/list/controllers/use-people-list-context.ts": "161746fe7e23145dad3d72cbc6b72bb235198f4b56ccdc0a8c8af13285ff6141", + "modules/companies/src/web/people/list/index.ts": "8f66094377e5ec03d8efed260969b757744c0a53334db9155928a07b2a969f45", + "modules/companies/src/web/people/list/people-search.test.tsx": "5908a4d7d9a3735aef601867ec000e8f45e9750461b5f39a01a4c1de0375579d", + "modules/companies/src/web/people/list/ui/index.ts": "88fcee07000848ec65cdeebb23f2c1763dcef524e3c8473d4d9379e3d4731e1c", + "modules/companies/src/web/people/list/ui/people-section.tsx": "101eb330610f40a14061c1bc7d98712ce999a1d550a474848e05b8762eea11b1", + "modules/companies/src/web/people/shared/adapters/build-person-request.ts": "b3373d5ae0cc833142275fe5779a0b2ec3731bee89666927c9b60cc87c8ab32e", + "modules/companies/src/web/people/shared/adapters/index.ts": "31f6a6b383744f86ffc12aa0adb722685c6660a381a91d6b4870e62c9c2a5861", + "modules/companies/src/web/people/shared/api/index.ts": "668c9ea6f648d015218b7eead6786572e9788881c372e794a9e865a682d176e0", + "modules/companies/src/web/people/shared/api/save-person.api.ts": "a5a692da13e6adc4c06c1953d48444ea2b1b20404f1bf59d744a859057ec1c66", + "modules/companies/src/web/people/shared/controllers/index.ts": "a8a338e0b9dd957b4de0c544b1f082547381a8f439c84cc53d99092082f09c8b", + "modules/companies/src/web/people/shared/controllers/use-person-form-controller.ts": "e80b0b49f33faf8a70b5169dfd1a73f1ba6ca1aaa5d29b07472000c848b21979", + "modules/companies/src/web/people/shared/helpers/person-organization.test.ts": "6d6bf672aea89607eefcce34516ed2adcc6d9415686bf3176e574a74b62f34b7", + "modules/companies/src/web/people/shared/helpers/person-organization.ts": "041a5ab3cd06b235bb3d934296fccfefd1aae496462d2d829508c5158ce826cc", + "modules/companies/src/web/people/shared/index.ts": "9884df537ff0200ed2759d24daf54b04f9727d4d9c4d0ef88193fd07403efa6c", + "modules/companies/src/web/people/shared/schemas/index.ts": "422211cbaebdf1dcb86296aa818445ca93fb74153994e42eeaa0cf8d54c6b2a2", + "modules/companies/src/web/people/shared/schemas/person-form.schema.ts": "0a623b927db5c11f6a72551e60f56d206a16a8ec3e73c9da860f661cfe98d2c0", + "modules/companies/src/web/people/shared/types/index.ts": "b4b2d0a25a661cd2347991cbf9c067edcf6ef04e7b40f8816474b6fb9357e5ea", + "modules/companies/src/web/people/shared/types/person-form-props.ts": "1c519c0836e5a16bec6b7d46b914e62c1211c49c6bc21bbe60e9edc03f102665", + "modules/companies/src/web/people/shared/ui/index.ts": "b40853e6ecc9cdb3d608e9cccf25522262db911c5f3f062979366499b631e499", + "modules/companies/src/web/people/shared/ui/person-avatar-group.tsx": "78da56afd5bd7f0039914f179d1effe389f234b00da220f1f55bd64620a160d2", + "modules/companies/src/web/people/shared/ui/person-avatar.tsx": "e5ff3098f49adde86ef14670b5a5b05f5ce6439583f8ff30ecae09361965f0bb", + "modules/companies/src/web/people/shared/ui/person-editor-dialog.tsx": "2740f566d945c9b65de3320df14af8446fddef7c30417f07a7227d334d8efa50", + "modules/companies/src/web/people/shared/ui/person-form.tsx": "0747470eca0d299ddefa8eb5a51c1a592e2b1d27dce89456cb4de778f1a625d4", + "modules/companies/src/web/people/shared/ui/person-photo-field.tsx": "c11776191aa2eff2c87843b4693719880513adfe1b2a52b7ff8a53c7d581d9e0", + "modules/companies/src/web/people/shared/ui/workstation-responsible-context.tsx": "5eac39c31ed682575dbb7056f65fde228dd4876525419e89fd5be92dc7e238fe", + "modules/companies/src/web/printer-configurations/create/index.ts": "9386493241c9e5c1eea8c48b640d56592ac44454e4d5ce9ee8e29ac7474c4172", + "modules/companies/src/web/printer-configurations/create/ui/index.ts": "0f7b60f6f126142451b972c4139ac55d328567cfda8e7c9394da4141eae9d0a3", + "modules/companies/src/web/printer-configurations/create/ui/printer-profile-create-dialog.tsx": "1f26519cfebc37f1043431e0f49418459c2e064a12616c991db59986ab6543cd", + "modules/companies/src/web/printer-configurations/history/index.ts": "0e148c973ac0ce6902194cc9774212ebc875cc96245b808e5ffa94fc12ac0056", + "modules/companies/src/web/printer-configurations/history/ui/index.ts": "d7f20186261385feb4161fcb7315e942b4b80676803fd550427f13c9af8ac103", + "modules/companies/src/web/printer-configurations/history/ui/printer-history-dialog.tsx": "e5b2ba0fab1a768b9c07e62416d45927559c507dab08afa79c32bcf29e5aae43", + "modules/companies/src/web/printer-configurations/index.ts": "35688d0750efdd9b02f09c6b36c9eaff32b3f7d8a7182e76045b9d0255923e42", + "modules/companies/src/web/printer-configurations/list/controllers/index.ts": "6eec787f0154f30f89daedd1880c35f7910361ab9e0d4479e9e6bc150d3b5c2c", + "modules/companies/src/web/printer-configurations/list/controllers/use-printer-configurations-page-controller.ts": "a0cb0a34cac27d1a0ab99925931fc4e8c31438ed97be12b939d562b9083ab297", + "modules/companies/src/web/printer-configurations/list/index.ts": "2d8900b748d1cc9c971068da1ba6618e02c72e11a6add70e2072699e82814682", + "modules/companies/src/web/printer-configurations/list/types/index.ts": "77fe9e859be062f0dfddd6548ab1aefb13c4793708f4b998f8317818145e9e21", + "modules/companies/src/web/printer-configurations/list/types/printer-configurations-page-props.ts": "d38255aaa946bc98278473486add0aa493026ce6b77d50fc0115fc5114e3788c", + "modules/companies/src/web/printer-configurations/list/ui/index.ts": "5ebb60620b31fe296a116e71b3300f32351f77a232f857810ca05336b795d734", + "modules/companies/src/web/printer-configurations/list/ui/printer-configurations-page.tsx": "08e61264ebf160fb9b1fad9ac408972108afecc90a2867f0e84f5e013161b629", + "modules/companies/src/web/printer-configurations/shared/api/index.ts": "ac4598c4d9a3c048dc82707424a73139fae98b7ae197b4c33ad79ea9bc337a7d", + "modules/companies/src/web/printer-configurations/shared/api/printer-api.ts": "66155d2f5985e1509326dddd9c2ca6e69b03bacc1edc6167680bf31a9345529a", + "modules/companies/src/web/printer-configurations/shared/controllers/index.ts": "5706a61347faa33f61e6388fa91b40d8a9c0bb471d4d71422ca96fa32488379d", + "modules/companies/src/web/printer-configurations/shared/controllers/use-printer-configuration-form-controller.ts": "7496734401750eb439f702672ffa1bb6d2e6a5e83724535e83e1ab6f518158c2", + "modules/companies/src/web/printer-configurations/shared/helpers/index.ts": "7df6b92498a2798ddcd06cc91e746726c85596acefbb159b66a5cd10183044b3", + "modules/companies/src/web/printer-configurations/shared/helpers/printer-configuration-form-values.ts": "0493c771645cf516dcbc37fbcdbfa2e4c54e48c2dfabfbde0546b2c45e0356d6", + "modules/companies/src/web/printer-configurations/shared/index.ts": "7f138adf13699b3cb73ade3f4a8ae40dac5528604b60a20f51a74a25a69b0cb3", + "modules/companies/src/web/printer-configurations/shared/printer.test.tsx": "eb1e32fe8048045edebf8c2f9cac5dbc7e3220e7405fa9c94f5a71d73cc4a130", + "modules/companies/src/web/printer-configurations/shared/types/index.ts": "ab1a5b35f79dad3a08ec98fdde0dd2a786ce3f515624e8ae8f549f886972c9dc", + "modules/companies/src/web/printer-configurations/shared/types/printer-configuration-form-props.ts": "2f6b7016bf80dc725eceb784eebc74b455e7145892082ef60e677fb300fd4566", + "modules/companies/src/web/printer-configurations/shared/ui/index.ts": "7c09003d3aabf187bfcd1b6f98a091b5929c1ae216241fc7b4c93e98ef61cc6a", + "modules/companies/src/web/printer-configurations/shared/ui/printer-configuration-editor-dialog.tsx": "19043eddf94529da7e9516dc4c294ba038514268905575339e6077b75b84a9f3", + "modules/companies/src/web/printer-configurations/shared/ui/printer-configuration-form.tsx": "310737574328f10453686de389e0ebb7d432bf022d50852d44d02dbd31a3580a", + "modules/companies/src/web/printer-configurations/shared/ui/printer-feedback.tsx": "dc125bef1d5726d80b10e0c5eb989ba745af67a1c1cef3a84a57c372fc79e895", + "modules/companies/src/web/process-templates/index.ts": "b935adca286ea156fea7fc9a077b8638c814b3f9ad1848291eff62cd112367fe", + "modules/companies/src/web/process-templates/list/api/index.ts": "3129597606f2516fae9525e17d670b0502c45814e93e945fa0b3479fe3d1b3de", + "modules/companies/src/web/process-templates/list/api/list-process-templates.api.ts": "027040a93abace931fbe221e7c5092fb6bc8546ab878bc1029ada8237b9ef6a6", + "modules/companies/src/web/process-templates/list/controllers/index.ts": "5ba0b8c0fe2b6149047512fc421968f34734f4852f0f11d3f531ebf689d156b0", + "modules/companies/src/web/process-templates/list/controllers/use-process-templates-page-controller.ts": "65427bfbbeebd890a14f95ab40b1273cf1bddbba05a18b47f8acd1d12173539e", + "modules/companies/src/web/process-templates/list/index.ts": "73a8d0e68ba00e42193ec72f9abd4f5ea28ae0eb481f9cef98f9bfdf1d6b018f", + "modules/companies/src/web/process-templates/list/ui/index.ts": "aceb387b8eb074a14e061a88c33ce77d89a215ef55bb1ac17e0d15dec9fab15c", + "modules/companies/src/web/process-templates/list/ui/process-templates-page.tsx": "1a0c397161824b8530c6f85f822233cec993905aadcc3b55f892288186fa8c5f", + "modules/companies/src/web/process-templates/shared/adapters/build-process-template-input.ts": "3f5f4156effaa30c8a5b2b5edb1118fb314366089d121ce1333184f80a5ae1bf", + "modules/companies/src/web/process-templates/shared/adapters/index.ts": "aa8139d43db10ece1b3cd788262732ad6642f1ade9bed8c1bd10787413920ce7", + "modules/companies/src/web/process-templates/shared/api/index.ts": "5be8d8e8622d0ddb20c0627dbb87b51deefa8ba9bd73fa9df87ac071824124e6", + "modules/companies/src/web/process-templates/shared/api/save-process-template.api.ts": "b9544cadebb01f617e1bcb9cbaabf629f7d542ed332069398332fbed64638990", + "modules/companies/src/web/process-templates/shared/controllers/index.ts": "c78c6b00e3ef59269f7b998d12e66bddc56935a7278ffc30d208732b3aa00cc5", + "modules/companies/src/web/process-templates/shared/controllers/use-process-template-form-controller.ts": "8d546618d8340d8b03e71668cff1d50af4e93550f6997de8d950e899252c1147", + "modules/companies/src/web/process-templates/shared/index.ts": "e2f682157e4e45ccfa11d1b589ecc0a8d4d4faa884715063386439ae1d662214", + "modules/companies/src/web/process-templates/shared/schemas/index.ts": "c1fc87e6e89a3973a6c768fe89aea7c52bd77b0c0b03a7668ef33aedf969415e", + "modules/companies/src/web/process-templates/shared/schemas/process-template-form.schema.ts": "8e04db474e69ad7564a74f16dd66673a0b6da6fbf5dd2b01ab91cd95467aa1a3", + "modules/companies/src/web/process-templates/shared/types/index.ts": "fa86659ce6c12291db80755dcb27dab2694d89c4d48d668d2bb9a0110b3ae118", + "modules/companies/src/web/process-templates/shared/types/process-template-form-props.ts": "a502f87fac8486de53289f61693095a178ccce8e92be39e1c36996a7996db9f8", + "modules/companies/src/web/process-templates/shared/ui/index.ts": "50f209732b5a14ab6582b9856d1d7ce533e568496d88b2172f2a5e7bcf60dccb", + "modules/companies/src/web/process-templates/shared/ui/process-template-editor-dialog.tsx": "4a5f06f718eedf0063e61dcf5fbe389b6a799d7bb2ac47c4b46f8f8899804840", + "modules/companies/src/web/process-templates/shared/ui/process-template-form.tsx": "b4b9a1b7805c88d4001f57d51f6cb1de6dc878bbe89825ef41626de9a056541b", + "modules/companies/src/web/processes/create/index.ts": "3cebfbe3dc489807c666c95c55289ea573051d11cce415ac9a485d7d924a8d18", + "modules/companies/src/web/processes/create/ui/index.ts": "4782b329f82ccdfda2de3e06c3a898b8530eb2edcb6d0d2106830236c6101c80", + "modules/companies/src/web/processes/create/ui/process-quick-create-dialog.tsx": "d484e42ba44eef544b32789aaeaf6434ae5640ec05e0ff9d73f5e427c465456c", + "modules/companies/src/web/processes/detail/controllers/index.ts": "b599fb52db3c4656239d746ce4635b39e89e34797300bac894c2a4903ecaa766", + "modules/companies/src/web/processes/detail/controllers/use-process-detail-controller.ts": "813353ba14fc06d721562a85033a5309a06bc499bb281d1314e64455a68a335a", + "modules/companies/src/web/processes/detail/index.ts": "8194162055485d6acf3b30eacf4836220c2a26ee138e0c0199dbd2c4e20a28b8", + "modules/companies/src/web/processes/detail/types/index.ts": "7e45f82d4282a852a786fd81b303615a09618c774a8aa21d6eb5cbdbf77ad41c", + "modules/companies/src/web/processes/detail/types/process-detail-props.ts": "60544a495c2ce86b4da8a8c644ba7fd39020dba448ca1745a53db2c6a1d9a3d4", + "modules/companies/src/web/processes/detail/ui/index.ts": "35efaaceb96b0245a2d1c68656648e86d8b4dc9b5286e1dde2348698b9fa8cca", + "modules/companies/src/web/processes/detail/ui/process-detail.tsx": "34a57bd7e1dc483e6b3b77f6181fc6bcff89a1f0eb67215baa922c6f40f8b3b5", + "modules/companies/src/web/processes/index.ts": "80354ba5af2715455a56c3e0dea4ee76ce7a3678ad6833b6783c1e8a86230e91", + "modules/companies/src/web/processes/list/api/get-processes.api.ts": "fe79581fdebd252212e44b03c628b1990b55f8ce615e54e3cc1ef2caa21e63f3", + "modules/companies/src/web/processes/list/api/index.ts": "4ee2aba32c80f62fdb57474304a096118b4f681c6fc72da6fdc4ce6b008b074c", + "modules/companies/src/web/processes/list/controllers/index.ts": "11ea8e84f1ffce4edc52adb791d86cafa557733535822cd284ace03e4d138656", + "modules/companies/src/web/processes/list/controllers/use-processes-page-controller.ts": "0bdbd3e74c0a8fa15d9e6a2fbd683e182fbc876863a53865abab516056493293", + "modules/companies/src/web/processes/list/index.ts": "6c957dda480fe7b9776109ec5b6c8acb48a4b9f37d014d1b6be296e4bc6f0dd3", + "modules/companies/src/web/processes/list/types/index.ts": "0cccd385c0dd9c6f81b37bb0e91b303f3b7b6e018247c9c33edb61c21ea86001", + "modules/companies/src/web/processes/list/types/processes-page-props.ts": "daedce74ab706ea42a2c57f31c29e88d2d6467a3421c83c78d1c4119c5da9fae", + "modules/companies/src/web/processes/list/ui/index.ts": "cf6ae43547b5112313a83d2ef088c2315a5c15c06c4801a20b063118ebab8e8e", + "modules/companies/src/web/processes/list/ui/processes-page.tsx": "71235077a5534b6b96f9eb2ae2de4cec1d9e8e63ac0d6460da94d954f7bf37de", + "modules/companies/src/web/processes/refresh/api/index.ts": "39f7110fcbcba75a3402c294264ee734a885faff85403c0e46761517d8afd06d", + "modules/companies/src/web/processes/refresh/api/refresh-process.api.ts": "51a9688546e36b7271504e78c99acefa69f2fb1de427abcddaf35f8990a3763a", + "modules/companies/src/web/processes/shared/api/index.ts": "de1dc6b4841c5bf45270528bb53cb47580240b8e74ebca12c12d7307f2fb40c4", + "modules/companies/src/web/processes/shared/api/process-api-error.ts": "9fab93e5dd5120ee08119886d38c36d3cf9d7b6c10561f7a0dff9c06570d2f75", + "modules/companies/src/web/processes/shared/api/process-request.ts": "299064ca669e2299fc221a8a5971aebadb6133f745d8cf38dacece132a3f2ed2", + "modules/companies/src/web/processes/shared/helpers/index.ts": "641524fc3b541d42e4c51a39ae3bc415fcddd2482a4ec092edc83cac35b06246", + "modules/companies/src/web/processes/shared/helpers/process-labels.ts": "911b97a4f39a59d62eb1ff6400fa64d8e2811fecfa4a5f3caba4e1090deebf47", + "modules/companies/src/web/processes/shared/index.ts": "ad30d4a399ea7ff7fefbcf002029de6e04788a3f62fb87936c533c1a3e8e4b78", + "modules/companies/src/web/processes/shared/processes.test.tsx": "34052ca550ca32158baf6089bbd73705a290576fb3f05e9b6dc0faac410ab9e3", + "modules/companies/src/web/processes/shared/queries/index.ts": "5406d9fb1ba420dc25b9ba06afda068f9642ea61f82faece975b1fdd511cfa4f", + "modules/companies/src/web/processes/shared/queries/process-query-keys.ts": "d2162049546541077b06ed796450e23401e61028f995dd55617b16f2abeee6ad", + "modules/companies/src/web/processes/shared/ui/index.ts": "5a2dc0d5acb0308e0cc2f32537b9757dc03d99ecfff215d8ea2c3f9600c73155", + "modules/companies/src/web/processes/shared/ui/process-feedback.tsx": "a5fa284818d016bf2d5df8126bdccab70471b5c784bb9ac72a50b1a2f426b4a8", + "modules/companies/src/web/processes/shared/ui/process-help.tsx": "233180940ac7fbad6a8161de8c6173b02625a6f386d6dcba1416b2df6f38ffb9", + "modules/companies/src/web/processes/start/api/get-process-review.api.ts": "0dcc9344a1210dd1c3a60cc786dac3e9ce05671ede31ce31d0b2b26e4aa3e888", + "modules/companies/src/web/processes/start/api/index.ts": "d2585c55e1993dfda6f6e9616f589c8ac9c50d143b3250df3f93e1a376fa532f", + "modules/companies/src/web/processes/start/api/start-process.api.ts": "edc1af1e9589256dabfc93f152fdd4b3ec94f97a879bdbf2c7d4a8a02baa3abe", + "modules/companies/src/web/processes/start/controllers/index.ts": "e3972601c2be3b12eb86f255be1591f874a0728a52bf1af6f8d36211d156bd5f", + "modules/companies/src/web/processes/start/controllers/use-process-start-form-controller.ts": "6a52d990f2ba2c948ff3777b84e9baea32ebd0b886377b1e6703cbeb649a9cae", + "modules/companies/src/web/processes/start/index.ts": "df6e714b1c7e4f263a4041fbf5683a56750495f22b48fb226c21bc4b3b469a3c", + "modules/companies/src/web/processes/start/types/index.ts": "36d65e7a8f8d85ab43197d42e70491424a7efaf4d22a77324a272ac470cde2fd", + "modules/companies/src/web/processes/start/types/process-start-form-props.ts": "91514f6109bda3ccf7722882b99050197adbec98e4e09215e03ed2437b9063d0", + "modules/companies/src/web/processes/start/ui/index.ts": "a9862454290abb303f62a7224afd8a81cf75e3e63be826b963ea2a502b6a710d", + "modules/companies/src/web/processes/start/ui/process-start-dialog.tsx": "ed6dd8cd6fd2c3af5f4c6964f1faad39c66b95bd055eed84d6a503ca4036d65d", + "modules/companies/src/web/processes/start/ui/process-start-form.tsx": "40b35b87758e74113ade019f28bf00b5f9927e74268fdd88118ea96d2132d783", + "modules/companies/src/web/processes/update/api/index.ts": "494984cf04cb503891d520d8364a5655a941e3133f5fdb80b58bf3b4616a1885", + "modules/companies/src/web/processes/update/api/update-process.api.ts": "56e4b4933088fc9ab0e3b3b5b3c52879bcb496b89e8fc47c7d9e0d9a7f9229d4", + "modules/companies/src/web/processes/update/controllers/index.ts": "53eee30ecec948e6bc875774df232b357b6aa78ee7777fc10b33e0aba59edb3b", + "modules/companies/src/web/processes/update/controllers/use-process-edit-form-controller.ts": "58d38abb1c3a4cc818044e0f17843c75dd8b477aa4f4a085fda62feb6bd3ddc5", + "modules/companies/src/web/processes/update/index.ts": "042cfdbf800656b10bfd2c7684f7af00c25de791dd5db487aa80c53e72bd3a56", + "modules/companies/src/web/processes/update/types/index.ts": "3b63f032081eb5f86a855b861ffed12e1018ade95f2667de8765adecd3b3a9be", + "modules/companies/src/web/processes/update/types/process-edit-form-props.ts": "68b60069fd11d9184f643b27003d15bebb6208548d4d3961e83ff7a713eeb766", + "modules/companies/src/web/processes/update/ui/index.ts": "357e788864f5c32cf446ea4beb9cd7d8bb27e57f1f5f299ca3ba49f0cf1fd341", + "modules/companies/src/web/processes/update/ui/process-edit-dialog.tsx": "529cbc509b6f9d95b24dc162a2c04c5a20fad1ab35ec46a521dc723a7989ba51", + "modules/companies/src/web/processes/update/ui/process-edit-form.tsx": "1aa043fc08ee9f78916a9bd3f599d041d2bdc6a29c1f0b50e5d897c68bb6e220", + "modules/companies/src/web/processes/update/ui/process-task-field.tsx": "f24a24c6ba8c534ef1c4b40957fba628a7347263d0961faa8dce176db7a8cc14", + "modules/companies/src/web/remote-connections/create/index.ts": "738977722117c47d94ed70eee84cfc5ecfc7eb18533213fdee94862e9e5f7025", + "modules/companies/src/web/remote-connections/create/ui/index.ts": "9c6551e372779eec18763c4e875bfd06f4a29d0eea65910721d9117da762640f", + "modules/companies/src/web/remote-connections/create/ui/remote-quick-editor.tsx": "8c5c1564d31206f41784ac2e51c4dce8b9e09d04b71ba4a13eda77c52e5a6f11", + "modules/companies/src/web/remote-connections/detail/helpers/index.ts": "dbaa899849a5c1a2ee8d785a8d84760629d06d7715620cf06b57dea38aa65eba", + "modules/companies/src/web/remote-connections/detail/helpers/remote-endpoints.ts": "73af74d6e6dfaa7b59e318e0f19bb8a4b4b5e048ae2a8b85ead22f2b33ed8a98", + "modules/companies/src/web/remote-connections/detail/index.ts": "bc7257badf7c30560ff5d7c96b33e2206b158f440527711bd59db49f8ad3ff7e", + "modules/companies/src/web/remote-connections/detail/ui/index.ts": "478ff4ee49e2afcc60a3e5ee3f0a66cf8edbee4cdb407f0908447c0bd7cd2c99", + "modules/companies/src/web/remote-connections/detail/ui/remote-summary.tsx": "a4a9713d5a9bcbebcd3725604ba35ac5897e6787bd1354e4d5ad8f9ff8120c22", + "modules/companies/src/web/remote-connections/history/index.ts": "3da433fcf0fac0ef4fa71b0f0a79977b775120f5a798558b6c00a4ee2547141d", + "modules/companies/src/web/remote-connections/history/ui/index.ts": "1c8d4a9b6b46bdbc602ccedd4e4f194db2ad7760d0dbd9bf053febcb621520ae", + "modules/companies/src/web/remote-connections/history/ui/remote-connection-history-dialog.tsx": "9c74ba07cb2305dcf6c137d6ff7ece9c607682e17a87486eef82aa821e700e1f", + "modules/companies/src/web/remote-connections/index.ts": "6ca4e834ee877d16bd944a8e20574b398d041e09be83481c121f55b249f83365", + "modules/companies/src/web/remote-connections/list/controllers/index.ts": "0e5898a3aabb6e040bf33723662e5556937e57d39bd5ea7fa6643debb1384361", + "modules/companies/src/web/remote-connections/list/controllers/use-remote-connections-page-controller.ts": "7cc4e439d27d87290fb5dcb2b8a20501d91c1857fd76061a405d301c72527b7d", + "modules/companies/src/web/remote-connections/list/index.ts": "20c90f8d4daf75a27eff917a75781520f64e46939fbc0df8078a390c1f9fbd4c", + "modules/companies/src/web/remote-connections/list/types/index.ts": "52ea7c090caa847ddf9528dcce0a36d81c74cd3d5177b604552f995aa9938f0a", + "modules/companies/src/web/remote-connections/list/types/remote-connections-page-props.ts": "bb52b972d2276a88b567376f230716613d51cf42e37a3a8099a10bb79cc4caab", + "modules/companies/src/web/remote-connections/list/ui/index.ts": "c90243b8dcaec70f80bc14c807be8eeccfec70b72ea9444b6f2a44221a44e35d", + "modules/companies/src/web/remote-connections/list/ui/remote-connections-page.tsx": "bd7deb8f24d8e6cbdbecbddcca62d50e11115b48a7fd340321979fc6487a62b0", + "modules/companies/src/web/remote-connections/shared/api/index.ts": "b75cf189eec81bc9d864fa141c66240b622614b1664d46da89b5a22f9d605412", + "modules/companies/src/web/remote-connections/shared/api/remote-api.ts": "60527141e8cc4b532436b2ab4ec1632dbdc2275c7e3f85c33644a89c07980498", + "modules/companies/src/web/remote-connections/shared/controllers/index.ts": "b8ab488d702dfe7ef40817c2da11543ff89e00ddec3828bd7528ca8c249df6b2", + "modules/companies/src/web/remote-connections/shared/controllers/use-remote-connection-form-controller.ts": "4ba133857a0693075fb3c39e95801d51f4c422df13db01d207fdc4f23c424686", + "modules/companies/src/web/remote-connections/shared/index.ts": "fff6f4f300e04d9db7c9b7f5a45bac1d749ec93d51a5c317d76a9221293a072c", + "modules/companies/src/web/remote-connections/shared/remote.test.tsx": "a27203e2d69710466df1805c01bf4a2cd051fd19ac5f749bbde47145f85ee274", + "modules/companies/src/web/remote-connections/shared/types/index.ts": "9b7964be629296de20ca8b6e32342226572f90b9aa57097a5bbc0e57fb7ee774", + "modules/companies/src/web/remote-connections/shared/types/remote-connection-form-props.ts": "25d1a5f8733290311c4c576aebd47fb263c90659e74288905140df7bee886e32", + "modules/companies/src/web/remote-connections/shared/ui/index.ts": "71fcf90615172eab871a6f7b8be642fdfcdc4b01c136d07699ae22d643be04c9", + "modules/companies/src/web/remote-connections/shared/ui/remote-connection-editor-dialog.tsx": "6adc140d54b9f6c63d68bfbce6e43bb5646de64d2e10ec1f6ece2afc35f48f70", + "modules/companies/src/web/remote-connections/shared/ui/remote-connection-form.tsx": "2ef405af89e7aa2ca45a0d39ef97ef10c78505022e8574654256c56735fe7a20", + "modules/companies/src/web/remote-connections/shared/ui/remote-endpoint-fields.tsx": "ed0b724ef7cca920950c24eae2b135f84924b0e4ebc02a6c1cd338fb01d5f493", + "modules/companies/src/web/remote-connections/shared/ui/remote-feedback.tsx": "fae4bfbafeee192ece0dca3f7c7bf2abff56ec0b2ee904f63536c864440211be", + "modules/companies/src/web/remote-connections/shared/ui/remote-target-field.tsx": "2302786dd83945c183a17effb58c13de01a4bbebf89f23f1bcbabd52ac1fe4c1", + "modules/companies/src/web/resources/detail/ui/application-resource-usage.tsx": "c585d66af630f9c642818cf90062c7c850a573f79388049608b27f0f608d8581", + "modules/companies/src/web/resources/detail/ui/company-resource-related-content.tsx": "20a4a187a9c5719fd43137eef768d55055a2efecd796a70c55ccdec2ad9ee216", + "modules/companies/src/web/shared/api/delete-record.api.ts": "97c443022cd508df2cc0f3ea5f402412c5ac97fd710a41d33e4a0721f76bb5f8", + "modules/companies/src/web/shared/client-contracts.test.ts": "207b8779d231e56a83ac213e6586ca433535afffad9da3672ead23128ecc2e46", + "modules/companies/src/web/shared/controllers/index.ts": "7978934ac3edac302d09ae46f1098f026b6300a73056f9c4bc413508928803f8", + "modules/companies/src/web/shared/controllers/use-configuration-quick-editor-controller.ts": "1e1e0c265ddfcc02f1e55832a0fe594b0241a8f9b6cf47e11e15a180bd507664", + "modules/companies/src/web/shared/helpers/company-list-query-state.test.ts": "731c79d3eb5a229e81413795989a297878d7b6230807dbd1520d4e542ecc95e6", + "modules/companies/src/web/shared/helpers/company-list-query-state.ts": "06ee0903453cedef443765d8093f235214e1a3e23d0a4ef10c5c3c6461c17000", + "modules/companies/src/web/shared/helpers/index.ts": "b61fae71dba0d4d47e58094e94586d649fa726266c2493030e6dca17cf0e0393", + "modules/companies/src/web/shared/helpers/initials-avatar-appearance.ts": "cc2ef167b4735edaf264b7239ac3996e3d3444ad412fc19c73793e978e37e17e", + "modules/companies/src/web/shared/hooks/use-company-list-state.ts": "5fdc39121fb483e8391bdb4e6e2854c3b620f45e47ef64172889a58255285a52", + "modules/companies/src/web/shared/hooks/use-detail-table-context.ts": "64f39a058753c7c9acfc14c26cd44179c0414ce9af5573bb51c831aadd61b242", + "modules/companies/src/web/shared/i18n.ts": "fbb7f73c15e9d42e56bfdc771e8dac3ba76e29c7babbf1f96de969abaa38469f", + "modules/companies/src/web/shared/index.ts": "2557bedaa422583c0bae42b3f9f5878c17fa4554d6588e37bb6c8ac63728e480", + "modules/companies/src/web/shared/initials-avatar.test.tsx": "4c829ffe6a8f8728672f20f8ef89373fb90f3cad1d3f3ff5cf1272cf4b0d16a6", + "modules/companies/src/web/shared/types/configuration-quick-editor-props.ts": "d36528bd17b1b40ae0a1f7b9eed4ac979a05cc79c91c8bd587f55d8ccc021561", + "modules/companies/src/web/shared/types/index.ts": "d95ed99d523501367ae2a4fbcadc78b13451054f524f509430257c3ee6f64253", + "modules/companies/src/web/shared/ui/configuration-quick-editor.tsx": "0a84c9a46fe989d63c4decb11477a82d10adce818568ae152f952111b178832f", + "modules/companies/src/web/shared/ui/delete-record-dialog.tsx": "11daf6f1ff36b7ec8ee110700ab1a89eafa2fe94edb0f3a78fe4b1469469646b", + "modules/companies/src/web/shared/ui/index.ts": "66e77b5b8389ab26e650d72293a71148c7900ed63216c87dd6f9db686aa72baf", + "modules/companies/src/web/shared/ui/initials-avatar.tsx": "fa1f9858be3dce96358a32a7d7e3cb68d381ddce86f70f07686deed15bf118e1", + "modules/companies/src/web/shared/ui/section-navigation.tsx": "0555fe612edd79b5bac92623f66abe6cee10f7bb305b5c416a79eb1cbc108099", + "modules/companies/src/web/sites/delete/api/delete-site.api.ts": "e7f43b474fb96a59bd05fce10140ab6ae0d9d794137806bcbcc54bb281ee41cd", + "modules/companies/src/web/sites/delete/ui/site-delete-dialog.tsx": "45cb74ade6b2625b27ed01c3f40a94e63b7c0ce2ad8f129b586ed04be5bba627", + "modules/companies/src/web/sites/index.ts": "ecbaa7c9427ea7fbc15cba1232b6bce69b0ebd5aeb45142385b47a5b7f196042", + "modules/companies/src/web/sites/list/controllers/use-site-section-controller.ts": "638c4d4ba3a65850b56bede380d4a3ec6b3eaf10141402f95051c58aab61e1c5", + "modules/companies/src/web/sites/list/index.ts": "723f6a252b64d1d5ee92a47f8e7212843b5bd59f0a96eb438c6ad1dedf3c940f", + "modules/companies/src/web/sites/list/ui/index.ts": "5b0eb7d3b936d14ba188a7050c63249fe047dfbef3fdae9273ce66aa29a0fb0b", + "modules/companies/src/web/sites/list/ui/site-section.tsx": "688e059311184fa83bd2e15f878154a33d7351c9043eaafb0760b9a720219b02", + "modules/companies/src/web/sites/shared/adapters/build-site-request.ts": "e8afa8936596ea7c72dd3635b50e21b98612a6ac667ed67b667c5ad2c795e430", + "modules/companies/src/web/sites/shared/adapters/index.ts": "f44fde49dfcf3328650bf8c065e4476f6e05db542ffd425cc5fe57b486119922", + "modules/companies/src/web/sites/shared/api/index.ts": "ccf5647fb6875abc9c355c5e377d7590a3a0bb6001fbb347c7e054710a23dbe8", + "modules/companies/src/web/sites/shared/api/save-site.api.ts": "1903db363a975df987df1b3f0c85137e291b552e62b8dd845ce1f514e33a28ae", + "modules/companies/src/web/sites/shared/controllers/index.ts": "14572752d86cabd772d8264d1185ea206a9c9951324cd87aa373e277c30d69ea", + "modules/companies/src/web/sites/shared/controllers/use-site-form-controller.ts": "033ca71056260e073ee794b49222360aeb0fdbb44cadfbee0edc666e0404a55f", + "modules/companies/src/web/sites/shared/index.ts": "938ad7af94a8a85333c39fb8e53b7bbd94324175ab7975daec7fc3d4c2d2962a", + "modules/companies/src/web/sites/shared/types/index.ts": "079bbb06c4a43f4f70509a98fc4d8cad0b35a4250d3804b5a2e920f3d4e2abb7", + "modules/companies/src/web/sites/shared/types/site-form-props.ts": "1c55eca33ec5539f639eb05f75b581dc43ac8a3d4af917c1c06d42b50c538450", + "modules/companies/src/web/sites/shared/ui/index.ts": "ef7a0afff3794e0e9db9491aff447cb9ac49565f78b279486846548829b9669e", + "modules/companies/src/web/sites/shared/ui/site-editor-dialog.tsx": "8dfe08e9d3fe0ed737d4bae56f29997073a03bd39fcd7988f698eec2df498827", + "modules/companies/src/web/sites/shared/ui/site-form.tsx": "fc0b15b4417ea98e083c9c581e75807f58c34201e59c9c75412356db83f296a7", + "modules/companies/src/web/software-installations/create/ui/software-resource-create-dialog.tsx": "2678d2b23681cc7dd93f4cef88691b2ea1fe125b27a3ba60fb2507cbc017254f", + "modules/companies/src/web/software-installations/detail/ui/current-operating-systems.tsx": "5345a8b8d32614fe73bc5ab16a0302f4f1fe65b73681751df2113b0435e57f9f", + "modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx": "2fed9ead7fceaddc4c4a17252ac43b3623b6a79af4ade3c9ca3c45aa1cc991df", + "modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx": "bf345d28c796deeec3ed9486325b8e36142ab5667d881c2460dd236585dce048", + "modules/companies/src/web/software-installations/shared/api/software-api.ts": "b0bc032932c482b8a217c5efadc7317902ab9dfb5d5666e180e9d2e74565650f", + "modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx": "81105f06893f3016b808611e571dc0cbb0d61dc590ab7ec972150acb029b2ccf", + "modules/companies/src/web/software-installations/shared/helpers/current-operating-systems.ts": "7f3ed548af98657b9faaf94a48ccf2cd739067d1577fd6ef0a20a50e0714dac0", + "modules/companies/src/web/software-installations/shared/queries/use-asset-software.ts": "753b758bd428edeb5ba52c9b8892ecf77d2a821c7d62ce0b9a4071e7d44df920", + "modules/companies/src/web/software-installations/shared/software.test.tsx": "54b06b4342de3a6376c340f34b8fa630a693cbd72704f905d0f3511b4b7dbfb5", + "modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx": "d89d4a6f793b4d615538e8d0bf3db7a23a63bafaaf52b7514414f8184d381620", + "modules/companies/src/web/software-installations/shared/ui/software-installation-form.tsx": "282519fb654129d0545b61b2e0f7eba57089c9868586b6e55212416e717c64bc", + "modules/companies/src/web/telework-authorizations/detail/index.ts": "76f7945fb5adea7e6aecc59887f0c5134b81dfa2eac16896874001cb97222362", + "modules/companies/src/web/telework-authorizations/detail/ui/index.ts": "b0c88299c0a040f83185b001ce839ac0ac0566069773785a61c22aefd8a4c6eb", + "modules/companies/src/web/telework-authorizations/detail/ui/telework-authorization-summary.tsx": "f22d3d671157364474eaa937a6867cfeeb20d460fa90e25471869d3a97e934cb", + "modules/companies/src/web/telework-authorizations/history/index.ts": "7c340fca8d2c289f814aaa523d1310c5f221be0577286c01aeef876f0d99087b", + "modules/companies/src/web/telework-authorizations/history/ui/index.ts": "2826dbdeda4d7ce496a14c47dea90890f4345893c858a4d1fb9793e479215912", + "modules/companies/src/web/telework-authorizations/history/ui/telework-authorization-history-dialog.tsx": "f049f3df02a9e4bf9bac6ba1ef1d7fbbc8b0554eeaed3bc69718be42bf027fc6", + "modules/companies/src/web/telework-authorizations/index.ts": "2565e4b18f5ea603cc1ee32e183e7ec733f2fe270034e7841c02bcb06af2562b", + "modules/companies/src/web/telework-authorizations/list/controllers/index.ts": "3d939137342ed67df35afbf7843580fe538af7f0273c6a0f0d16c9131d3ee887", + "modules/companies/src/web/telework-authorizations/list/controllers/use-telework-authorizations-page-controller.ts": "3def9822fa74a4bd2aea40c99dcacb7081489382c998bc17104478cb9c4ed761", + "modules/companies/src/web/telework-authorizations/list/index.ts": "0a7f84f8e31fb7f5c03c0d9cc688d88c646dd467be8e1986ca3d3cafd14b066b", + "modules/companies/src/web/telework-authorizations/list/types/index.ts": "92983dffa1a5e183d4a80a7851f8defb312cf5350aadbf53923d5d5f427eb660", + "modules/companies/src/web/telework-authorizations/list/types/telework-authorizations-page-props.ts": "92a509bc3df551182ea2454bc11407f2c8306f95ed9064494ad518941058b536", + "modules/companies/src/web/telework-authorizations/list/ui/index.ts": "03ee18189af56bb6f86d56a0a3745eda3bbced2c0bfc0dac09671ef8f8feeccd", + "modules/companies/src/web/telework-authorizations/list/ui/telework-authorizations-page.tsx": "8032e64588e160ea738d538cccff86e8bb89a87c6defdf48d726aec525c056f1", + "modules/companies/src/web/telework-authorizations/shared/api/index.ts": "85d6ff3c32e7cee0bc5fac6ba8658a06d009d1ef6eb78285ebd215768c07757c", + "modules/companies/src/web/telework-authorizations/shared/api/telework-api.ts": "dab79833c63698ce074df254d0422582235abb70e87c428c9c61da3876e9aad7", + "modules/companies/src/web/telework-authorizations/shared/controllers/index.ts": "de43476de124ce3bf892beecf365855d26a11850aa08ba2b7c4867f34f969896", + "modules/companies/src/web/telework-authorizations/shared/controllers/use-telework-authorization-form-controller.ts": "2597130f73ac2d859ab00722dd411233e2ddfa8ee51ba44985b2671fb4f4bfa9", + "modules/companies/src/web/telework-authorizations/shared/index.ts": "850f8c2dad996ef8d8585ed13bab0ee96a76b554c4d88797de3cefab8dedeac4", + "modules/companies/src/web/telework-authorizations/shared/telework.test.tsx": "5e18c6182c867e206fb09d4f71812e5862a14c69b7d99a914ec8bbf83f9e77a0", + "modules/companies/src/web/telework-authorizations/shared/types/index.ts": "96cfdbe40021d1f3b768eff09d9216478b0a69a2fdb7622b40e8730e677e81b6", + "modules/companies/src/web/telework-authorizations/shared/types/telework-authorization-form-props.ts": "667d899c563f5879b4c0b4c375555625061391b224a8e3cedc2a93e11bafe36a", + "modules/companies/src/web/telework-authorizations/shared/ui/index.ts": "3031845142771a71c1aa78ab9f436c663470ced054adf995df803f82e0de6517", + "modules/companies/src/web/telework-authorizations/shared/ui/telework-authorization-editor-dialog.tsx": "32d3ab90f4d2e0056eaca33e5f2d358ec615d0e2a6a3a01ebf37e7fb6828f988", + "modules/companies/src/web/telework-authorizations/shared/ui/telework-authorization-form.tsx": "9e5a3321fa8222b6cd5e25818d068c4096c40ac326efb1f5b2734172bf3499a7", + "modules/companies/src/web/telework-authorizations/shared/ui/telework-feedback.tsx": "02ccbbd2402fa0fd2045b647e200f1af602cfa666e54ed1ffd0d07742fbe4273", + "modules/companies/src/web/work-environments/detail/hooks/index.ts": "3a39c0a3f36ccd9fc9c02602be4d0187497fd1700e31e75de917c3a814bd0059", + "modules/companies/src/web/work-environments/detail/hooks/use-environment-queries.ts": "79b197469485061cc9d5dd2134e51c7693cb21306f1d4f7fe8cd90463de8d372", + "modules/companies/src/web/work-environments/detail/index.ts": "448a625596ada56ed81b03558e639facc556304289278245ca469149099bce8c", + "modules/companies/src/web/work-environments/detail/ui/environment-content.tsx": "8383e934ad7014d2ab82e62e404ec4c86443d4a3254790a4bb421cedc0232e2a", + "modules/companies/src/web/work-environments/detail/ui/environment-section.tsx": "ae83bbebc79c885076f4eb233d69516c47fea908172db1bbfdc11e9b16113798", + "modules/companies/src/web/work-environments/detail/ui/hardware-characteristics.tsx": "f05f371bf1eb680cdeecdbf5d1d56985f5aa78e4d4935326f639c7e613b26547", + "modules/companies/src/web/work-environments/detail/ui/index.ts": "a31b3da45a9cb97976491ea380cb1c48a52d717ec816c4ca29bf461ce565b4a0", + "modules/companies/src/web/work-environments/detail/ui/profile-configurations.tsx": "7d47f57eea90d46e13939ab688a35fef444bca6c7828e54ca7a6fd4b9585d88b", + "modules/companies/src/web/work-environments/detail/ui/work-environment-page.tsx": "cff3160785a730499e0fef14302c355f667bd6b7aa0624c8ec62a7dfa71dab16", + "modules/companies/src/web/work-environments/index.ts": "4ab0c957b488dd898696a18cff87e6b484adcecb92fb6023b6585a72f14d36d9", + "modules/companies/src/web/work-environments/shared/helpers/index.ts": "29b4157a7fbb6b5ed6f135502e1ae5865963054ab94070ac5657adad7866fd83", + "modules/companies/src/web/work-environments/shared/helpers/work-environment.model.ts": "214c41db64e252c8b9d074627996af6fec2db20fa098c0c411394ba335f2e049", + "modules/companies/src/web/work-environments/shared/index.ts": "3c23433a5d0b434feb35778a40b09751c9fc5b16cccc34d72114007ca281251f", + "modules/companies/src/web/work-environments/shared/work-environment.test.tsx": "befff9a15d399f15b1814e29265c742b87c2c2d77000aced5a9839273a85a711", + "modules/companies/src/web/work-profiles/history/index.ts": "08fa7f1c5620deb26a201cc2383f75b8cae7867cac8817773e68c3249e6b2c9a", + "modules/companies/src/web/work-profiles/history/ui/index.ts": "9a061856b07cb0534c2e3571acae4615516dd7c1429f1fa4110587586d9d024e", + "modules/companies/src/web/work-profiles/history/ui/work-profile-history-dialog.tsx": "de9c6689a9af7f3e674947a580c518596e78c715333a84a96fad52bd03c68164", + "modules/companies/src/web/work-profiles/index.ts": "eaeff49e8bb15a2c3d0ee5f66b75064ed7f6d130863e98515a3f3e9139ceb952", + "modules/companies/src/web/work-profiles/list/controllers/index.ts": "8c40036c55d6d71e7869c8008209f48e30f59b4dd0f103f12cc6cf87a732e1cb", + "modules/companies/src/web/work-profiles/list/controllers/use-work-profiles-page-controller.ts": "65133e8bc8357a5a41628d7022c8baa678adb268aab13982ae9240b4a7ed783a", + "modules/companies/src/web/work-profiles/list/index.ts": "32cd8e7ebfe7c1366f5aadee8007e7321e55ceb42aebdfa9b39d771e998f7718", + "modules/companies/src/web/work-profiles/list/types/index.ts": "dcc92fdfe5b339daa078c127f20d4f8a7f8ceb7de207a4b7f74766cc4673c44b", + "modules/companies/src/web/work-profiles/list/types/work-profiles-page-props.ts": "80d95d1f606a6edfb50a64e1a0cec75a5e573ebaec379550edb24b4d5bcce92b", + "modules/companies/src/web/work-profiles/list/ui/index.ts": "1761ab9bd3282eb23f29c18f9f550bcf13c4fa71581c36338695b2565977c321", + "modules/companies/src/web/work-profiles/list/ui/work-profiles-page.tsx": "77e3e9b0327d07db9b09801b7a991fbcb27dfecd8f7e2c0f3e97b7388e61b199", + "modules/companies/src/web/work-profiles/shared/api/index.ts": "fecd5d00f9e793b3a883012058091ae3c9c9663c62d8ec9dda0ca23c8610ace7", + "modules/companies/src/web/work-profiles/shared/api/work-profile-api.ts": "4209b9d69999ebf18d088f4def6a7004912d00a253d5f71b165bef112ed79d72", + "modules/companies/src/web/work-profiles/shared/controllers/index.ts": "630cdb8e42e2245eaeb47a86649f16bf2cdfd0666b8c51c5b4d428f18cbb9676", + "modules/companies/src/web/work-profiles/shared/controllers/use-work-profile-form-controller.ts": "bca6988c122fa2453deab33bf5af90f659750fdfb7b83935b09073990d3a1f07", + "modules/companies/src/web/work-profiles/shared/helpers/profile-creation.ts": "a6670d55cf2b6e850e1cd1d9e8208cd3d49b92f9376900751f2d059e1b4910d4", + "modules/companies/src/web/work-profiles/shared/index.ts": "f8c0a58ecbf8e23343892242ba3cf5446517dd2ec022217a4d9c05c34f852851", + "modules/companies/src/web/work-profiles/shared/profile.test.tsx": "f8f5b5e2865737889a2ab4503642c185fb82b6976b20cc5758e898870dacd9b9", + "modules/companies/src/web/work-profiles/shared/types/index.ts": "fb2cdf8d3ba71c686e429c0fd78be37864154323f3ae9d2a03d0cfc6b59f6014", + "modules/companies/src/web/work-profiles/shared/types/profile-selection.ts": "6c5d153e81dc91b97888fa8f90af99b6cca795a63a50c59dc27ec5ce7e398e9d", + "modules/companies/src/web/work-profiles/shared/types/work-profile-form-props.ts": "7b3b43220a7f6726ac344c4a7e2b2e9b6cb2b2046f29701dd37a3e2fa6ad0354", + "modules/companies/src/web/work-profiles/shared/ui/index.ts": "e7ad4b0007d56ffc8389681db62f7701fa3675a23281507a7117d7680512e8e9", + "modules/companies/src/web/work-profiles/shared/ui/profile-feedback.tsx": "e6adab4b16ae10a50908c67c22af252118a569448f6e84b9d7b5403318b34b74", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-account-field.tsx": "ebf49808723bbc23dbff0ac8b5f7ddda3c687e1352c36e78673201d28a4fd0bd", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-authorization-notice.tsx": "33fbc926066152fa547eb82c32a26f56165de50046637aa708c7b1ef54de5641", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-computer-summary.tsx": "40e3b6dec6db541cbb5612b5cc41e60a366f5539b81aea17f90cc782c6d861f9", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-editor-dialog.tsx": "add0b39d8cb0f43561743589f28a02f9025067ef6db017dd554da010b64a5dd2", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-form-fields.tsx": "36110186c881f5525e548b57674aa82e2da5579a9112ae239b7786777b437ff0", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-form.tsx": "1d07066fab33ce05e20c552fc079f984f0afc79784b8cf5be9681075f7a78eeb", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-identity-fields.tsx": "c0696a70be670ed61242e5f1f8803091aed8760c6cba202fdbf3e59cbab00fb3", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-lifecycle-dialog.tsx": "262d7e6f19de6553f31e96ce1e4e0d74431d662364fc1dbd619c1a275db016b9", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-selection-field.tsx": "887a34da74b48043d3536c4a5633bd562405426c3c322e36373fec4e722cf691", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-summary.tsx": "e5cecf309b77e7809ea63559f137a3a36863534c56e616a9486852e69fedc988", + "modules/companies/src/web/work-profiles/shared/ui/work-profile-workstation-field.tsx": "62ed83143ea7a955ebf63dd4658f6e27e8df3aee65a9b637c0307fee5d943c8d", + "modules/companies/src/web/workspace/catalogs/index.ts": "1a502a3f1070dd1b290abe45027366096fae278677ad775592da2e8d308203e7", + "modules/companies/src/web/workspace/catalogs/ui/catalog-overview.tsx": "f3dceac150f2aee00bbda870e2509b954e7f813d5cce40759f8e9ddd63522a4f", + "modules/companies/src/web/workspace/catalogs/ui/global-catalog-content.tsx": "b912f45f7bfdcb9ef470b80b4a4425a3f869ae47b3555b6afc627f1d6a83598c", + "modules/companies/src/web/workspace/catalogs/ui/index.ts": "b9f59553ad6df18839edee001bb169ccb20ad81d5d6e2e43c7e5f4f579b348c1", + "modules/companies/src/web/workspace/index.ts": "b3a600552b7fd39753dfe079487df5971c1928018e9bc3698efce223dde06585", + "modules/companies/src/web/workspace/settings/index.ts": "01252f62d94e8ab0a4a24b74000c64d08dc1032740d4c964166932e3746f4f3e", + "modules/companies/src/web/workspace/settings/ui/index.ts": "8e68cd1d3db2f136cdf01ee1f2a4943344a341fd4cb77b16f5594db52610e8db", + "modules/companies/src/web/workspace/settings/ui/workspace-settings-dialog.tsx": "1880ed2e0dfd70cc7fcd8668d1ec20c01fab0a1e7c3cf7ac94b107ab6f903ec9", + "modules/companies/src/web/workspace/shared/helpers/index.ts": "7b7f3025c4c3e888f0ed9ca1b38f7dde9ac3371b0f2bfacc3a1ddbf656affc7c", + "modules/companies/src/web/workspace/shared/helpers/sidebar-preference.ts": "2a6eab8d9a53f433584da13dad20e593f020671493e33e0c677f1fead0f58aca", + "modules/companies/src/web/workspace/shared/helpers/workspace-content-focus.ts": "a6b6c2b79cd7dee429ae08c2c4fb6b9f4be075b0687dd2d8a8d213c675778baa", + "modules/companies/src/web/workspace/shared/helpers/workspace-navigation-capacity.ts": "c9ee6e868f501da9d71265b24b808eeffd1d16e3ceb3ac249b93095f626552ee", + "modules/companies/src/web/workspace/shared/helpers/workspace-navigation-focus.ts": "863a801cdc60825cc908fde4443af7f197a57eae3978295b316eef8a8c2ab2ec", + "modules/companies/src/web/workspace/shared/helpers/workspace-routes.ts": "f02df7b74cf2048aa155a81fc44fd6b54dba3619197f42f4b9f2875eaa9a49e9", + "modules/companies/src/web/workspace/shared/hooks/use-workspace-capacity.ts": "40c683a5acdc0459db68d6760dadb25aa95efcc46ccf50fd49972a336328321d", + "modules/companies/src/web/workspace/shared/index.ts": "aa3d8e69c5f44dd28a9b074f760ba28801e2d5daca1195dd2ba0058ef8ede30a", + "modules/companies/src/web/workspace/shared/types/index.ts": "33f1f7d7f0b126f65acb645f94ba0ddf7e6e5fc5e78b1b3ce03593a24b242b0d", + "modules/companies/src/web/workspace/shared/types/workspace-location.ts": "02fbda96b9c0b5ed91f6e426d32e6b1416843368c84098cf136a0f7f7148327f", + "modules/companies/src/web/workspace/shared/ui/index.ts": "353a44428d92963d29efbd3799ecadf64e43fa6c9f6cae4930ae41468713ee3e", + "modules/companies/src/web/workspace/shared/ui/route-feedback.tsx": "36a2f06d5d9f33a95d8bfce3a0c6b826505a400695b533ba38a25f351b9b440b", + "modules/companies/src/web/workspace/shared/ui/workspace-mobile-navigation-provider.tsx": "fa03380bc59a308e7beaf087b7086fc39969f5dd1e4bee40e9885cd5b6448dc8", + "modules/companies/src/web/workspace/shared/ui/workspace-mobile-sheet.tsx": "86337bcc188ea52c9270cdac8a415e4a5fc5c340a2cbfca64d17cc9283ab3862", + "modules/companies/src/web/workspace/shared/ui/workspace-navigation-button.tsx": "6d1e7c78b1456cb247d1d434a4dab4710646721ed106f190e63d17da487d7b44", + "modules/companies/src/web/workspace/shared/ui/workspace-skip-link.tsx": "1fac096147969a9e328fa1a17a39f859bbfd78d3e1180fef7c80ad3856b85298", + "modules/companies/src/web/workspace/shared/workspace-mobile-navigation-context.ts": "85ee638221a84374e41acda481a1ce6b3df5d3d4533f18fdf0a6f10dc69a1bac", + "modules/companies/src/web/workspace/shared/workspace-routes.test.ts": "0fc0dfe2559218c5efac4fa1bf799b9a6f894a14de21144318f0ed634048d64b", + "modules/companies/src/web/workspace/view/controllers/index.ts": "3d611ca50d21a19b94338d2916dd26bc9cb45a31193a3636caa30b5f789868ee", + "modules/companies/src/web/workspace/view/controllers/use-companies-workspace-controller.ts": "e8baf4d8e2ab088d3553384e50e5f3bc8a94e14e08cf0e511532468a7e6fc3ab", + "modules/companies/src/web/workspace/view/helpers/sidebar-preference.test.ts": "54c4dc81e90462170d32709635c9300df0196db3fec76b7c1a946a80fb95bd18", + "modules/companies/src/web/workspace/view/index.ts": "b4ee674db4524b30c4213c927369ca9c3a82dcafd6e5fb77c98357a5cda06485", + "modules/companies/src/web/workspace/view/types/companies-workspace-props.ts": "ef9bca0ffb192b7d8cc22cbe27fe0b15ab193f909d063f3f2457fca698d27579", + "modules/companies/src/web/workspace/view/types/index.ts": "9385c22bd907c7fad5e1635a47ef57b9eaf41b4b27d73685ebd8438232712533", + "modules/companies/src/web/workspace/view/ui/companies-workspace.tsx": "b88b0cce3ad2b37abcdda417258542526df0926fabd3642bb235857fd24cf57c", + "modules/companies/src/web/workspace/view/ui/index.ts": "d861972082b6be076a0647d6f3f0f026049b2b6e3b175be5a57718e12e474137", + "modules/companies/src/web/workspace/view/ui/workspace-content.tsx": "b7ed9056d863a2be87b8bec7c9a47af1369d31f0d4432d79943f2a5154123898", + "modules/companies/src/web/workspace/view/ui/workspace-header.tsx": "d9c6d63f7600504edc1a940a06c72ed830e5a84c99fbe52be1317c62a36c095c", + "modules/companies/src/web/workspace/view/ui/workspace-navigation-content.tsx": "3a26299f2f641b2ec2f26c51b47b93a5c257c1ad93ac19a1de59543052ceb988", + "modules/companies/src/web/workspace/view/ui/workspace-search-content.tsx": "b7cf1b73451e47fe72370821c40485ce58168a8350bde536f441aaf1bba547e3", + "modules/companies/src/web/workspace/view/ui/workspace-search.tsx": "53542331387eb03d5c56148e95987bb924bfffc345a0faa5a8346867cd78cee0", + "modules/companies/src/web/workspace/view/ui/workspace-sidebar.tsx": "8cdec12541a89bad0ca8cf7259af4811520472377566638496b355fb9571e9a5", + "modules/companies/src/web/workstations/detail/controllers/use-workplace-map-model.ts": "785e371890d904ae2ea3bc91eef2dd284b7eac3e12a6d38ab28810acb838d40e", + "modules/companies/src/web/workstations/detail/controllers/use-workstation-configuration-queries.ts": "e5eda5f996150bd0153b284879e9d4651c8283312fcd2691a23245d09bc44d76", + "modules/companies/src/web/workstations/detail/controllers/use-workstation-detail-controller.ts": "aa513f8cf5a3d1d1adef91675d39c1d6c72891c4e745a9e0c0625f0b2bc553cb", + "modules/companies/src/web/workstations/detail/controllers/use-workstation-profile-expansion.ts": "04a326fe53f9b3d6be47db4f1d295d8586b5c0541e8e88231ace7c7af926a8a4", + "modules/companies/src/web/workstations/detail/controllers/use-workstation-software.ts": "7e4ed64ed57c476b4c2ca361d2e090cf23fbfe206176465b9eaad48bf25f54c3", + "modules/companies/src/web/workstations/detail/helpers/person-workstations.ts": "bc5d9120fd11d1011f17f92db6f8132354f396cf36e3eaafe129c39add7194aa", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-layout.test.ts": "cc80d0d21a884b94f7ff2d8c4a4276bc17ea1b7845610a7bfa9a4b681b837ae9", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-layout.ts": "fac42eda3896e3ff818adf7bfcfa21bccfcb6eecfacdb58a00cbaa78c772f4de", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts": "bf25c7e88b8c8bf318c398986dbc08f3ec2f77eb739588555e711fe1e123cb4c", + "modules/companies/src/web/workstations/detail/helpers/workplace-map-preview.ts": "cba80ba13a8c66358059b44fb07974c81a39715434285014d4616a6d7ce5db4e", + "modules/companies/src/web/workstations/detail/helpers/workstation-computer-dependency.ts": "3cc5e21ae2abf272c3ffaa90b8112b334cfc2a3b5ee53c2ea4e90c896e828898", + "modules/companies/src/web/workstations/detail/helpers/workstation-dashboard.test.ts": "c88d76d0b6eab7af3170ea1c35310596d2a8f9844a148cc49717edf63140f243", + "modules/companies/src/web/workstations/detail/helpers/workstation-dashboard.ts": "f18150006646d079da686139edd838840675fe7254f5e6375eb69656bcf101c3", + "modules/companies/src/web/workstations/detail/helpers/workstation-equipment.test.ts": "32fead62e6c38511258c3368155e245df69b490a20d65609daef564feefcf56d", + "modules/companies/src/web/workstations/detail/helpers/workstation-equipment.ts": "1d34a7c884329210a18484fed1f85519b639d1ca3e6c96ad5aaeae3a1e46ec6e", + "modules/companies/src/web/workstations/detail/helpers/workstation-profile-availability.ts": "4468d1d66df8cbea2d8089316741629631723d1afb680d063ba32f2bb0a45dad", + "modules/companies/src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts": "2157db07767e2a05f6a92641e57375cd43fef03109b686a10c089922ce3f097d", + "modules/companies/src/web/workstations/detail/helpers/workstation-profile-expansion.ts": "39b8cb91a028a1346ea401fb6772cd5ec3814e00d40e5040f63da8f117096bd2", + "modules/companies/src/web/workstations/detail/helpers/workstation-relations.test.ts": "3fee47d608cab816ae9646aa0644896c43ba77d3e5459fa972ccfee692247ad0", + "modules/companies/src/web/workstations/detail/helpers/workstation-relations.ts": "9370cc4e4b0a07858b84eec4a9ecc6730ddc833a0499dda933d4580ce645abe7", + "modules/companies/src/web/workstations/detail/ui/workplace-add-asset-node.tsx": "67aa7b24d596dc135bcfc42a5d7d8fbeeb5b5fadd3a22de96f508a23cbd7a238", + "modules/companies/src/web/workstations/detail/ui/workplace-compact-map.tsx": "190043918adcd54ba281516321bfdf863feae2a6fd61a1d927a790d6f922c1b4", + "modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx": "e0eda9c6a7c39d731a172d776bafdbb47f33cdcdfc86e9eba01271742b146194", + "modules/companies/src/web/workstations/detail/ui/workplace-equipment-node.tsx": "0af5ca4deed59e3cfd32fddeb7a5fd3955bd9437a4a228797c4491c25f547546", + "modules/companies/src/web/workstations/detail/ui/workplace-map-canvas.tsx": "73488b52e42a186cc1625c6025a72267ded94b93d7bec94ff07b9734a2229ae5", + "modules/companies/src/web/workstations/detail/ui/workplace-map-coverage.tsx": "51f5f1031b9552c2b9c54173cc283e6ac527dac7f4fc782b97b1c59fdf8a4929", + "modules/companies/src/web/workstations/detail/ui/workplace-map-legend.tsx": "3f0212282b89c18c5d78dd32d16bb1c50afd07b1a0d5f3e62ef65d4ea5b7ff87", + "modules/companies/src/web/workstations/detail/ui/workplace-map-presentation.tsx": "2db32313aa99684c56be6aaea581ffa0e87616e829c2b3fcf1bf83ad624d139c", + "modules/companies/src/web/workstations/detail/ui/workplace-map-styles.d.ts": "dd797256f868ee3349e33bfd634ceeba7051533150c07ac82fb0c77dce354e13", + "modules/companies/src/web/workstations/detail/ui/workplace-relationship-edge.tsx": "8a17bcf6448cf8d7257001d4663e843fb93ef0ea7e96342ccf5ffbd0624e0300", + "modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx": "28bb03f91e3a86ac5fe18920862b9653956b9e1199997a2846bf7e6942ff29ba", + "modules/companies/src/web/workstations/detail/ui/workplace-software-heading-node.tsx": "60ea149236914e93fe1cbecfb3943dce2f6a09fd0b26523912029949960369b8", + "modules/companies/src/web/workstations/detail/ui/workplace-software-node.tsx": "bfcfd32f3bb24b53023aebe9331c90b33880e95bd5629876a913abb02b071abf", + "modules/companies/src/web/workstations/detail/ui/workplace-summary.tsx": "9cafc7faa9b7243a830064379596f98e5ecfcf7bc6c2efd2d04134d1226c7640", + "modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx": "aee738391e04ff12444fc0f02fdc0307cd9d34b8357a96628368951c911de1c6", + "modules/companies/src/web/workstations/detail/ui/workstation-assets.tsx": "cec0a58bb832db6f8b54a6d977d5b69abb5acb56610b8a8eca81f5385be60ffa", + "modules/companies/src/web/workstations/detail/ui/workstation-configuration-family.tsx": "63942779887bba9af758325e718c8f3a712bb8da5c30fe7d56c5827823497b5c", + "modules/companies/src/web/workstations/detail/ui/workstation-configuration-item.tsx": "e75653bff7e22684564a760fad607d261def31649e3a071f1abdad13326f97fb", + "modules/companies/src/web/workstations/detail/ui/workstation-configuration-metadata.tsx": "18a6ad7949eeccec9a823a0bc9cb985f0aa4795cfd6cd522cc4fe9a4b89c9325", + "modules/companies/src/web/workstations/detail/ui/workstation-dashboard-skeleton.tsx": "0cb73225cd47c43ba68a68661b81276ee67bf7d4c52047dbe43e41d0d9b23df2", + "modules/companies/src/web/workstations/detail/ui/workstation-detail-content.tsx": "7b7d081b444cde82860b2f7fd22b072da1e2696300600a1d486b00d96e91a90d", + "modules/companies/src/web/workstations/detail/ui/workstation-detail-page.tsx": "73113816c9f7afb88572f0b40d095fb92aa4060fe3b99eed7a0563afac96ebca", + "modules/companies/src/web/workstations/detail/ui/workstation-detail.test.tsx": "7e8a20a81ad4497958a2aa9070c6dfbc33a56c56d86b8cc371757e0e9c9e6822", + "modules/companies/src/web/workstations/detail/ui/workstation-equipment-guidance.tsx": "fa1c5a200eef501c944b9189728b8074e110dbdb3bb44e78186c5335b99b2533", + "modules/companies/src/web/workstations/detail/ui/workstation-latest-change.tsx": "29ffcb7859e4b51e7275b4a1cee75b811f8dc9ccbfe71ca6487f942ac183a618", + "modules/companies/src/web/workstations/detail/ui/workstation-pending-configurations.tsx": "2846819df02c0252a155f1b517b21b4c13ff51e0b405547f99ae484c0e07d067", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-configuration-details.tsx": "8c187e8f3ad8a2c8a9b2c30d194c9e4a5f8adaa2452a186572a0e582ed7c8fa2", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-context-feedback.tsx": "b4d82f68dd23406ecaafb8a86c27403f0447ca185b470209a9cfaa758b69a0fd", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-identity.tsx": "9cee0f0f7ad08c501c6b4f1d1cf9aa98a80730c1c135d7251b470fc36964cf46", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-person.tsx": "4e1dc580c1b41854f793ff5fe4e12ec89d9eacaf1a016d33d59fef9903b7348c", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-row.tsx": "9bc46303f6cce360cde4e94a02f1e3d356bc4c420eb5cc17b71ff7d3d0b0c3b8", + "modules/companies/src/web/workstations/detail/ui/workstation-profile-summary.tsx": "2dd873020d747f7169c73c6c79254887f3c4c19004bed1699b9415269cf6c78f", + "modules/companies/src/web/workstations/detail/ui/workstation-profiles.tsx": "97240a9c99f586c97fb0d9482ed0f5ed4223204672dea661b2e85ecc198cb6e0", + "modules/companies/src/web/workstations/detail/ui/workstation-query-feedback.tsx": "ac52ccf8ef93982c378a65180b95702d59f874cfea6af0023d348ae95d857e31", + "modules/companies/src/web/workstations/detail/ui/workstation-software-dialog.tsx": "9ec3268fd9b7ffbc4e092a131e37f6a7a3f6948a437f97b77e677c3b97daeea9", + "modules/companies/src/web/workstations/detail/ui/workstation-software.tsx": "482bd3242f18c886d513d04d3da24140dc845afb1c3e4d7332e194feee7cbbf4", + "modules/companies/src/web/workstations/detail/ui/workstation-support.tsx": "3cdb85c20c26ad6d05b5ebef02b127afda27a00346c8fb9e3cb929e1581ea6a2", + "modules/resources/src/api/application/application-coincidence.test.ts": "5b3803b37208f3de3315912a554b6c179e21916c169956f189b975984b1e4be2", + "modules/resources/src/api/application/application-coincidence.ts": "5d3c1a4da677db3c7c19b49517d4fd510e1ed69be1e98194003fb1af9310f642", + "modules/resources/src/api/application/directory-context-writer.ts": "80f1d1d073510d6dbb79e360230987cf3600cd906468b074783a579562ea1100", + "modules/resources/src/api/application/directory-domain-input.ts": "74820d6511e83670d3a21fe863518ee154b15f70eba6ba1af5519a563e8111ca", + "modules/resources/src/api/application/directory-domain-reader.ts": "d6d88fcaee6fc5858728c57c440ff491753a5140b2c65777bc8d41729c974a2e", + "modules/resources/src/api/application/global-application-template-policy.ts": "35403af9de284edb5f75b351ecf138f60163251715d16fba7e98b91bebd5c9d3", + "modules/resources/src/api/application/global-operating-system-contracts.test.ts": "8f60a5d11e170e875403425d2a900fcbd9a5e0273fa767ac0ac1bb70c1078a61", + "modules/resources/src/api/application/global-operating-system-policy.test.ts": "8742185902b4468eae01e365506732f19ae3122baeda281bbb2df11253262834", + "modules/resources/src/api/application/global-resource-specification.ts": "b6e09610743ab3ba7f646f96a18644c166494a1736a52729717968d5c0723500", + "modules/resources/src/api/application/global-resource.repository.ts": "05704356c5888a64cfa0afa6e24ccbeea692effc5128ecf52913d72125657695", + "modules/resources/src/api/application/global-resource.use-cases.ts": "8b2740a335439419e2a86bd979d1786420ac19e029316bedcba17a11c39a2654", + "modules/resources/src/api/application/network-share-diagnostics.ts": "683fd5b3159a3b9b247e1fcd3331088e71ed4624c0abe969b57043f60d2947b9", + "modules/resources/src/api/application/network-share-input.ts": "fa412ce2fa66334854f02f87181850be33f76d0fb05ad403b0444b8b33b363c7", + "modules/resources/src/api/application/network-share-reader.ts": "e2b0cde2bbcdc0e3089e1d8b2e2da6156d5a6680a0bd466fdeaba9e08d74b763", + "modules/resources/src/api/application/operating-system-identity-policy.ts": "475482c8ab6591ef4f47f43d586d67212f5a286ee1bfa4869ddbb5d3226d2aeb", + "modules/resources/src/api/application/resource-access-writer.ts": "2221fbdf55f59ffb147a5d8d001b51ccaf9cc5182ce9c44bf935766b84b4ad9a", + "modules/resources/src/api/application/resource-catalog-response.builder.ts": "cfc00b92067675fe7bf0302795ef9dd4b8f4102ac569cde6fe15bb63d8bb6dce", + "modules/resources/src/api/application/resource-catalog.repository.ts": "b68930bb137f3fd4e38e2b1aac8c349035a9728258bb48040e94725538e3eccb", + "modules/resources/src/api/application/resource-catalog.use-cases.ts": "9ed5b47232f4a19d3c8d06d2722e6404a489115bcb564b9ad30b985947983d32", + "modules/resources/src/api/application/resource-global-gates.ts": "88d9caeb9344dbe0dec9c39ce025111e66ea737211ec2c8d7c645f1fb43fc45e", + "modules/resources/src/api/application/resource-input.mapper.ts": "6e549289177b7cd87bd3c71243b59a3e0dcf749d0ff3330d1b2593771f288b80", + "modules/resources/src/api/application/resource-inventory.service.ts": "4dca3e3a71652a79bde8fb750a0c812e8f9dd5b8da8b84f270029422396889a2", + "modules/resources/src/api/application/resource-lifecycle.test.ts": "65b334340c7666a801f6d13c7c7420fa520be05bb5f8edf2f4b8ed04b32aab8b", + "modules/resources/src/api/application/resource-reference-contracts.test.ts": "2d07a6b9653b34bb4ba8e293ed9849bb172e7db9f43c4edbfe36bfb59e76fe10", + "modules/resources/src/api/application/resource-reference-pagination.ts": "cb43104041131ba091f09f2130a3f589d38cc50690d21a3f401df50e0e939508", + "modules/resources/src/api/application/resource-reference-service.ts": "2fed05a25d6997e7889225ae0edc47fb94d3943cd5ba80f1146640f9fc1afe95", + "modules/resources/src/api/application/resource-response.builder.ts": "bcac2b29ab3abbbaf872e73aca7e8e430030dbae92267d351593e999d62b352f", + "modules/resources/src/api/application/resource-scope.test.ts": "2d803127e6cf78ef5c921e25363f491d8e53d879f168bc4376c9568c84b77c1e", + "modules/resources/src/api/application/resource.repository.ts": "d0d8167bb2aaa7f124f72a9ffec4eccbc21f039c876c5c53e2e98e24a6ecfb43", + "modules/resources/src/api/application/resource.use-cases.ts": "96e994d47ecdd47780de72feb498c1323fc51095cd46253dada4d1a551876b20", + "modules/resources/src/api/application/smb-access-input.ts": "4a9bee73a803992223554d50d7db510ed3224095005460d8d4a9db383ffd77a0", + "modules/resources/src/api/domain/directory-domain.test.ts": "c279347a43858d0e40bc7e9c1895e40fda4557379c6724f44e60ba5f39b8f653", + "modules/resources/src/api/domain/evolve-operating-system-template.ts": "fe39b25bce0e99a506a953c1496198f54675c3611b4abdb44f3badb75c724415", + "modules/resources/src/api/domain/global-resource.test.ts": "85669bf8f5733fdee33b57b74347288e7765f5e52b801b33118186f1c1e6c57f", + "modules/resources/src/api/domain/network-share.test.ts": "c403bae2b77d7d422a636ed2caba90cc3d01d0647ef12087a9200da24a76a5b9", + "modules/resources/src/api/domain/operating-system-identity.test.ts": "7b9afbb2c2eda3e8e33dcdbf7aff04f064360a8ecf7d865c543bbdfc45c3397e", + "modules/resources/src/api/domain/operating-system-identity.ts": "3f6158170fed40567af11dfc9f33788399e2cac81ea4fbe1b727a7d1de25c72d", + "modules/resources/src/api/domain/resource-catalog-seed.ts": "ccc4d67cc3f7405620965c769806f27f93cce12a220735c0700cf1884b641ff4", + "modules/resources/src/api/domain/resource-catalog.aggregate.ts": "7a6ba7a4e944b16e1bfa7b98d20c7bdb0d80064f0664283ab124cba63ae9109a", + "modules/resources/src/api/domain/resource-catalog.test.ts": "3e191de41bb957efea2e675a5c65db3f8c14d439158f197fc8603e7ced5b6adc", + "modules/resources/src/api/domain/resource-definition.entity.ts": "7fdfab66c78a8ac952e9ba4dcf2934b1c38b5784113fb7612a4b8f0bd39d0c80", + "modules/resources/src/api/domain/resource-definition.ts": "6ad4b81950afea2f5f8e55d364f0c223f9a62f20b1f334dcc2232b81ea5d7b3d", + "modules/resources/src/api/domain/resource-revision.entity.ts": "0abdc5eebb90825c813f298660957c5436ef81525e51b46c436e3cb7505e81c8", + "modules/resources/src/api/domain/resource-scope.fixture.ts": "8ea72065392dabafd4da80a30520b57469d5a3265fda55beabf7d7991f54b224", + "modules/resources/src/api/domain/resource-scope.test.ts": "c0597e0a29fc9b6699e0cc74165dfd4cb2273dec5b22eb06ef73ce5aa3178c87", + "modules/resources/src/api/domain/resource-scope.ts": "9dc0d3db0e5964c4b21e80f2adc72877978d15c82de6dfed1681c26ee6df95a2", + "modules/resources/src/api/domain/resource-template-propagation.test.ts": "b5c5ad70b3ed4681a3f4dded67088b4e98f86ef873b405ba533dea0edb71f24b", + "modules/resources/src/api/domain/resource-values.ts": "89a806387dd1ba7cff6d24cba189ce54b7ac0bfb9f64580c92931722e103206b", + "modules/resources/src/api/domain/resource.aggregate.ts": "dd25d9b78977f61d747c075010897d6c586630ed1d8c4fb2e9bb5f48baff2761", + "modules/resources/src/api/domain/resource.test.ts": "9af60e53120faacb56e3a4c62257fdd1deccdf5a85f274df16200672403ab4f5", + "modules/resources/src/api/domain/template-section.entity.ts": "857a9c60fa27869e777990f4400b53606bebc7199091eeff76e489ec770acf5a", + "modules/resources/src/api/domain/template-sections.test.ts": "188eb1f088ea9b19365bc3767f4de1e8f441e15beb47ed612c232e8b16c89b5c", + "modules/resources/src/api/domain/template-sections.ts": "664cfd681399bb95810b7d8291c96be92bef8aa668acd85af689cd8e803d9d4c", + "modules/resources/src/api/domain/value-objects/directory-domain-values.vo.ts": "4d847e70378909de4178672fc83a68ff8ff0193f3f5f25f490ecd24a38fe7232", + "modules/resources/src/api/domain/value-objects/resource-definition-values.vo.ts": "49790ac626346eb367773ebe587a882611a8ec9fbed5e21f367e88ca503afc87", + "modules/resources/src/api/domain/value-objects/resource-values.vo.ts": "4f95e8f3c08bb2ca0c121a9896f7cf0b854aad28a58b89dc47835d4ce0cd2d51", + "modules/resources/src/api/domain/value-objects/smb-address.vo.ts": "c68257042ad2ae0e83d251d756353472920c136a1438b72598db536b7af16d56", + "modules/resources/src/api/infrastructure/http/application-coincidence.routes.ts": "0f8450be007527a453ac54750434c4ccdec0e909356197ab889ab0f05a320693", + "modules/resources/src/api/infrastructure/http/global-resource.routes.ts": "6dd210d40330a52421eb401e4825fb3529779faa6d17d567225d88a768614e4d", + "modules/resources/src/api/infrastructure/http/resource-application.routes.ts": "4a6ba24ab6227bacb387210bb1fa979e284f1165c67d3171d60eb9e191918906", + "modules/resources/src/api/infrastructure/http/resource-catalog.routes.ts": "3580f99d8f95819ee9a1adb55e500d3aead5e695078cf54c5fe89a38ee91a835", + "modules/resources/src/api/infrastructure/http/resource.routes.ts": "7f64a8129cf0aa37273c5a332a5eb9e8bef1d864a0377ffc3fdd9baed0a79805", + "modules/resources/src/api/infrastructure/persistence/application-coincidence-reader.ts": "a22023b9e08798efa5c39cb5afaedd5e7f4c774edcf80004bd0bc60b01f1d002", + "modules/resources/src/api/infrastructure/persistence/directory-domain-migration.ts": "b5de1785013a014b99bf45ac0c90142f3d70165ee98fa0790e492fbb784ae7b4", + "modules/resources/src/api/infrastructure/persistence/directory-domain-options-reader.ts": "2a1f7be9471376ec19145ba67afbc272b89805a75655e9b8dc23883a82fe67ac", + "modules/resources/src/api/infrastructure/persistence/directory-domain-projection.ts": "7a5661169ca40b863bb0ae43714805ddc76d6e5582ef65a6a088e90f6405df3a", + "modules/resources/src/api/infrastructure/persistence/directory-domain-reader.ts": "bf7a460e84ca2740e380eed9201d743d17117192adfd9ba706a2b41716470039", + "modules/resources/src/api/infrastructure/persistence/directory-domain-summary-resolver.ts": "cc21520a0a3add4ba323cafb305a29d29266260cd71f86c1884ef2c70b4d826f", + "modules/resources/src/api/infrastructure/persistence/global-operating-system-reader.ts": "81ce8e11c5618fe382b438680511e423e54530e61e0818389e8d5beb4a9c2571", + "modules/resources/src/api/infrastructure/persistence/migrate-legacy-resources.ts": "45a5ba911fdedafa1f978b11dcec1d55d9aa6db6feaecc460b86f842e78faa1b", + "modules/resources/src/api/infrastructure/persistence/migrate-support-resources.ts": "322830ae8db05172648d8c079097e15f91b2b89da46fb210f7828db21268b979", + "modules/resources/src/api/infrastructure/persistence/network-share-migration.ts": "df0042c42e9af912fe531c8759393b67274e63272e16d03881c7d2079bdb8cc3", + "modules/resources/src/api/infrastructure/persistence/network-share-options.ts": "fb9c5dcecfd927d05d406e548ef553d5e0b0b844c9b8eeec60c4d9aaf71ca4e5", + "modules/resources/src/api/infrastructure/persistence/network-share-projection.ts": "99377983a6f2f0e272b793f0a3a5037d721f27a4b30cc4dda4b38a4003d37479", + "modules/resources/src/api/infrastructure/persistence/network-share-reader.ts": "f1ec3cbaa17143451aa3cffa44516985787dca5b96ba8e422f4f8f5fe7180dd2", + "modules/resources/src/api/infrastructure/persistence/network-share-summary-resolver.ts": "f3ee940213caaf7a1f7754ab7f960f29398be752e9096ebf9c4c01c59ef86b23", + "modules/resources/src/api/infrastructure/persistence/prepare-resource-template-updates.ts": "a303000a8d31951f8ac59c6111a121404e506b206b59c95e710995052a0e765c", + "modules/resources/src/api/infrastructure/persistence/prepare-smb-access.ts": "29e6243f2e925233050755922ae191d1ed483143d6a461b80a05cbc4f878b0aa", + "modules/resources/src/api/infrastructure/persistence/remove-resource.ts": "b1b23fb2dcc812db1152b262124b546daa56e582360b2bb8467bb349ff7d7366", + "modules/resources/src/api/infrastructure/persistence/resource-catalog-persistence.mapper.ts": "098577589ca2499e82f0c5a0984b4907d37dbae161bd3012d77c95e0007eaa41", + "modules/resources/src/api/infrastructure/persistence/resource-catalog-relational.ts": "9da480794ea70ff71b28e039208aaef876acd627fe5a30ec706bde229b620e86", + "modules/resources/src/api/infrastructure/persistence/resource-catalog.model.ts": "7ee78b602bccefd2c2f9106627bc1b8fe4e2c1cccff34e7b79b09a3649e68be6", + "modules/resources/src/api/infrastructure/persistence/resource-compatibility.ts": "ee00bbb0e03cc9ed675f3aa90e18278b6c240042f61feb51d46c46df5b1472b5", + "modules/resources/src/api/infrastructure/persistence/resource-dashboard-reader.ts": "f8d18fafd1d1d4e6c2f6c1a9d8cde733cb2ac44369c827a051d39ef09e53534c", + "modules/resources/src/api/infrastructure/persistence/resource-inventory-relational.ts": "1c24d228b498022ad2b5a9cdf1b5a4b2bcc7be10ce2222b5a28c2b0ae00e7863", + "modules/resources/src/api/infrastructure/persistence/resource-persistence.mapper.ts": "912b6f1928e3572ec958b233c311c97512888108b8ac11c316c533967629c25d", + "modules/resources/src/api/infrastructure/persistence/resource-projection-reader.ts": "a7aa9a92580cdbf60f68c4c327ef58c6dbf2b97b5e923ec36d9d56e3850c378b", + "modules/resources/src/api/infrastructure/persistence/resource-reference-metadata.ts": "53c4e94ff2a17e9676645879faa6c14cdefa1bd4497062de9c1153fc85a22348", + "modules/resources/src/api/infrastructure/persistence/resource-reference-reader.ts": "b477e796e0004220d8e27c2c656070a77821407fe9866123811beb9f1eaecbf8", + "modules/resources/src/api/infrastructure/persistence/resource-relational-schema.ts": "4022e5c3e4806213025ec91da8dbef858e334c97d8f85fc587133b297888d0c5", + "modules/resources/src/api/infrastructure/persistence/resource-relational-sql.ts": "bc6d92c925a609473717a9ee462d2dfc8b686e95ad8387ed23d2c2c5bdf7437a", + "modules/resources/src/api/infrastructure/persistence/resource-revision-specifications.ts": "b9c9de79c3b2ebfe1bf61cce5ea4cefdb5360001584db17e0282aa4e6c1f3e49", + "modules/resources/src/api/infrastructure/persistence/resource-scope-migration.ts": "e3637a5e6606bab9637dc59f4b6e810543845187c26b1418e07504ec2c806a42", + "modules/resources/src/api/infrastructure/persistence/resource-scope-reader.test.ts": "0afb75b1e68237ee0d1ef2ab5e448287be03509d750e2a327ec3ef5eddea500f", + "modules/resources/src/api/infrastructure/persistence/resource-scope-schema.ts": "a95ae7704e6c499f525645f25d933985872fde51d6c933f7b26528d8f472477c", + "modules/resources/src/api/infrastructure/persistence/resource.model.ts": "9ebcf283218d4ceeace0faeca74bc048ae805b7817bd4c1297b044082cd69822", + "modules/resources/src/api/infrastructure/persistence/sequelize-global-resource.repository.ts": "a183066f955eff6d4cc644a54d18c427cd99caa6a20fb87ed64492b4ce2d6fe1", + "modules/resources/src/api/infrastructure/persistence/sequelize-resource-catalog.repository.ts": "cb08fe9b30715280a6bca809a0c2db9e764b06bd77b196b6985886b3a935eb7b", + "modules/resources/src/api/infrastructure/persistence/sequelize-resource.repository.ts": "c6af54c66de1fa5293faa4d69aa1dce01e8e5a40bec48da5bc752ebcdc94c551", + "modules/resources/src/api/infrastructure/persistence/verify-global-resource-enablement.ts": "509e3b9ba2919bc73ef83602bb027ec2c1c0db3fe7c0ba600351cfc551f172b2", + "modules/resources/src/api/module.ts": "5c24e22992c2d8570646f49bb605caac432a53eb7be09a4f594aa37973e5236e", + "modules/resources/src/api/services.ts": "28633fc69431569a833427ffd31fd3cc475120390ff11ec4d8572db0ac5043b7", + "modules/resources/src/common/directory-domain-options.ts": "c2436e03868e7d6e55de3e4027de611546541108064f44728a9104d7929f9f70", + "modules/resources/src/common/directory-domains.ts": "96530fc8accfd74019e796581e68bcb15030507e898dc3f0bf626ec1d13cf99e", + "modules/resources/src/common/dto/application-coincidences.dto.ts": "8fc5c3b800f0dd760bd8f13ab00425a79a9620968965c0f29cd303e3aa8f6a54", + "modules/resources/src/common/dto/request/resource-application.request.dto.ts": "da1bd620ee4b293af72786847ea5c588e563625908136cce78e4b53c7d84b8d2", + "modules/resources/src/common/dto/response/resource-application.response.dto.ts": "15670bc6b2ca73f1c8bbf043c3f66f77fdc28828dae513b7cf841818958066e4", + "modules/resources/src/common/dto/shared/application-reference.dto.ts": "7409b48417521e5bc17f21e1ac0caade5da5c34ffb448af873aa006fa9c57066", + "modules/resources/src/common/index.ts": "60d1b1e8876022adf3bef318888fc21eb6aaa7ac9cacf8298714213aae22b3ec", + "modules/resources/src/common/inventory.ts": "883819f28f24f27410858f79cb03e38ddbdc6fb9bcfbaa491af7d625dcbad306", + "modules/resources/src/common/locales/en.json": "a1dd1e416af87cd94ffa2c80855e9e809e3b62b1ddb679a4688d2adbd67ccc9e", + "modules/resources/src/common/locales/es.json": "edc6151d0bfac31da3a1fed555231aa7eae5b7cb71779533ea503dbe38eb986c", + "modules/resources/src/common/network-shares.ts": "32f2309f689f6adbd939430cfecd74696f822f3c7b1dced7ba90c7767fd739c1", + "modules/resources/src/common/operating-system-identity.ts": "15b335a243321d005e784bbc80e486256f1525d0483ad264e535cf9432b34e15", + "modules/resources/src/common/resource-capabilities.ts": "eb065ea7daffd9dd13522139361493ff85a484ec2a627f1579cb615e836b246f", + "modules/resources/src/common/resource-client-contract.ts": "64896e52605b18e8b8668505a2f279f2ad637826f8651054bc38c8f47831f475", + "modules/resources/src/common/resource-template-icons.ts": "eb122f85ce52d835c036203c3f91555de5ab88057eb79689840f7292102bd98f", + "modules/resources/src/web/application-coincidences/review/ui/application-coincidences-action.tsx": "f5f0953599f505068924539a00a0e9ce368d5888dc78f8902dbb6d43d0531eea", + "modules/resources/src/web/application-coincidences/review/ui/application-coincidences-dialog.tsx": "067813df978c18ff1326eb2c7324568282b3bada67b2a16b608b3920ff3ca6aa", + "modules/resources/src/web/application-coincidences/shared/application-coincidence-keys.ts": "2b003c00325808db25e88e416cce90556a081e8ee14a6a5c58cb2a86cf9a57a6", + "modules/resources/src/web/application-coincidences/shared/application-coincidences-api.ts": "d7854a5b8f1a4a716f0b9e0b140a113d46cd48f581eb06585445e324867ff9f7", + "modules/resources/src/web/application-coincidences/shared/company-application-eligibility.ts": "cab811db22f3c5034ecb433f4e14c079b0ec0c6f9f257fbe6de8f50a66490cbe", + "modules/resources/src/web/application-coincidences/shared/use-application-coincidence-review.ts": "7402b5a3a0bbbd8c4386c7375e7203c47d7709370b985ff7dda118a321dd9fee", + "modules/resources/src/web/application-references/select/ui/resource-application-picker.tsx": "521e1dbf571b29784023749dc7c092d1ae53542afd7665383519daca4eb5ada4", + "modules/resources/src/web/application-references/select/ui/resource-application-select.tsx": "79b4923fe99ee8cedaa8dcdbdadd60a921631ead46cacdc831c644198df3d5f1", + "modules/resources/src/web/application-references/select/ui/software-application-select.tsx": "57caccdc163e90f9c001ae6afe3f3fc2ba89afd3a530795fa1231cf24bbfc05c", + "modules/resources/src/web/application-references/shared/api/application-references-api.ts": "6c3a0811ac882563fa14f166533ce30abd6e18073e4aa1f7eb2b07a91603864c", + "modules/resources/src/web/application-references/shared/helpers/software-reference-href.ts": "021579aebec6dbb0186d5e0cdfb42c39181462b082eb0ac31587874691ed3545", + "modules/resources/src/web/application-references/shared/queries/application-reference-keys.ts": "4751119e189447d39786600fc04ff603a0dc1c37ddf938f52e3c4fa6b60f4166", + "modules/resources/src/web/application-references/shared/queries/use-resource-application-references.ts": "e6f37c806edb0720bb4b6da7f449551f198e2c979ad157d1c017b369b4a23b10", + "modules/resources/src/web/application-references/shared/queries/use-software-references.ts": "d4f99ef36b389db00df93a14b0e51af519f698740a276dc88ef8b40bc5dc71c6", + "modules/resources/src/web/application-references/shared/ui/software-reference-feedback.tsx": "dc92b2dc1eb2dfb291dc72d3e701fab7ca60d51589f5d02c42efb83287aaf286", + "modules/resources/src/web/catalog-fields/create/index.ts": "e3f0067ac1eaa1d5b101c77cec36fe70949d48e4c961bef1b0305b72df62ea0e", + "modules/resources/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx": "f0b826d096a41ce95d900efb24ee4b6b89df0da10d408065e228a2e1eda4ece7", + "modules/resources/src/web/catalog-fields/create/ui/index.ts": "e8b9099ef5430da1636687830192dee91bb043efb7bc8332b9336ebb228b0dc3", + "modules/resources/src/web/catalog-fields/index.ts": "654d30f11fda51aad263314eed301b7e025fbb518e0814a597393f750da22faa", + "modules/resources/src/web/catalog-fields/select/catalog-field-selection.test.tsx": "bb6c0b0249df58dcb7a055b4e1b4361d39d1fd685f746cac21e8faef805b5864", + "modules/resources/src/web/catalog-fields/select/index.ts": "23c63e2739fba81f740406a0d1f59a5a900e8cf088f9b78771ffeba9683740b3", + "modules/resources/src/web/catalog-fields/select/ui/catalog-field-picker-dialog.tsx": "8f45d251a36b0c562eba352c92e57f8c51c48aa2b7da93a766a4cdddfa833341", + "modules/resources/src/web/catalog-fields/select/ui/catalog-field-picker-list.tsx": "14b166a196a93abc472da84707c1b0792428af949ebfaddd827281f525dab18a", + "modules/resources/src/web/catalog-fields/shared/controllers/index.ts": "22834822d620233576b39529f336b9bfe3297209399214922b1bcd30d3c3c402", + "modules/resources/src/web/catalog-fields/shared/controllers/use-catalog-form-controller.ts": "be6da9fdc5dd6dc1c71e3462a85b32626663add6294a172210515820a4c51810", + "modules/resources/src/web/catalog-fields/shared/index.ts": "5df803fdfd3fecce612d8546b49002a65ea7511adc93632c77d30aa408a5fcea", + "modules/resources/src/web/catalog-fields/shared/schemas/catalog-form.schema.ts": "cb4917698e58e02f0878ffd1d7c3876ff33462e6920cfc40b94763a6713f15d7", + "modules/resources/src/web/catalog-fields/shared/schemas/index.ts": "fb4e1ca4a965e95600b4881ff0622c16b5d50b85f70adb768cba6002eca0de21", + "modules/resources/src/web/catalog-fields/shared/types/catalog-form-props.ts": "6ce32ca77311b1a3bba759c64b6b869b94600d96a1661e5f158780c9be902fc5", + "modules/resources/src/web/catalog-fields/shared/types/index.ts": "faae461fe81be5e2a07eab3e28baf0b5637da309980d4050b9f3e7dec2db408c", + "modules/resources/src/web/catalog-fields/shared/ui/catalog-form.tsx": "690e155484f5bcc33e2f0b8d1108e4af6c5aeba651bf6674c638f47a13753555", + "modules/resources/src/web/catalog-fields/shared/ui/index.ts": "f49dbf424f6e56b28dd455ab2b7de488d16980737f5cde6b6e015f6f043a4a07", + "modules/resources/src/web/catalog-templates/create/index.ts": "288c1c4e16965f7a541ab2e18c44b0a598f54306d16e05665f45235ae5716d65", + "modules/resources/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx": "cb467dfffdb46891adca2f4ef9eaabf24a0a778d35e5ec19f31037594eb3393f", + "modules/resources/src/web/catalog-templates/create/ui/index.ts": "745d5e9f4708b742a6d8ccf03e2ff5d59f566c420bdf8fb883f74b31427db260", + "modules/resources/src/web/catalog-templates/index.ts": "88baafbbc822ea4ba968ff3f142bfb6e617b78193feb92cdc5ab0a4103aa11f6", + "modules/resources/src/web/catalog-templates/shared/controllers/index.ts": "3347224fcce1ad878f0a05f31a323f3e9e40a536cb7e52602f2ebc426a1cdda2", + "modules/resources/src/web/catalog-templates/shared/controllers/use-catalog-template-form-controller.ts": "c849a209b8995ce924acd12f569b0bcc5dbc594b2da2f0a3171438b87017bc0a", + "modules/resources/src/web/catalog-templates/shared/helpers/append-template-fields.ts": "1ad86ab610c5137275f88ad92616a2890a3da7b6c2728707bc32b8082bcafb08", + "modules/resources/src/web/catalog-templates/shared/helpers/catalog-template-form-values.ts": "44ba400e71bb77907d70f9852abe730726af9ba407b2bc74582e8286e73b9da5", + "modules/resources/src/web/catalog-templates/shared/helpers/index.ts": "9e81e679d74ea5bc6d5936e4738420020f1445158b1f7eaeb2b5e7c433d3f343", + "modules/resources/src/web/catalog-templates/shared/index.ts": "4329204b4905787dd9ed703140f34e7bff687aec7f117ed7d8859289cc65c71d", + "modules/resources/src/web/catalog-templates/shared/schemas/catalog-template-form.schema.ts": "024ddb59b43b30b3fe5e179de26a107580bda0c409f4181fc4717fd02cbadd94", + "modules/resources/src/web/catalog-templates/shared/schemas/index.ts": "937ce68c5e517519b57c81391142f72bbbab8226c0db66929b02783e637a83d2", + "modules/resources/src/web/catalog-templates/shared/types/catalog-template-form-props.ts": "2fea65ad3a6db0b398e6cb884df5f10c963a518cce41778be9cce22b3c99cc4c", + "modules/resources/src/web/catalog-templates/shared/types/index.ts": "688e75ee1028c8c8b088dc1624d095e65904457095a374e8e9c4a0850b8084b7", + "modules/resources/src/web/catalog-templates/shared/ui/catalog-template-form.tsx": "7bdfa9859a42d3ad8ac81e59bcba8f5c4b565d0a7bf41b1e185febf532680583", + "modules/resources/src/web/catalog-templates/shared/ui/index.ts": "afbde0b015102fcac34d8f82a43a40bfae2cea7d6f9bb84c84e5f6619ea8f770", + "modules/resources/src/web/catalog-templates/shared/ui/resource-template-icon.tsx": "a7f7d27b8d3f5c63fd66724e4a879faa3e05c1e91868956275d77f8e3b3ff196", + "modules/resources/src/web/catalog/detail/index.ts": "f2c6bd8f819c7bc0bfb54309b997792bf2dd97f16451d6dc97e694386e490123", + "modules/resources/src/web/catalog/detail/ui/catalog-definition-dialog.tsx": "e279a031f4d41331ed7c7a5df84731c92936be4420e2c8057f1fc52af08e6f92", + "modules/resources/src/web/catalog/detail/ui/index.ts": "40895f6b3d31b0837606ff7eb10c2e41fa9fbac9d87d16ce02f66b529dbe11e8", + "modules/resources/src/web/catalog/index.ts": "d90f3c2d7bcf932b39b309a43a87084c2ee35b24f651b588657193c32c3e7231", + "modules/resources/src/web/catalog/list/controllers/index.ts": "4f61f556411ab48589a0993b153ec6247d3a8317f3873fd3ce397cad482a9235", + "modules/resources/src/web/catalog/list/controllers/use-catalog-page-controller.ts": "9fce5f88e33d0e33453327f12244f79ca530f3f6aff0cc92f862921cde4d5c7c", + "modules/resources/src/web/catalog/list/index.ts": "da95128c940043dd3830e48326f58ecf7e8891f867e5e39f6ea418f793452806", + "modules/resources/src/web/catalog/list/types/catalog-page-props.ts": "f6c35d213e357a35167e6c7d889dd2bb59be562f57e01a80259cd06ead596dd1", + "modules/resources/src/web/catalog/list/types/index.ts": "ba22025accdfbff87f047df9784348c35474d1db6a787a6638429c0cf8f71840", + "modules/resources/src/web/catalog/list/ui/catalog-cell.tsx": "888711d1c141f1df09cb276d459d0f150c684b6273ab7198c206e6b4bc2655a4", + "modules/resources/src/web/catalog/list/ui/catalog-page.tsx": "50235a14dc255632f5d9455dcfc7e02f11004713ee8c3881c87fc13eea47d9a9", + "modules/resources/src/web/catalog/list/ui/catalog-row-actions.tsx": "b7aa6de356784a0cd40ab0a71ecdf74851ad0387bcec4299c5852ecb509779ff", + "modules/resources/src/web/catalog/list/ui/index.ts": "aa96a81b93754998aabb0c9128d608b7e20e98e16e281d70f62e6f330edc2937", + "modules/resources/src/web/catalog/shared/api/catalog-api.ts": "c73140258bb451ceb6aab2d870ddc323bd8a2680abbd60a369c7c805049d8361", + "modules/resources/src/web/catalog/shared/api/index.ts": "892276ead9d71830f2b1bfc063695cd331d1000def64adc75b5895cb999e9e03", + "modules/resources/src/web/catalog/shared/catalog.test.tsx": "892ca17932b2503f8d9b65355698fb273f7e4d68ddfeec2448bd619391ec087f", + "modules/resources/src/web/catalog/shared/controllers/index.ts": "c3215bd06b5240d15b2bc1af618d35a74b2b4ece2dde68e8502abf20f06d1077", + "modules/resources/src/web/catalog/shared/controllers/use-catalog-save.ts": "e065ff20cc1a43092364cb7d6901ad5f9e2cdc4309a9f74cea1c0557d75eecd5", + "modules/resources/src/web/catalog/shared/index.ts": "cda5b58dd8fde847d110f50329807d8b70307d1d095e47779acb3cc14093886a", + "modules/resources/src/web/catalog/shared/ui/catalog-editor-dialog.tsx": "b866646956ac50ab031326ba343727a7ff32b4d8921f1b2c83f7a5bf4940b2dd", + "modules/resources/src/web/catalog/shared/ui/catalog-error.tsx": "7a60c197bb07d2b567a4e256f4a1905faf73172b048d7f85e724a7f689875adf", + "modules/resources/src/web/catalog/shared/ui/catalog-help.tsx": "43267468d572db3657fbfa99b96d0a07b55d7c81f946993c8282f11e8bb654cd", + "modules/resources/src/web/catalog/shared/ui/catalog-name.tsx": "e3b717374234e3d1bcf6132789f648459d697a06b074f8dad857093d929e068c", + "modules/resources/src/web/catalog/shared/ui/index.ts": "483a2d11a512b9ca8bb651455699126d0cee1453065db17e2b1502536bc3f159", + "modules/resources/src/web/global-applications/detail/ui/global-application-administration.tsx": "ddc1fe8c72f0d59f81e7b9c5b51dcbda7fea1cd023af7c9c45ff7b6defd0203a", + "modules/resources/src/web/global-applications/detail/ui/global-application-detail.tsx": "b5f5f568d31f7333054f16e79c6887f0593984138d57122279b50a9fd3ce43c3", + "modules/resources/src/web/global-applications/detail/ui/global-application-history.tsx": "6259597a4e67a20f5e23f0fe2e6a789fafe98a324b71bd4b38fecce630e191a3", + "modules/resources/src/web/global-applications/list/controllers/use-global-applications-list-controller.ts": "3a69cf5a197ee0310a424b415bee56a6091007574b42bf85faf37a750df6f725", + "modules/resources/src/web/global-applications/list/ui/global-applications-list.tsx": "5a5c280159e11acb9b2a59d5e98d5839efdc5f9e977e72b32dd04ba91ee6dc50", + "modules/resources/src/web/global-applications/list/ui/global-applications-page.tsx": "12177cf2f4b70c804218f63e8f98740362d2ce8348519189e590dcbc2ea98cf0", + "modules/resources/src/web/global-applications/shared/api/global-applications-api.ts": "a212b9353c6d8be97add0128c212fb37fa6c3bde0a583ab429d45d2da95209f8", + "modules/resources/src/web/global-applications/shared/controllers/use-global-administration-failure.ts": "6bb7d2604ec304d2037dd6b295f475ad31f9bc136bd07f933b6264d75821d4e0", + "modules/resources/src/web/global-applications/shared/controllers/use-global-applications-access.ts": "f704e5a297f48e0b95b95d24f63c18b7b1d4759ae4ab09474a22bc7ab93809e2", + "modules/resources/src/web/global-applications/shared/controllers/use-global-resource-editor.ts": "4b614560c07a5fb2946b29d058f1e8255c1c4c944530b2910872beb34b1d00bb", + "modules/resources/src/web/global-applications/shared/controllers/use-global-resource-form.ts": "4c0883949f7118105a24c524c6070fa1f6297f2d31a4a7094771ec29820bf537", + "modules/resources/src/web/global-applications/shared/global-applications.test.tsx": "e8ac176a19df8a7f5e4721b9c34cd690ef375bf6db070412dc87010c618c38bc", + "modules/resources/src/web/global-applications/shared/global-software-catalog-context.tsx": "6aded3784c19bceb3d0d0fa603ac6d568f7b810c0adbaf8ab372e61651db885b", + "modules/resources/src/web/global-applications/shared/queries/global-applications-keys.ts": "0a92a062764ba142a4af2265008304da77614e83fc281f9ebe9247dbb3f93218", + "modules/resources/src/web/global-applications/shared/ui/global-application-coincidences.tsx": "606274d05cfdcec3033476d5089d913a25be9d5ca2141f7140d8b256db7ffa24", + "modules/resources/src/web/global-applications/shared/ui/global-application-editor-dialog.tsx": "ec1bb619915498418bee344def0ccd0facfceee472da42d0f912c1d1b416eaac", + "modules/resources/src/web/global-applications/shared/ui/global-application-feedback.tsx": "ef2f12a4c87dace3cbf1e5406a869fe28dde0c09ce1fc05a1a1d21876bf4bdfd", + "modules/resources/src/web/global-applications/shared/ui/global-application-form.tsx": "a6bdc4b08b1fba2ed8c09dabccb08e49fc6031b178a88052addbb363385676ee", + "modules/resources/src/web/global-applications/shared/ui/global-application-values.tsx": "7e766d80e3e781fefd48a8dbd90f11e7498b745abfa9efec4f14385f0035472c", + "modules/resources/src/web/global-operating-systems/list/ui/global-operating-systems-page.tsx": "f0682b97ceb0a0de2bf758830637d29f6dd1849fe59916025f05924c6b3a7cd7", + "modules/resources/src/web/global-operating-systems/shared/helpers/operating-system-form-identity.ts": "924d4f5d0d7f0fd47b2d9309573aab3b8d181ed7bb31ac8b8b469c917266093b", + "modules/resources/src/web/global-operating-systems/shared/helpers/operating-system-specification-labels.ts": "2a0f39d88cfaa134cbcf9c47155cf4c851d1b614254e8796a9bce64ffa4e990c", + "modules/resources/src/web/global-operating-systems/shared/ui/operating-system-identity-review.tsx": "faea573673b1d3f94053a90db53b72495cf1bbaf929cc61286440156a9825fb6", + "modules/resources/src/web/global-operating-systems/shared/ui/operating-system-product-fields.tsx": "ed6a53c4e375afae9346011f946b0e22ecadd74d1414973e2d42ea8b553b33a9", + "modules/resources/src/web/index.ts": "87b3465db2dd27a23b783e587e32c72cdf480a16541b0431a5538471d44f5607", + "modules/resources/src/web/resources/create/ui/resource-create-progress.tsx": "f4b427da391e5aa0d06467299f0c3c391d86fcd7b2870559d94cc49d7dbe753f", + "modules/resources/src/web/resources/detail/helpers/index.ts": "3e19203e99a55b981c2e4d2fa160d1b95ba194a266a97de424aaea6f9b6e2441", + "modules/resources/src/web/resources/detail/helpers/integration-reference-name.ts": "b186f16099d7bf593a7e13e40626da7ba9b1f3775e6262e18698d78760aeed82", + "modules/resources/src/web/resources/detail/index.ts": "2e9ff43d71b0be05b77d99bc33ae727a447d454d367402e96d6a5e6554e49e2d", + "modules/resources/src/web/resources/detail/ui/index.ts": "29abbafa551ac671f939fb369e847cad7fc203050d7439c2772d1d920903b493", + "modules/resources/src/web/resources/detail/ui/integration-summary.tsx": "106f6315b8f466c9d8e333de6d8a6305ec76fabbe60ccc88894c4ea0825be0b0", + "modules/resources/src/web/resources/detail/ui/network-share-address.tsx": "b82acf5fd2c4498ae7c1f8a95e19b373cddd1e10cc1f00767df03df3976742e2", + "modules/resources/src/web/resources/detail/ui/resource-detail-dialog.tsx": "5daa32725d91a26c61cc4871347625f9e831c92046c67111a176dc5461a326c7", + "modules/resources/src/web/resources/detail/ui/resource-detail.tsx": "3c3273b281cf5a52a5ec253c8fc870ad6cf6195e8c37ff1b2456aef6bf8587d9", + "modules/resources/src/web/resources/detail/ui/resource-selection-panel.tsx": "6bbffb1981913e0180c9944ff2fd13303bb480fe9eeb76abe1eba467df492913", + "modules/resources/src/web/resources/index.ts": "d5879146f55c137e78a4a7a71dc086af7c335a59fcedcfa480e4ba61c32f8ea5", + "modules/resources/src/web/resources/lifecycle/ui/delete-resource-dialog.tsx": "592e2c48e2497615d1a0b74820b774235269ccbc6944c4aba44d427ae8071dff", + "modules/resources/src/web/resources/list/controllers/index.ts": "33e27b4519b612dd7d2837f2254ee65970651f9ca242df9f04f646c47fc15610", + "modules/resources/src/web/resources/list/controllers/use-company-applications-controller.ts": "050abdeb0f351ba85ea001ad94a450fc174d0d6d0c871da41949fee1732620a3", + "modules/resources/src/web/resources/list/controllers/use-resources-page-controller.ts": "10d3101bbad439537af0fb6195e199484641d2a9bc59d50a1ddc29044ebe285c", + "modules/resources/src/web/resources/list/helpers/resource-detail-budget.ts": "6a313d72aeb130d44463ecef0077a5779c5714224fde6d759634138b5136a62a", + "modules/resources/src/web/resources/list/helpers/resource-list-query-state.ts": "bc5f58694d1bd887aa276d138b81eb28d795aa285e3a1db11180a6b037994141", + "modules/resources/src/web/resources/list/index.ts": "5213b104ff65383c207971e475269d5e5a20486b42eb7e6fe0f2fc3b55154ad7", + "modules/resources/src/web/resources/list/types/index.ts": "ff85e3468d65e6197472b9f5ffb48d60ca96671642d151cd9919c03c07767455", + "modules/resources/src/web/resources/list/types/resources-page-props.ts": "9a7a59f5f93fb30b6e60df70f391c9d10082149b8480bb43e9848cf7d00da5d0", + "modules/resources/src/web/resources/list/ui/company-applications-list.tsx": "73dced13ad6d1adaff9d10a1b8ad78a402e3b69fd54230d7c13c2a2353123660", + "modules/resources/src/web/resources/list/ui/index.ts": "5703721ac704b9caa72a5a184b17b7da1e1459c474e1a9abede71718bbbb5858", + "modules/resources/src/web/resources/list/ui/resource-inventory-table.tsx": "de3d16f1df8dd869a1e692be3e35a23927475c5efdd5ec88aa1a651783052400", + "modules/resources/src/web/resources/list/ui/resources-page.tsx": "d87fa2506625f88da5fdb42b79d046f06620e1e98cf278c28f55d87eae06d528", + "modules/resources/src/web/resources/shared/api/index.ts": "70face5efe1939f220b7f7207fcd8c8b6276ceec94b4fc0beaa4482037353039", + "modules/resources/src/web/resources/shared/api/inventory-api.ts": "450bd6ba1dcf929e97730cb8e65901086c110bd4102ee20f25978c5a9b55d694", + "modules/resources/src/web/resources/shared/api/resource-related-query-keys.ts": "208ca2bbe7075ffd71b017b92a4dcf36cf07766419830a30d773b4b23723eedc", + "modules/resources/src/web/resources/shared/controllers/index.ts": "32379153a3ac56b65397df86559a746bb93d5311974e6a8baf5f051a9eadc2a3", + "modules/resources/src/web/resources/shared/controllers/use-resource-editor-controller.ts": "2ea28193e33328dbfffa205a322b04ece64d55d9563a4c07785e609f393c8a08", + "modules/resources/src/web/resources/shared/controllers/use-resource-form-controller.ts": "85f4e344a0b294276626d57824179276154dec0aa757d474f891d81b08f36680", + "modules/resources/src/web/resources/shared/helpers/index.ts": "1858b76cf0b1588321d47ce5c2fe02e55bfe0e5d3e34b458f8c30a340c74f524", + "modules/resources/src/web/resources/shared/helpers/resource-form-values.ts": "ba72080fcfee5e9d267d1ee285de961091eb152ff24f6a8ca2c5df7148c08aa2", + "modules/resources/src/web/resources/shared/helpers/resource-integration-values.ts": "2b4cf5856d317fe29c968fbdf1b02f8331189d2b0deebbe22eedcad506ac7a98", + "modules/resources/src/web/resources/shared/index.ts": "8de6c54045bbc184957782ecf5a30506a61f2adf0bbc267a8551f2a1e04e9e8d", + "modules/resources/src/web/resources/shared/resource-values.test.ts": "18a173d032e58b518da78f40bfc18db7d110cafcdfcbf2e67e198090228c9661", + "modules/resources/src/web/resources/shared/resources.test.tsx": "a8662ab76156717aa2d6a8285109762203571cba9e6c0da8795a7e2ed177aaba", + "modules/resources/src/web/resources/shared/types/index.ts": "ba5511ce55608b2d1384c4a0190231fee5541e39c50abe3f1026a802d1ad6aa4", + "modules/resources/src/web/resources/shared/types/resource-editor-props.ts": "7168359a8d2f8ddc813011e9f28dfa31913bba6370e3dd3e65bde9e119957108", + "modules/resources/src/web/resources/shared/types/resource-form-props.ts": "66ad516a26c6785cd285cb3bfdf9d5704b5e1b3dea6dae17b231af3622c19c8c", + "modules/resources/src/web/resources/shared/ui/index.ts": "89a04cad5bad967f49d1ee402aadd2359d4dfbd27e569cc215f8bfeb0f2bcf19", + "modules/resources/src/web/resources/shared/ui/resource-characteristic-control.test.tsx": "f2ba4f597ae08424eca4d8365e74f15556b07036c0b7ce6f9d7dc3b3ee5b62c3", + "modules/resources/src/web/resources/shared/ui/resource-characteristic-control.tsx": "eea0d773240dc35a9eb406e885e1778e874032e1f12e28522e8b0fe22c1a7397", + "modules/resources/src/web/resources/shared/ui/resource-editor-dialog.tsx": "624808adc57d3d97211e9bf28d463b1cad8523b4b72e79983644bced4d06b51c", + "modules/resources/src/web/resources/shared/ui/resource-editor.tsx": "e043f03e34321690f1c04a5a68d4800b58d1bd3c14a4e750df127fc5304906d3", + "modules/resources/src/web/resources/shared/ui/resource-fields.tsx": "03836e1560838496debb4139d56e51a2b5da3821ad61362e334698da7363ddaf", + "modules/resources/src/web/resources/shared/ui/resource-form-actions.tsx": "853c9beaadae442681d3c38451af019faa4d62882581226f153fcd3e6bc8c0ec", + "modules/resources/src/web/resources/shared/ui/resource-form.tsx": "4496832cf76bb39221edb4c7e1e76e9c8a3665e560e2c30744272d31ed191094", + "modules/resources/src/web/resources/shared/ui/resource-identity-fields.tsx": "ea0952af1feaa883368bb33291c5bfb69755c3e7b5426852622c7079b67ad604", + "modules/resources/src/web/resources/shared/ui/resource-integration-fields.tsx": "afc296ecbc6465f1674419c5f8b7e258fd0af55d1277f4c1301157e9b980618c", + "modules/resources/src/web/shared/i18n.ts": "5b01160f42cee6a247f1acb4944ee64237be7319eeeee198ef7217b20c6cc39b", + "modules/resources/src/web/shared/index.ts": "38e54b5c12a7296a7e17d2971417b0e65d5dfd71b62ad3249024eb76e4dbf43e", + "modules/resources/src/web/shared/ui/index.ts": "8b0761798c1a86e309a5e4d1872b9d0598c2e5cc88f3e8cf497fab04a72f0b7f", + "modules/resources/src/web/shared/ui/inventory-feedback.tsx": "657d350742d4978b38f5c00aaa2492a2b35da0e906e8374904c1f3b62c43e647", + "packages/rdx-ui/src/column-browser-fixture.tsx": "f2fccdf918f6cc723d6a97c3a1fa89af4cbb4e48c46108e6bc5aa84cbc0d46fc", + "packages/rdx-ui/src/compact-collections.test.tsx": "5d0999c725f22c38ace1011eb0df75dbe46da91764b8c76836ac4b9c6b421117", + "packages/rdx-ui/src/components/button-group.tsx": "acce2571d0f316620d1cdf074b4fffb12735db49bd0904f834aba4deeeb0cfc3", + "packages/rdx-ui/src/components/collection-preview.tsx": "388178b448ec046ec62a696f422c9073f64ec8737a6c83283f5ce73aad844da0", + "packages/rdx-ui/src/components/compact-list-item.tsx": "d9c3b4db1a612edc448ad8017c1db591f9e247d2c2084625715f8d89bb88876e", + "packages/rdx-ui/src/components/compact-list.tsx": "a97cfd92b696cc9e95fe1c1f3b5be7261b757ec34e07e709d4e3546fd1f6a574", + "packages/rdx-ui/src/components/compact-table.tsx": "adced5a8e7f8b199401aebfc7a6c241848a7958c574a6a6e2a5f6d3a7275fa6c", + "packages/rdx-ui/src/components/confirm-delete-dialog.tsx": "3a1219d6f785e31eab0fbadbc58bb61d25a86365d6dd057c57782bf727c29030", + "packages/rdx-ui/src/components/context-help-content.tsx": "e35747133b6916ec0e4cd146c78328f603ab1fe33b0acf2c4bcfbdb40cb0808d", + "packages/rdx-ui/src/components/context-help.tsx": "43e3290e5b9234e7048c09c61e59057e5c8cbf341336686489a822d31196b532", + "packages/rdx-ui/src/components/count-badge.tsx": "5991b486a97f60e487f9ca4ecaf74fc1d14866b1e3c5bf48ab4dbf89727d1747", + "packages/rdx-ui/src/components/cursor-entity-table.tsx": "6505c4f913b639038a71b41b169cd2382583359585795ac32fbbcfb4c92f25e7", + "packages/rdx-ui/src/components/cursor-pagination.tsx": "08463b405a7efa44f47647061d10de79396dc396b343d5ac5e1664b7ec8b54fc", + "packages/rdx-ui/src/components/detail-field.tsx": "c754ab213cd386586870dd92ce80cb7d85d2c520ed3c346983eab5424a0b5725", + "packages/rdx-ui/src/components/detail-panel.tsx": "956252be90ce2658e67050a8204049297fd1622a419de0f9b44388d8b350b9e1", + "packages/rdx-ui/src/components/detail-section.tsx": "e3d2a52c192364aca453215b43ba13ea08e6f34de71610ce53d3063db53234f5", + "packages/rdx-ui/src/components/dialog-help.tsx": "8ce47407cc613512ec881164b422d5d932213b4e64b556434281aa0559eed8c9", + "packages/rdx-ui/src/components/empty-state.tsx": "e6114d1e0fbc1fdc1f3ee4c44b97f425bbb5d504ddaa52e78766ad2177a9911a", + "packages/rdx-ui/src/components/entity-list-controls.tsx": "ad7de9253c7bc451a2576f1e464445d52a3682a1635d07dd68082fff6ae25ed0", + "packages/rdx-ui/src/components/entity-list-status.tsx": "5ea35a9a8043d0a5795ef14f1c4fd8154198b2e5430d8e8b6e633d5427f8e773", + "packages/rdx-ui/src/components/entity-list.tsx": "736f2c5de5a2b6608fd777bdb2ce13d1d6dc38ec001beddee5e7458a4eb25bd4", + "packages/rdx-ui/src/components/entity-row-actions.tsx": "56be7c957b59c9045148e921a30de36a2bea06ecd7cac8eef1be9dc22c71c2dd", + "packages/rdx-ui/src/components/entity-table-columns-dialog.tsx": "5d9197989d5b1fa77cc4f160eb596f0fedb4685623be8eef94b4f2c957d8dca4", + "packages/rdx-ui/src/components/entity-table-configuration.tsx": "f1da2b5372ebfdffe2ca1e6af3ff1a6cf49fb6a69f805b985067a894f3ed1efa", + "packages/rdx-ui/src/components/entity-table-content.tsx": "f11eb48df669011fc8e536a2f2889c09f848e0f615951ce178c65c944b9197ae", + "packages/rdx-ui/src/components/entity-table-skeleton.tsx": "d045c95cd7928114bb5d8757063d44de490d51c5368a7046bf843c77c7d36a38", + "packages/rdx-ui/src/components/field-help.tsx": "88b5f219cb7170ad499f29c673c9cce320df986b15d63ac0031b72d4c705291e", + "packages/rdx-ui/src/components/field-picker-dialog.tsx": "aa3d1bf86d57e199c7e658e31074bb1a8d62a393a99ce7edade0a07519d078c8", + "packages/rdx-ui/src/components/field-picker-list.tsx": "f22b78cf4d23830421a515b00aaf90263f36fbf55bd79a59c508a6bb02939ede", + "packages/rdx-ui/src/components/field-sections.tsx": "b4e235f180b805ded158b2f5026581bd125f4e6448a9d72cd30b5e5311807cf0", + "packages/rdx-ui/src/components/form-dialog.tsx": "70bbef5fc87786840596e8f8dceeb7076c7fec4d18522b07cb01ccc50af1bd1b", + "packages/rdx-ui/src/components/form-help.tsx": "309817a3227d56ab9c2e15c1a584fd3637006bb9c74eaa4f308b9dcaa47875ba", + "packages/rdx-ui/src/components/form-label.tsx": "45323a102da1ef299dd168233b4a5cad595d2a7696a3ea62c33047e0908b9464", + "packages/rdx-ui/src/components/form-progress.tsx": "301a1bd00e3dc161f6c3a62e6e3a586e7796ad2686d1762067774f66298192cd", + "packages/rdx-ui/src/components/form-section-title.tsx": "d91ffae3904f29682eef7b3884b8d7a9ce2c161baa5090139e8c919d0b3e25ce", + "packages/rdx-ui/src/components/form-section.tsx": "16534983713e88d1e7648fb9d297e8b0abb264868091ca7fed5796db12a4153f", + "packages/rdx-ui/src/components/form-step-actions.tsx": "4b8cc82953384787ee135bbee0fe209f18afd08d07466a6c741aac22dc28be9a", + "packages/rdx-ui/src/components/icon-picker.tsx": "5d9097deb3bceac069d7cd4e55c7a4db0f6a8c1b6a32ac49ef4ea72e7c3fca2f", + "packages/rdx-ui/src/components/option-picker-dialog.tsx": "17e7b2c4b20cfeef0c5e905e2063a3b23b2a2d7d9d43427e22c2cec0197ed650", + "packages/rdx-ui/src/components/option-picker-list.tsx": "aef16c7eab3041496f12389a8e28ef54b7e627dfd6bd6994a724e4050d8b044f", + "packages/rdx-ui/src/components/option-selection-field.tsx": "668654d70a88414d37f0f19aa5ef56a403f9556b6fadb67a7a1db44f9ec010ef", + "packages/rdx-ui/src/components/phone-link.tsx": "bf64e76037bec0c15791ccb20339dee2cf590c862c576fe36877c7e1ac1c96f7", + "packages/rdx-ui/src/components/picker-help.tsx": "8f7f62a5363f316755628cdf5abb62efc22c7041be3efc6468ccf3b151c729e9", + "packages/rdx-ui/src/components/remote-option-list.tsx": "547f222774ed54f53e02e056f2ba64d9bf3a8c70d2c09bfef358385c5b33a270", + "packages/rdx-ui/src/components/remote-option-picker.tsx": "3589416dfe803bc8597afd491b6a2d61ebd97dbfb199e19bfa4085da222651d2", + "packages/rdx-ui/src/components/reorder-drop-indicator.tsx": "9baf4bb7b0a3be24c3b1ee9119e884915fb161d797aa27e541f93d6971aa44b0", + "packages/rdx-ui/src/components/reorder-handle.tsx": "f4e7c8d0813c260c252894086e79c3bdb6402dc52689c82a31e5206bb9f1df5c", + "packages/rdx-ui/src/components/required-indicator.tsx": "3a1ac1c1132c3d811d98f5635a6b8b78f4213463591e69e2a27f22d21b5321f8", + "packages/rdx-ui/src/components/scrollable-tabs-list.tsx": "cac5ebbd6f4d5ea69764b8455805e976d7709639e0941b77f64e6a226766a05f", + "packages/rdx-ui/src/components/select-with-action.tsx": "a56d678fe4f78fc69c9d42e912e65151bbdd3033c20e7f4bf08dff7ac9f70475", + "packages/rdx-ui/src/components/selection-panel.tsx": "ccca1be4eabec1b7cf331f75e7a5fc07358ff0bd9d6399d2839f80269f18bee0", + "packages/rdx-ui/src/components/selection-summary-card.tsx": "fb53ca33834cf446fad2ae0b06541878fa0e6f1207a815a227ba9680f1b62f4a", + "packages/rdx-ui/src/components/separator.tsx": "3b8a84a8e750ab74102d4dede57d6726f38d08ce0cc3ee6e0bd289a604d16df9", + "packages/rdx-ui/src/components/statistic-card.tsx": "8ffbd8db581afee462d784407b43d061a2bf500f944537f7e09bf8956998eace", + "packages/rdx-ui/src/components/switch-field.tsx": "2b2eb42788bb495153bd57d3177d6d9a5496cfebdf67f98b2a45751a651674ec", + "packages/rdx-ui/src/components/tabbed-field-sections.tsx": "eee65c29d16c9e050ef212aa3aefb0999de796bb617592c5a61a678649d3438a", + "packages/rdx-ui/src/components/template-field-summary.tsx": "09129a10a77477cd711a70a8aef7ed67ac42c8749b5fe9b3da0d5a119c60a20b", + "packages/rdx-ui/src/components/template-metadata-section.tsx": "57ec708e2869041751e31d85d34128955f06b7a68ac9e8a66d27217ccb19b12e", + "packages/rdx-ui/src/components/template-section-editor.tsx": "c78fa5a1af320e5901f061002f91a0412a1fa609eaf59720e9b387272903f43a", + "packages/rdx-ui/src/components/template-section-fields.tsx": "f082f8e18a9884db3b1c02f54acc93af5230996ce19bcdb003ed6826dfc1f77a", + "packages/rdx-ui/src/components/template-sections-editor.tsx": "fe7eda29a1cdb9338450390625f3c9e8e6ac5f52c3c5bf03344ae87fdfea1eb5", + "packages/rdx-ui/src/components/time-line.tsx": "497dbd91fb751f8c357a6a9eb45738c0e226e28882f9c526fa972d69b749904f", + "packages/rdx-ui/src/count-badge.test.tsx": "a2a93bc4ed2f38b625d06410e88eebfbbe4017807d505a0846049ca2f47acc4e", + "packages/rdx-ui/src/dialog-help.test.tsx": "aa41918508f75288ea793cf79578bc32230fd395e635b451ff5553615f57945b", + "packages/rdx-ui/src/entity-column-visibility.test.tsx": "95aa7c35e5f70f8d61cd1ae5e08edfb591d24c3d85466d7eba4cdf2a4f3e3145", + "packages/rdx-ui/src/entity-list.test.tsx": "4175b38f02b27c217d155d1b7e9732966cca87a376499e4bbbc7088412f577bd", + "packages/rdx-ui/src/field-sections.test.tsx": "adfc2faf3ddcd356689e72285ba6eef51360aa81d594431d387cdb0d109cc291", + "packages/rdx-ui/src/hooks/use-compact-detail.ts": "c492fccd698588fea52bbcb4d73dd567a435918689f31f4272f4a42454910ef0", + "packages/rdx-ui/src/hooks/use-contextual-detail.ts": "6e2ef5c1407a7548957566569306c1236d08977fcc351fab41e538bd18466d7b", + "packages/rdx-ui/src/hooks/use-dialog-help-layout.ts": "9074d994a0823e71f098ceac34cb0198694c92f00f971ee2349507f2fbb73b04", + "packages/rdx-ui/src/hooks/use-drag-reorder.ts": "5bf48894f6d68de2854425734d32b55198ec4659e6f787c6a9e493e73543433b", + "packages/rdx-ui/src/hooks/use-entity-table.ts": "b2310c374f46dcf8cd0428ba615c73cfa3e4d5bf51e1e686ee20efd06198d6d4", + "packages/rdx-ui/src/hooks/use-field-picker-controller.ts": "513de074d71baa62f63db1eb9cb755c1ead369f11c0a33b1d53470e65279a3a2", + "packages/rdx-ui/src/hooks/use-scrollable-tabs.ts": "ed9da6ae927a9cee518b6c0afdd49f1362f827908758c1d9dd170b6cecf1a76a", + "packages/rdx-ui/src/lib/characteristics-summary.ts": "10733360ae81adf3b717daf204adc98b445d23307e7b900652283404d51dc1bf", + "packages/rdx-ui/src/lib/collection-cell-content.ts": "a66498cc13ba746ea36fdcc0a252fb8561ae6dc146ca5bf50fafedef2ff2cdc6", + "packages/rdx-ui/src/lib/contextual-detail-layout.ts": "62497dc7682764b85d4522a83c04464bde3774affb2f2c81df0c68d8909e2d3c", + "packages/rdx-ui/src/lib/dialog-help-context.ts": "3d998c3c373557383a6dc2303019ef91ae8f283bbfbd431318f7951bdd060df3", + "packages/rdx-ui/src/lib/dialog-help-presentation.ts": "ff32886f12efd00a4b3adc727d9083913a51f7074714c412b5cdeabfc945d177", + "packages/rdx-ui/src/lib/entity-column-configuration.ts": "5e89e093e4fb45b51225e248d496f7b86cb3d99f18a3dfb5fa8bc210c7ed07e0", + "packages/rdx-ui/src/lib/entity-column-visibility-storage.ts": "aa8ace3c784afec0465f415e8dd8ee9ef57064ba41ba65f119941d0ad2bef697", + "packages/rdx-ui/src/lib/entity-list-state.ts": "bbb4390807b3a31b69abbcd1e9487c01b2b6eb5c50009e37f27e2cc9027ce85c", + "packages/rdx-ui/src/lib/entity-list.ts": "627038812cccbb9014b6a47607df2968b3327b654b3d2a28707e40dbd468d181", + "packages/rdx-ui/src/lib/entity-selection-row.ts": "4c28aa31df542ef03ad8786c2cc26620784bcd8ee4a05d270fd25f17abd5c0b9", + "packages/rdx-ui/src/lib/entity-table-navigation.ts": "806bbee69d23d825079adfa6f4c8216b4ce9649782bfcbaea087312f3fc152cb", + "packages/rdx-ui/src/lib/field-help.ts": "5ae76259d7d09cf926ddfa67383e15f267401b821e874819abe72051f4e88d76", + "packages/rdx-ui/src/lib/icons.ts": "579bd4c45c03955f3fb65affcb77aa2b23e32bd3405bfbd09500f286ce3d757a", + "packages/rdx-ui/src/lib/reorder-items.test.ts": "776a2ef5d9328c7e05cc5c55dab237a9624c3b58c17028fdac2069c974776263", + "packages/rdx-ui/src/lib/reorder-items.ts": "5584c2bfa102c27f710a6cddbf6bb5789934cf5c056b5a3752420da2c7144d10", + "packages/rdx-ui/src/lib/template-sections.ts": "7f27a6a4ef480298fccb3c666f18f2068da22cee10b815d8373bbd6f2a6dd223", + "packages/rdx-ui/src/lib/text-search.test.ts": "4b330d388edeffb50ff34ffd5d5eb4910319450434627eac5dcbddfd629876cc", + "packages/rdx-ui/src/lib/text-search.ts": "54518bc62d84f11e6019e8f4fca9f87b3444cef92847f0d6f9ff1a972ec67234", + "packages/rdx-ui/src/locales/en.json": "3590b7ac6df108c93778ed96227d18bc2b1e316254d98f39cd546ec80237c8a3", + "packages/rdx-ui/src/locales/es.json": "4a848605d603eb5b66bf8b07dcb669bccf875fd7c429e6787a02b87f29728c73", + "packages/rdx-ui/src/phone-link.test.tsx": "c0799aab659017b805100ce32417cfe65fd1099abccc03f779bfb72118506a8d", + "packages/rdx-ui/src/picker-browser-fixture.tsx": "fb93f4fe27ce8cb4c0835e1e143f85c752707c07da09399b8c66a972e980c669", + "packages/rdx-ui/src/remote-option-list.test.tsx": "58c015b6a8a3d7e7e508efb62d9388f988b9d49dbbb9d3d7c78858b8432197fe", + "packages/rdx-ui/src/scrollable-tabs.test.tsx": "72afc695e953f32c7278f4f2390b88ef2d01b5ac203ed9a89d2e5f2aaa9dcfc1", + "packages/rdx-ui/src/select-with-action.test.tsx": "b3c1607f2a8c90bb33afd241f5d8d39bf56bf43c117fc41a6bbaa2afa3a7e261", + "packages/rdx-ui/src/selection-components.test.tsx": "53a858024e13c11e1c58fe20c08a60eae08483e04b530b81af0088bc6c3175f1", + "packages/rdx-ui/src/time-line.test.tsx": "d68b87f4379368bf37012e161a2ba29a6e92a91b7d31f468215fa67e61a02d84" + } +} diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/assets-types.log b/.artifacts/resources-global-operating-systems-unblock/technical/assets-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/assets-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/assets.log b/.artifacts/resources-global-operating-systems-unblock/technical/assets.log new file mode 100644 index 00000000..e7a17693 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/assets.log @@ -0,0 +1,38 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/asset-catalog.test.ts src/api/domain/asset.test.ts src/api/domain/asset-template-propagation.test.ts src/api/domain/infrastructure.test.ts src/api/domain/workstation.test.ts src/api/domain/asset-relationship.test.ts src/web/catalog/shared/catalog.test.tsx src/web/assets/shared/inventory.test.tsx src/web/assets/shared/helpers/asset-columns.test.tsx src/web/assets/detail/ui/asset-detail.test.tsx src/web/infrastructure/shared/infrastructure.test.tsx src/api/domain/support.test.ts src/web/support-connections/shared/support.test.tsx src/api/domain/brand.test.ts src/web/brands/shared/brands.test.tsx src/api/domain/template-sections.test.ts src/web/workstations/shared/helpers/workstation-creation.test.ts src/web/workstations/shared/workstation-name.test.ts src/web/workstations/rename/api/rename-workstation.test.ts src/web/assets/list/asset-workstation.test.tsx src/web/assets/select/asset-selection.test.tsx src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-membership.test.ts src/api/infrastructure/persistence/directory-membership-provider.test.ts src/web/directory-memberships/shared/directory-memberships.test.tsx src/api/domain/network-share-publication.test.ts src/web/network-share-publications/shared/network-share-ui.test.tsx src/api/application/workstation-concurrency.test.ts src/web/workstations/shared/helpers/workstation-asset-availability.test.ts +✔ src/api/application/workstation-concurrency.test.ts (715.534927ms) +✔ src/api/domain/asset-catalog.test.ts (978.994613ms) +✔ src/api/domain/asset-relationship.test.ts (700.330315ms) +✔ src/api/domain/asset-template-propagation.test.ts (660.076718ms) +✔ src/api/domain/asset.test.ts (700.516216ms) +✔ src/api/domain/brand.test.ts (737.54438ms) +✔ src/api/domain/directory-membership.test.ts (784.849818ms) +✔ src/api/domain/infrastructure.test.ts (778.442072ms) +✔ src/api/domain/network-share-publication.test.ts (741.257705ms) +✔ src/api/domain/support.test.ts (745.784936ms) +✔ src/api/domain/template-sections.test.ts (855.921424ms) +✔ src/api/domain/workstation.test.ts (702.287238ms) +✔ src/api/infrastructure/persistence/directory-membership-provider.test.ts (624.538273ms) +✔ src/web/assets/detail/ui/asset-detail.test.tsx (5524.39212ms) +✔ src/web/assets/list/asset-workstation.test.tsx (5852.817172ms) +✔ src/web/assets/select/asset-selection.test.tsx (3766.14091ms) +✔ src/web/assets/shared/helpers/asset-columns.test.tsx (3618.085608ms) +✔ src/web/assets/shared/inventory.test.tsx (7233.982987ms) +✔ src/web/brands/shared/brands.test.tsx (5736.558928ms) +✔ src/web/catalog-fields/select/catalog-field-selection.test.tsx (3547.919596ms) +✔ src/web/catalog/shared/catalog.test.tsx (5097.999488ms) +✔ src/web/directory-memberships/shared/directory-memberships.test.tsx (5715.650228ms) +✔ src/web/infrastructure/shared/infrastructure.test.tsx (5559.152064ms) +✔ src/web/network-share-publications/shared/network-share-ui.test.tsx (5116.906978ms) +✔ src/web/support-connections/shared/support.test.tsx (3585.918853ms) +✔ src/web/workstations/rename/api/rename-workstation.test.ts (1699.568184ms) +✔ src/web/workstations/shared/helpers/workstation-asset-availability.test.ts (977.547695ms) +✔ src/web/workstations/shared/helpers/workstation-creation.test.ts (616.733702ms) +✔ src/web/workstations/shared/workstation-name.test.ts (582.191343ms) +ℹ tests 29 +ℹ suites 0 +ℹ pass 29 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 8010.742058 diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/before-fixture.log b/.artifacts/resources-global-operating-systems-unblock/technical/before-fixture.log new file mode 100644 index 00000000..36bfccd3 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/before-fixture.log @@ -0,0 +1,30 @@ +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (70.421687ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (11.600592ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (35.681907ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 2 +ℹ fail 1 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 2498.758593 + +✖ failing tests: + +test at src/web/software-installations/shared/software-before-fixture.test.tsx:1:2755 +✖ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (70.421687ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(html.includes("Windows 11 Pro")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/software-installations/shared/software-before-fixture.test.tsx:126:12) + at async Test.run (node:internal/test_runner/test:1404:7) + at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/biome.log b/.artifacts/resources-global-operating-systems-unblock/technical/biome.log new file mode 100644 index 00000000..c04b41cb --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/biome.log @@ -0,0 +1 @@ +Checked 26 files in 23ms. No fixes applied. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/build.log b/.artifacts/resources-global-operating-systems-unblock/technical/build.log new file mode 100644 index 00000000..0df919b4 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/build.log @@ -0,0 +1,48 @@ +$ turbo run build +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running build in 13 packages + • Remote caching disabled + +@metis/web:build: cache miss, executing d61f0bc598236e93 +@metis/server:build: cache miss, executing 7e59d90e6c1cd6d9 +@metis/server:build: $ tsup --config tsup.config.ts +@metis/web:build: $ vite build +@metis/web:build: vite v8.3.0 building client environment for production... +@metis/web:build: transforming... +@metis/server:build: CLI Building entry: src/index.ts +@metis/server:build: CLI Using tsconfig: tsconfig.json +@metis/server:build: CLI tsup v8.5.1 +@metis/server:build: CLI Using tsup config: /home/david/dev/metis-desk/apps/server/tsup.config.ts +@metis/server:build: CLI Target: node24 +@metis/server:build: CLI Cleaning output folder +@metis/server:build: ESM Build start +@metis/server:build: ESM dist/index.js 1.70 MB +@metis/server:build: ESM dist/index.js.map 3.22 MB +@metis/server:build: ESM ⚡️ Build success in 768ms +@metis/web:build: ✓ 10064 modules transformed. +@metis/web:build: rendering chunks... +@metis/web:build: computing gzip size... +@metis/web:build: dist/index.html 0.54 kB │ gzip: 0.35 kB +@metis/web:build: dist/assets/geist-mono-latin-ext-variable-Bwz-egvJ.woff2 14.69 kB +@metis/web:build: dist/assets/geist-mono-latin-variable-XN7g48iV.woff2 23.12 kB +@metis/web:build: dist/assets/roboto-serif-latin-ext-variable-B9BEn9Tg.woff2 49.84 kB +@metis/web:build: dist/assets/roboto-serif-latin-variable-CusprKnR.woff2 66.10 kB +@metis/web:build: dist/assets/inter-variable-DiVDrmQJ.woff2 352.24 kB +@metis/web:build: dist/assets/workplace-map-canvas-DLioOiRN.css 15.41 kB │ gzip: 2.56 kB +@metis/web:build: dist/assets/index-ZFzBcHiV.css 253.08 kB │ gzip: 38.86 kB +@metis/web:build: dist/assets/workplace-map-canvas-CxP6HcMX.js 227.75 kB │ gzip: 74.26 kB +@metis/web:build: dist/assets/index-CTm4QPWs.js 1,815.32 kB │ gzip: 509.13 kB +@metis/web:build: +@metis/web:build: [plugin builtin:vite-reporter] +@metis/web:build: (!) Some chunks are larger than 500 kB after minification. Consider: +@metis/web:build: - Using dynamic import() to code-split the application +@metis/web:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting +@metis/web:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +@metis/web:build: ✓ built in 1.66s + + Tasks: 2 successful, 2 total +Cached: 0 cached, 2 total + Time: 2.902s + diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/companies-types.log b/.artifacts/resources-global-operating-systems-unblock/technical/companies-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/companies-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/companies.log b/.artifacts/resources-global-operating-systems-unblock/technical/companies.log new file mode 100644 index 00000000..e0f59df4 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/companies.log @@ -0,0 +1,351 @@ +✔ contexto AD: creación pura con identidades propias, sin cuentas, grupos ni activos (5.488441ms) +✔ clasificación independiente del nombre; no se adopta un sistema existente por llamarse AD (1.42781ms) +✔ se rechazan compañías distintas, referencias inexistentes y entornos sin clasificación (0.812206ms) +✔ DNS repetido no crea dos entornos; otro dominio comparte sistema y obtiene un entorno distinto (1.033108ms) +✔ identidad local: vínculo por UUID, alta y retirada idempotentes con identidad e historial protegidos (2.006315ms) +✔ identidad local: clasificación explícita rechaza AD por sistema o entorno, sin comparar etiquetas (0.647905ms) +✔ identidad local: crear entorno utiliza AccessWorkspace y conserva cuentas y sistema existentes (0.926407ms) +✔ catálogos globales no se duplican con adiciones locales y no se admiten grupos anidados (1.28551ms) +✔ renombrar una cuenta conserva UUID, historial y semántica de repetición; su uso permanece fijo (11.771888ms) +✔ cerrar una autorización configurada deja retirada pendiente y cerrar una pendiente no inventa un acceso (2.983122ms) +✔ titulares no se solapan incluso en periodos cerrados; el relevo conserva una retirada anterior (1.550712ms) +✔ responsabilidad técnica no concede acceso y se permite sobre una cuenta caducada o inactiva (1.094808ms) +✔ valores reconstruyen UUID y fechas, rechazan fechas imposibles y no permiten credenciales (2.112416ms) +✔ las referencias UUID se normalizan y no permiten duplicar cuentas variando mayúsculas (0.594305ms) +✔ aplicaciones: contrato estricto, versión opcional y solo instalada (1.40631ms) +✔ aplicaciones: UUID, idempotencia, versión auditada, destino fijo y retirada (2.001815ms) +✔ aplicaciones: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (2.812621ms) +✔ aplicaciones: inactividad conserva notas y permite retirada, impide reconfigurar (1.40571ms) +✔ aplicaciones: persistencia preserva historial y rechaza claves y orden incoherentes (3.185124ms) +✔ R2.5: global conserva perfil, delivery e historial; disponibilidad distinta de lectura histórica (1.460611ms) +✔ certificados: contrato estricto, ubicación opcional y límites (1.34151ms) +✔ certificados: UUID, idempotencia, ubicación auditada, destino fijo y retirada (2.301517ms) +✔ certificados: ámbito y clasificación explícita, duplicados abiertos y reapertura nueva (1.072408ms) +✔ certificados: inactividad conserva notas y permite retirada, impide reconfigurar (1.158208ms) +✔ certificados: persistencia preserva historial y rechaza claves y orden incoherentes (3.502226ms) +✔ certificados: caducidad inclusiva, revisión y retirada sin perder historial (0.883007ms) +✔ compañía, contacto y sede tienen UUID v7 propios y se conserva la identidad al editar (0.982908ms) +✔ la pertenencia impide asociar o editar entidades de otra compañía (0.596105ms) +✔ la dirección y el teléfono son optativos y se pueden borrar (0.300902ms) +✔ nombres, email, teléfono y longitud de dirección se validan en los Value Objects (0.628104ms) +✔ sedes: archivar y reactivar conserva identidad y datos; repetir el estado es idempotente (0.575904ms) +✔ FolderMapping: cuenta desconocida, cuenta alternativa y cobertura independiente de la necesidad (5.42254ms) +✔ FolderMapping: ausencia conserva cuenta, null la retira y cada cambio real crea revisión (2.72752ms) +✔ FolderMapping: rechaza cuenta ausente, otro subtipo, otra persona, caducada o desactivada (2.69732ms) +✔ FolderMapping: Coverage por grupo exige pertenencia directa de la cuenta y configuración vigente (4.511632ms) +✔ FolderMapping: cobertura derivada cambia al retirar concesión, necesidad, cuenta o asociación personal (6.237445ms) +✔ FolderMapping: todas las autorizaciones necesarias deben proceder de la cuenta seleccionada (1.225109ms) +✔ Correo: UUIDv7, normalización, no-op, historial y retirada explícita (1.482111ms) +✔ Correo: buzón independiente, vigencia, perfiles, varios buzones y duplicados abiertos (2.134515ms) +✔ Correo: persistencia conserva identidad e historial y rechaza corrupción (1.596211ms) +✔ Correo: vinculación explícita del legado conserva UUID e historial, sin inferir propiedad (2.145215ms) +✔ Buzón: identidad, dirección única, cuenta opcional, ámbito y cambios auditados (1.068708ms) +✔ Uso de buzón: fechas inclusiva/exclusiva, mismo día, solapes, varias personas e historial (0.994608ms) +✔ Buzones: mapper conserva identidad y revisiones, rechaza corrupción (1.938714ms) +✔ personas con datos opcionales no requieren cuenta de acceso y conservan su UUID (0.379503ms) +✔ departamentos únicos por compañía, ignorando mayúsculas y espacios exteriores (0.448303ms) +✔ varios departamentos, un único principal y sin periodos solapados (1.329109ms) +✔ ediciones conservan revisiones y una repetición semántica no añade historial (1.830613ms) +✔ inactivos no reciben nuevas asignaciones; se conservan y pueden cerrarse las existentes (0.568004ms) +✔ asignaciones rechazan pertenencias cruzadas y fechas inválidas (0.517304ms) +✔ la persistencia rechaza periodos inválidos y revisiones que no reflejan el estado actual (0.867206ms) +✔ impresoras: contratos estrictos, notas opcionales y predeterminada solo vigente (1.023408ms) +✔ impresoras: UUID, historial, igualdad semántica, destino fijo y retirada terminal (1.160009ms) +✔ impresoras: duplicados por perfil, predeterminada única y destinos del ámbito (0.788006ms) +✔ impresoras: indisponibilidad señala revisión y permite notas y retirada (0.600705ms) +✔ impresoras: rehidratación conserva identidades y detecta corrupción (2.474418ms) +✔ procesos: contratos estrictos, normalización y límites (1.731512ms) +✔ procesos: UUID v7, tareas con identidad, actualización idempotente e historial (1.087007ms) +✔ procesos: completar exige todas resueltas; cierre terminal y sujeto/tareas fijos (1.268409ms) +✔ procesos: añadir revisiones conserva las resueltas e identidades y no duplica (1.46081ms) +✔ plantillas: copia de instrucciones, igualdad semántica y cambios independientes (0.758005ms) +✔ procesos: rehidratación bidireccional y rechazo de raíces/historial alterados (2.091715ms) +✔ revisión: personales, retirada pendiente y relaciones finalizadas aún configuradas (0.276602ms) +✔ revisión: incluye configuraciones de perfiles archivados, excluye cerradas y evita duplicar (0.131901ms) +✔ remotos: origen personal sin detalle, destinos tipados y contrato estricto (1.210309ms) +✔ remotos: UUID e historial, destino fijo, idempotencia y cierre terminal (1.300209ms) +✔ remotos: referencias de compañía y duplicados abiertos por recorrido y herramienta (0.827506ms) +✔ remotos: configuración y autorización independientes; caducidad y revocación no borran acceso (1.154608ms) +✔ remotos: disponibilidad de origen y destino, retirada y método personalizado (0.381003ms) +✔ remotos: persistencia conserva auditoría y detecta referencias, claves e historial corruptos (2.210816ms) +✔ remotos: una sede archivada conserva conexiones existentes pero rechaza nuevas (0.388903ms) +✔ instalaciones: pertenecen al equipo, admiten SO/aplicaciones y rechazan recursos ajenos y destinos variables (1.550111ms) +✔ instalaciones: versiones, idempotencia, retirada, revisión y persistencia de historial (2.885021ms) +✔ licencia del software: opcional, misma compañía y tipo, vigencia, desvinculación e historial idempotente (2.73482ms) +✔ R2.4: global activo e inactivo separan alta, reconfiguración y recuperación histórica (0.652805ms) +✔ teletrabajo: ausencia, límites, fechas reales y contrato estricto (0.620305ms) +✔ teletrabajo: UUID, renovación y revocación auditadas, igualdad y destino fijo (1.089308ms) +✔ teletrabajo: vigencia inclusiva, programación, caducidad y persona inactiva (0.640505ms) +✔ teletrabajo: ámbito, unicidad incluso revocada, disponibilidad y retirada (0.471703ms) +✔ teletrabajo: rehidratación preserva identidad y detecta corrupción de raíz e historial (2.499718ms) +✔ Perfil: cuenta opcional, UUID, historial, identidad fija e idempotencia (0.966107ms) +✔ Perfil: desactivar conserva valores e historial, es idempotente y precede al borrado (0.382803ms) +✔ Perfil: misma persona/dispositivo único vigente, múltiples dispositivos/personas y revisión sin pérdida de datos (0.652005ms) +✔ Perfil: cuenta autorizada, vigencia inclusiva de caducidad, cierre de autorización y cuenta técnica (0.570904ms) +✔ Perfil: persistencia conserva revisiones y rechaza raíz o cuenta histórica incoherentes (2.575218ms) +✔ Perfil: solo un ordenador principal activo admite altas y reactivaciones; el historial se conserva (0.463104ms) +✔ PNG, JPEG y WebP se normalizan sin recorte y sin metadatos a un avatar ligero (63.586058ms) +✔ se rechazan archivos vacíos, corruptos, SVG y GIF aunque simulen un MIME válido (1.138808ms) +✔ se rechazan excesos de peso y dimensión antes de almacenar (2.353217ms) +✔ los PNG animados se rechazan antes de decodificarlos (1.43791ms) +✔ el contexto distingue cuentas y grupos del entorno, sin incluir otros entornos o datos globales (0.276802ms) +✔ recurso contextual: incluye identidades de sistemas distintos sin mezclar necesidades y concesiones ajenas (0.753406ms) +✔ filtro vacío no incluye elementos ajenos y las rutas validan UUID y contexto de compañía (1.697812ms) +✔ los catálogos presentan alta mediante acción y no un formulario junto al listado (65.122069ms) +✔ cuentas ofrecen caducidad opcional y campos sin contraseña (14.899107ms) +✔ la ayuda explica todos los elementos en ambos idiomas y distingue el ámbito (32.113631ms) +✔ los ejemplos del sistema orientan sin rellenar datos del alta (3.027222ms) +✔ las altas rápidas respetan el contexto, ámbito y relaciones históricas (0.543104ms) +✔ los formularios ofrecen altas relacionadas y el segundo modal evita altas anidadas (61.747345ms) +✔ aplicaciones: listado sin formularios, alta en cabecera y traducciones (16.479719ms) +✔ aplicaciones: selectores con alta rápida y ayuda inferior antes de guardar (14.306603ms) +✔ R2.5: perfil muestra nombre, origen y versión global sin ResourceDTO local ni mezcla de perfiles (35.111653ms) +✔ certificados: listado sin formularios, alta en cabecera y traducciones (15.792413ms) +✔ certificados: selectores con alta rápida y ayuda inferior antes de guardar (12.022987ms) +✔ la compañía de origen es ámbito visible, no un filtro eliminable con Limpiar filtros (37.755972ms) +✔ directorio: orden y página proceden de URL sin perder la consulta (20.536548ms) +✔ el dashboard no ofrece selector de compañía y conserva las métricas de cada ámbito (20.239745ms) +✔ el resumen de compañía es la entrada por defecto y ofrece destinos reales (31.167725ms) +✔ los índices de catálogos distinguen definiciones globales y variantes de compañía (4.893735ms) +✔ el listado presenta estado vacío y acceso al alta sin formularios visibles (9.67717ms) +✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (16.227217ms) +✔ el formulario de sede ofrece dirección y teléfono opcionales (1.745212ms) +✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.654226ms) +✔ asignar un departamento permite añadir el primero y conserva el selector en edición (4.794134ms) +✔ el tablero de compañía tiene composición propia, acciones arriba y métricas limitadas a su ámbito (4.07153ms) +✔ el menú de compañía ordena trabajo y personas por grupos sin repetir las acciones de usuario (7.439354ms) +✔ sedes: listado traducido con filtro de archivadas y solo sedes activas por defecto (12.931093ms) +✔ la navegación de compañía conserva 21 enlaces reales, sección activa y contexto es/en (30.168817ms) +✔ el logo sustituye iniciales con URL versionada, dimensiones fijas y carga diferida (0.580804ms) +✔ sin logotipo aparecen iniciales y las listas consultan la misma caché de compañías (0.536503ms) +✔ cuentas del mapeo: exige asociación vigente y catálogos activos; no atribuye por login o por perfil (0.690405ms) +✔ actualización del mapeo: omitir cuenta conserva semántica distinta de retirarla explícitamente; admite revisión capturada (0.490004ms) +✔ uso de impresora: agrupa perfiles de un mismo equipo y separa pendientes e historial (0.795606ms) +✔ uso de impresora: referencias sin resolver no se presentan como ausencia de uso (0.161601ms) +✔ identidades locales: entorno del activo, navegación por UUID y estado vigente en es/en (5.221238ms) +✔ propietario local: vínculo retirado conserva navegación y no ofrece reasignación (1.057808ms) +✔ cuenta del mapeo: seleccionar perfil es una acción explícita; el render no infiere ni cambia cuenta (3.440525ms) +✔ correo: listado traducido, alta en cabecera y formularios ocultos (7.954558ms) +✔ correo: selectores reutilizables con altas y ayuda inmediatamente antes de guardar (12.526691ms) +✔ Buzones: alta en modal, cuenta opcional y ayuda al final (7.633055ms) +✔ L04.2: correo mantiene tabla y criterios mientras faltan sus referencias (5.534739ms) +✔ Personas conserva búsqueda por nombre, contactos, consulta y distinción ñ/n en es/en (48.909853ms) +✔ organización: resuelve departamento y cargo vigentes del responsable (0.354003ms) +✔ organización: sin responsable o asignación no infiere datos desde perfiles ni cargo genérico de persona (0.112701ms) +✔ organización: periodos semiabiertos, históricos y futuros (0.0979ms) +✔ organización: varias vigentes conservan todas, principal primero y orden estable sin mutar (0.126801ms) +✔ organización: dos principales no ocultan información seleccionando una arbitrariamente (0.0686ms) +✔ organización: aislamiento de compañía y persona, y referencias incompletas (0.127701ms) +✔ organización: cambios y refetch se derivan de la fuente actual (0.135701ms) +✔ impresoras: listado sin formularios, alta en cabecera y traducciones (7.102051ms) +✔ impresoras: selectores con alta rápida y ayuda inferior antes de guardar (6.460047ms) +✔ L04.2: Procesos recupera búsqueda, cerrados, orden y página en sus enlaces (13.965901ms) +✔ procesos: listados es/en sin formularios junto a los datos (13.305196ms) +✔ procesos: alta rápida y ayuda inferior antes del pie (4.846535ms) +✔ plantillas: instrucciones, desactivación y ayuda global es/en sin datos de compañía (5.325938ms) +✔ seguimiento: origen personal, revisión actual y edición sin afirmar retirada real; cerrados sin editar (24.146474ms) +✔ remotos: consulta sin formularios y traducciones (7.855057ms) +✔ remotos: formulario, altas rápidas y ayuda antes del pie (11.784685ms) +✔ remotos: origen personal, acceso configurado sin autorización y VPN separada (1.42541ms) +✔ las consultas de compañías conservan sus rutas y rechazan respuestas inválidas (20.468347ms) +✔ lectura y guardado de accesos están separados sin cambiar el contrato HTTP (1.914814ms) +✔ el guardado de usos de buzón mantiene su endpoint y no se confunde con la consulta (1.40551ms) +✔ los adapters mantienen la ausencia semántica sin modificar los campos del formulario (0.175901ms) +✔ las instrucciones de proceso conservan el orden y excluyen líneas vacías (0.155101ms) +✔ la validación de logos conserva tipos permitidos, vacío y límite exacto de tamaño (0.155101ms) +✔ la tabla espera todas sus referencias y distingue actualización de disponibilidad (0.159701ms) +✔ un fallo recuperable conserva datos anteriores sin presentarlos como actualizados (0.146801ms) +✔ una fuente denegada impide mostrar la caché de todo el listado compuesto (0.163201ms) +✔ dashboard: HTTP 401 conserva la semántica de disponibilidad (0.427503ms) +✔ dashboard: HTTP 403 conserva la semántica de disponibilidad (0.230701ms) +✔ dashboard: HTTP 503 conserva la semántica de disponibilidad (0.194801ms) +✔ dashboard: una lectura correcta valida y conserva la página del proveedor (1.005407ms) +✔ iniciales y siglas soportan nombres vacíos, Unicode y separadores (0.634704ms) +✔ el color es estable con variaciones de espacios, mayúsculas y acentos (0.252702ms) +✔ los colores generados mantienen contraste AA para texto pequeño (0.907407ms) +✔ el avatar conserva su nombre accesible y puede ser decorativo dentro de un botón etiquetado (0.638905ms) +✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (1.44771ms) +✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (5.953743ms) +✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (1.981714ms) +✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (1.283909ms) +✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (3.146522ms) +✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (2.010715ms) +✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (4.040429ms) +✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (1.821213ms) +✔ OSUI-16: presentación es/en y versión opcional (3.167823ms) +✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.274102ms) +✔ REG-SO-01/11: render global configurado, inactivo e histórico conserva nombre, versión y destino es/en (6.171145ms) +✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (15.092809ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (3.778527ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (13.266196ms) +✔ teletrabajo: consulta sin formularios y traducciones (7.228752ms) +✔ teletrabajo: formulario con alta rápida de persona, fechas opcionales y ayuda inferior (9.925871ms) +✔ teletrabajo: sin autorización no se presupone permiso; persona inactiva requiere revisión (1.555011ms) +✔ teletrabajo: alta desde un perfil fija la persona y no abre otra alta rápida (1.581511ms) +✔ teletrabajo es/en: conserva estado documental, vigencia y revisión como mensajes independientes (8.554462ms) +✔ entorno: reúne varios correos y configuraciones, distingue pendiente, retirada y revisión (0.845306ms) +✔ entorno: excluye cerradas, otros perfiles, compañías y correo antiguo sin adivinar relaciones (0.528104ms) +✔ entorno: composición vigente del puesto y datos actuales sin duplicación (0.432803ms) +✔ entorno: ficha es/en con estados y acciones, sin formularios; muestra falso y varios correos (13.092695ms) +✔ entorno: carga, fallo parcial sin falsa ficha vacía, perfil inexistente y aviso de archivado (11.898685ms) +✔ entorno: consulta autorización por persona, común a sus perfiles y sin confundir preparación (9.445268ms) +✔ entorno: accesos abiertos de la persona y sus orígenes sin confundirlos con configuraciones del perfil (4.853635ms) +✔ las entidades de los selectores se pluralizan en es/en sin reutilizar el verbo de acción (1.205508ms) +✔ perfiles: listado es/en, alta en cabecera y ausencia de formulario junto al listado (6.841249ms) +✔ perfiles: la cabecera breve conserva el motivo completo en la celda de revisión (8.137358ms) +✔ perfiles: alta en cuatro pasos, sin guardado intermedio y contenido de ayuda conservado (7.248852ms) +✔ perfiles: selección de persona explícita y cuenta opcional con altas independientes (8.567261ms) +✔ perfiles: el puesto fijado aporta su ordenador y no selecciona al responsable como usuario (4.837535ms) +✔ perfiles: requisitos por paso, cuenta opcional y propuesta basada en persona y ordenador (0.317702ms) +✔ perfiles: el nombre sugerido respeta el límite del contrato (0.209202ms) +✔ perfiles: resumen con listas, ordenador único y ausencias representadas por guion (2.117115ms) +✔ perfiles: edición completa con identidad fija aunque el perfil requiera revisión (3.196523ms) +✔ perfiles: orden y página navegables conservan búsqueda y archivados al abrir entorno (27.511098ms) +✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (1.991415ms) +✔ las funcionalidades archivadas no tienen rutas activas (0.564804ms) +✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (0.981107ms) +✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (0.402203ms) +✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (1.120708ms) +✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (0.277602ms) +✔ las configuraciones conservan la compañía y el UUID del perfil (0.259401ms) +✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (1.278209ms) +✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (0.417203ms) +✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (0.542004ms) +✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (0.978607ms) +✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (0.596904ms) +✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.283002ms) +✔ la barra comienza desplegada sin navegador o sin una preferencia válida (0.524804ms) +✔ plegar y desplegar persisten la preferencia sin modificar otras claves (0.267202ms) +✔ un fallo de lectura, escritura o acceso a localStorage no bloquea la barra (0.546204ms) +✔ la capacidad del shell fuerza modos sin cambiar la preferencia manual (0.447903ms) +✔ un menú solo libera su modalidad si su presentación pasa a estar disponible fija (0.176701ms) +✔ layout 640px: 0 asociados y 0 instalaciones (7.395154ms) +✔ layout 640px: 0 asociados y 3 instalaciones (5.767042ms) +✔ layout 640px: 1 asociados y 0 instalaciones (2.007314ms) +✔ layout 640px: 1 asociados y 2 instalaciones (2.83982ms) +✔ layout 640px: 2 asociados y 3 instalaciones (3.908428ms) +✔ layout 748px: 0 asociados y 0 instalaciones (1.005407ms) +✔ layout 748px: 0 asociados y 3 instalaciones (2.384917ms) +✔ layout 748px: 1 asociados y 0 instalaciones (1.694412ms) +✔ layout 748px: 1 asociados y 2 instalaciones (2.532219ms) +✔ layout 748px: 2 asociados y 3 instalaciones (3.443925ms) +✔ layout 900px: 0 asociados y 0 instalaciones (0.602804ms) +✔ layout 900px: 0 asociados y 3 instalaciones (1.999014ms) +✔ layout 900px: 1 asociados y 0 instalaciones (1.159308ms) +✔ layout 900px: 1 asociados y 2 instalaciones (2.192816ms) +✔ layout 900px: 2 asociados y 3 instalaciones (3.402425ms) +✔ layout 1200px: 0 asociados y 0 instalaciones (0.745605ms) +✔ layout 1200px: 0 asociados y 3 instalaciones (2.82692ms) +✔ layout 1200px: 1 asociados y 0 instalaciones (1.508211ms) +✔ layout 1200px: 1 asociados y 2 instalaciones (2.272716ms) +✔ layout 1200px: 2 asociados y 3 instalaciones (3.130222ms) +✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (4.012029ms) +✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (0.302003ms) +✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (65.095069ms) +✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (0.583504ms) +✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.258702ms) +✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.553604ms) +✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (0.641505ms) +✔ WD04.5: SO global utiliza la referencia pública y su etiqueta específica (0.330802ms) +✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.211701ms) +✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (13.676298ms) +✔ dashboard: ordenador y equipamiento actuales, personas por perfiles y archivados separados (0.503003ms) +✔ dashboard: sin responsable sigue mostrando usuarios y un puesto desmantelado no cuenta historia como miembros (0.245402ms) +✔ dashboard: sustituir ordenador resuelve perfiles del nuevo host sin trasladar los anteriores (0.185902ms) +✔ dashboard: referencias ajenas o principal fuera de composición no aportan relaciones (0.112201ms) +✔ pendientes: solo pending, perfiles activos, compañía correcta y deduplicación por familia e identidad (0.537304ms) +✔ último cambio: orden cronológico sin mutación, altas de miembros y campos realmente cambiados (0.279402ms) +✔ equipamiento: principal válido primero, miembros únicos y secundarios en orden declarado (0.205002ms) +✔ equipamiento: activos sin principal no adquieren un principal por su tipo o posición (0.143101ms) +✔ equipamiento: principal fuera de composición se advierte sin añadirlo a miembros (0.1168ms) +✔ equipamiento: referencia ausente o de otra compañía no inventa datos ni marca principal (0.263502ms) +✔ equipamiento: vacío y desmantelado no recuperan miembros del historial (0.119801ms) +✔ equipamiento: averiado sigue asignado y conserva ambos estados originales (0.086901ms) +✔ expansión: todos abiertos inicialmente y plegado independiente de cada perfil (0.143501ms) +✔ refetch conserva plegados y filtros individuales, incluso con error o fuentes incompletas (0.117301ms) +✔ retirada o archivo limpia únicamente el estado del perfil afectado (0.100101ms) +✔ cambio de compañía, puesto u ordenador restablece todos los perfiles abiertos y los filtros (0.079501ms) +✔ orden estable y numérico del resumen y los pendientes, sin mutar datos remotos (0.148401ms) +✔ incluye solo perfiles del ordenador principal, distingue inactivos y deduplica personas (0.289602ms) +✔ puesto inexistente o sin composición no hereda perfiles de otros activos (0.225502ms) +✔ persona: responsabilidad y uso son independientes y solo se consideran puestos y perfiles vigentes (0.328702ms) +✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (27.858201ms) +✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (2.001714ms) +✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (2.79902ms) +✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (54.11959ms) +✔ personas y perfiles: carga y error no se presentan como listados vacíos (5.941443ms) +✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (33.977744ms) +✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (6.074044ms) +✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (22.949865ms) +✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (18.280031ms) +✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (83.443601ms) +✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (6.636848ms) +✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (2.245617ms) +✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (1.837613ms) +✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (6.89065ms) +✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (49.98596ms) +✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (49.268555ms) +✔ perfiles: carga, error y datos retenidos no publican un total como actual (4.298031ms) +✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (9.62067ms) +✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (2.235816ms) +✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (1.596712ms) +✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (10.091672ms) +✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (0.936107ms) +✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (2.185815ms) +✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (6.474147ms) +✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (29.15941ms) +✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (11.502782ms) +✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (3.594626ms) +✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (2.83542ms) +✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (29.134709ms) +✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (0.938207ms) +✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (0.538604ms) +✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (21.035251ms) +✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (2.370217ms) +✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (1.051308ms) +✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (5.096337ms) +✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (11.916585ms) +ℹ tests 307 +ℹ suites 0 +ℹ pass 305 +ℹ fail 2 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 9004.694033 + +✖ failing tests: + +test at src/web/companies/shared/companies-page.test.tsx:1:4385 +✖ la ficha presenta datos de la compañía, contactos y acceso a sedes (16.227217ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(markup.includes("Personas (1)")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:180:10) + at async Test.run (node:internal/test_runner/test:1404:7) + at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } + +test at src/web/companies/shared/companies-page.test.tsx:1:5801 +✖ el formulario de persona distingue contactos de cuentas de acceso y permite datos opcionales (3.654226ms) + AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value: + + assert.ok(markup.includes("Esta persona no tiene acceso a Metis Desk")) + + at TestContext. (/home/david/dev/metis-desk/modules/companies/src/web/companies/shared/companies-page.test.tsx:210:10) + at async Test.run (node:internal/test_runner/test:1404:7) + at async Test.processPendingSubtests (node:internal/test_runner/test:969:7) { + generatedMessage: true, + code: 'ERR_ASSERTION', + actual: false, + expected: true, + operator: '==', + diff: 'simple' + } diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/directed.log b/.artifacts/resources-global-operating-systems-unblock/technical/directed.log new file mode 100644 index 00000000..438d57d5 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/directed.log @@ -0,0 +1,101 @@ +✔ OSUI-01/02/17: SO actual desde instalación, independiente de cualquier valor de fábrica (5.65744ms) +✔ OSUI-03/04/05/18: vacío, pendiente y retirado no son SO actual (39.327781ms) +✔ OSUI-06/07: varios SO, orden determinista y aplicaciones excluidas (16.084715ms) +✔ OSUI-08/12: cambiar de activo conserva solo su SO, sin aceptar compañías ajenas (3.865528ms) +✔ OSUI-09: versión de instalación y redundancia literal sin reglas de fabricante (6.548246ms) +✔ OSUI-10: referencia no resoluble no significa ausencia; inactiva resoluble conserva información (6.208344ms) +✔ OSUI-11: error con datos previos, error de resolver y carga no se presentan como vacío (12.498489ms) +✔ OSUI-13/14: servidor sin puesto y plantilla propia consumen la misma lectura por activo (5.839042ms) +✔ OSUI-16: presentación es/en y versión opcional (11.948585ms) +✔ SO global: selector conserva scope y destino SO; la versión instalada sigue separada (0.659705ms) +✔ REG-SO-01/11: render global configurado, inactivo e histórico conserva nombre, versión y destino es/en (22.043657ms) +✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (107.653367ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (19.52714ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (47.172036ms) +✔ el catálogo de aplicaciones de compañía conserva cursor, filtros y retorno a ficha (5.070836ms) +✔ las funcionalidades archivadas no tienen rutas activas (1.082908ms) +✔ el filtro de plantilla permite abrir listados y fichas de activos y recursos (1.118008ms) +✔ el filtro de plantilla se limita a los inventarios que conocen sus definiciones (0.585204ms) +✔ todas las secciones de compañía tienen una ruta propia y el índice es el resumen (1.703313ms) +✔ los índices de catálogos y los cinco catálogos globales son destinos independientes (0.373503ms) +✔ las configuraciones conservan la compañía y el UUID del perfil (0.394503ms) +✔ las rutas desconocidas y los parámetros inválidos no abren una sección por defecto (2.987421ms) +✔ la ficha de puesto tiene ruta propia, conserva el UUID y rechaza identificadores inválidos (0.743405ms) +✔ dominios: enlaces a cuentas y grupos limitados al entorno de la compañía (0.924506ms) +✔ los parámetros de contexto llegan al consumidor sin crear rutas nuevas ni aceptar claves ajenas (1.39441ms) +✔ catálogo de aplicaciones: UUID global y criterios propios sin compañía ficticia (0.805006ms) +✔ catálogo SO: ruta específica y filtros, sin confundir con aplicaciones (0.388803ms) +✔ layout 640px: 0 asociados y 0 instalaciones (10.741676ms) +✔ layout 640px: 0 asociados y 3 instalaciones (9.622968ms) +✔ layout 640px: 1 asociados y 0 instalaciones (4.046929ms) +✔ layout 640px: 1 asociados y 2 instalaciones (5.167137ms) +✔ layout 640px: 2 asociados y 3 instalaciones (7.089651ms) +✔ layout 748px: 0 asociados y 0 instalaciones (1.791113ms) +✔ layout 748px: 0 asociados y 3 instalaciones (13.092094ms) +✔ layout 748px: 1 asociados y 0 instalaciones (2.78362ms) +✔ layout 748px: 1 asociados y 2 instalaciones (7.721855ms) +✔ layout 748px: 2 asociados y 3 instalaciones (12.436588ms) +✔ layout 900px: 0 asociados y 0 instalaciones (1.299909ms) +✔ layout 900px: 0 asociados y 3 instalaciones (4.25283ms) +✔ layout 900px: 1 asociados y 0 instalaciones (2.195216ms) +✔ layout 900px: 1 asociados y 2 instalaciones (5.60324ms) +✔ layout 900px: 2 asociados y 3 instalaciones (11.726683ms) +✔ layout 1200px: 0 asociados y 0 instalaciones (2.018914ms) +✔ layout 1200px: 0 asociados y 3 instalaciones (12.021185ms) +✔ layout 1200px: 1 asociados y 0 instalaciones (5.912042ms) +✔ layout 1200px: 1 asociados y 2 instalaciones (8.369259ms) +✔ layout 1200px: 2 asociados y 3 instalaciones (6.98395ms) +✔ layout: dos asociados se reparten por capacidad; sin principal no se fabrican conexiones (9.354967ms) +✔ preview: conserva límites y publica solo cobertura real de fuentes conocidas (0.557304ms) +✔ WD04.4: acción estable de presentación, fuera de las relaciones y contadores, sin solapamientos (138.181285ms) +✔ WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría (0.822806ms) +✔ WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados (0.418203ms) +✔ WD04.5: distingue instalación, producto global/inactivo y licencia particular (0.638004ms) +✔ WD04.5: producto particular y gates cerrados no crean acciones administrativas (1.041907ms) +✔ WD04.5: SO global utiliza la referencia pública y su etiqueta específica (0.638505ms) +✔ WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas (0.344403ms) +✔ WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú (22.532261ms) +✔ ficha de puesto es/en: cabecera, retorno, bloques vacíos y edición modal sin formulario incrustado (74.588731ms) +✔ un UUID de puesto ausente muestra no encontrado sin cabecera ni edición de otro puesto (4.480632ms) +✔ ficha de persona es/en: distingue responsabilidad y uso, y enlaza los puestos (10.926778ms) +✔ ficha: ordenador destacado y periféricos sin repetir, perfiles solo del ordenador y personas deduplicadas (112.541501ms) +✔ personas y perfiles: carga y error no se presentan como listados vacíos (12.456789ms) +✔ ficha: no permite crear perfiles si el ordenador está retirado o el puesto está desactivado (66.931276ms) +✔ historial del puesto es/en: revisiones de más reciente a más antigua con autor y valores de cada momento (9.446067ms) +✔ personas es/en: enlaces a todos sus puestos bajo responsabilidad, sin confundirlos con puestos usados (57.032206ms) +✔ menú de compañía es/en: totales en badges alineados y cero real en secciones vacías (43.56401ms) +✔ ruta de activo de compañía abre la página con información, historial, software y solo sus perfiles (140.094097ms) +✔ equipamiento es/en: badges de principal, técnico y uso conservan su significado (10.108472ms) +✔ equipamiento: inventario fallido no se presenta como vacío y permite reintentar (2.540518ms) +✔ equipamiento: principal inconsistente se explica y no se incorpora como miembro válido (3.483225ms) +✔ personas y perfiles es/en: expansión contextual, enlaces independientes y resumen cero real (11.732484ms) +✔ cabecera es/en: responsable largo o ausente, contexto independiente y mapa con resumen (139.315392ms) +✔ perfiles: lista completa y todos desplegados por defecto, incluso con cincuenta perfiles (257.465833ms) +✔ perfiles: carga, error y datos retenidos no publican un total como actual (6.398146ms) +✔ equipamiento: contador conocido cero, uno, cinco y seis; error conserva filas sin publicar total (16.130715ms) +✔ configuración: cobertura desconocida, revisión y notas permanecen fuera del disclosure técnico (12.017686ms) +✔ perfiles: una actualización en curso conserva el total conocido y anuncia la actividad (2.489818ms) +✔ v2.2: dependencia sin principal conserva mapa y resumen y una explicación principal sin tabla vacía (22.841362ms) +✔ v2.2: un vacío confirmado de perfiles conserva el alta y evita cabeceras de una tabla sin filas (1.731812ms) +✔ v2.2: soporte distingue perfiles en carga, error, ausencia confirmada y persona no resuelta (3.775227ms) +✔ v2.2: referencia de principal no resuelta no publica cero pendientes ni ausencia de perfiles (8.712362ms) +✔ v3: Software conserva los tres estados documentales con la misma representación que las familias (41.120293ms) +✔ v3: estados técnicos de equipamiento conservan principal y asignación en es/en (29.733711ms) +✔ responsable es/en: avatar y nombre abren un único popup y la ausencia no ofrece acciones (5.035236ms) +✔ mapa visual: aísla compañías, deduplica miembros y conserva software y estados reales (3.754927ms) +✔ mapa es/en: principal solo, vacíos confirmados y error de software conservan navegación y gestión (60.33323ms) +✔ mapa: composición vacía y sin principal no fabrica relaciones ni instalaciones (2.356617ms) +✔ contexto de persona: rechaza datos de otra compañía y no ofrece acciones (1.858613ms) +✔ mapa es/en: carga inicial y carga parcial mantienen estados accesibles (36.681962ms) +✔ mapa es/en: leyenda con tres conceptos y cobertura explícita sin totales inventados (3.045022ms) +✔ mapa es/en: revisión de software traducida incluso sin referencia navegable (2.541618ms) +✔ WD04.4 es/en: acción autorizada, vacío accionable y lectura sin permiso (9.101865ms) +✔ perfiles del puesto: configuraciones de todos los activos abiertas y destinos accesibles únicos (22.928663ms) +ℹ tests 93 +ℹ suites 0 +ℹ pass 93 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 6623.398204 diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/eslint.log b/.artifacts/resources-global-operating-systems-unblock/technical/eslint.log new file mode 100644 index 00000000..3faa6588 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/eslint.log @@ -0,0 +1,12 @@ + +/home/david/dev/metis-desk/modules/assets/src/common/locales/en.json + 0:0 warning File ignored because no matching configuration was supplied + +/home/david/dev/metis-desk/modules/assets/src/common/locales/es.json + 0:0 warning File ignored because no matching configuration was supplied + +/home/david/dev/metis-desk/modules/companies/package.json + 0:0 warning File ignored because no matching configuration was supplied + +✖ 3 problems (0 errors, 3 warnings) + diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/fixed-test.log b/.artifacts/resources-global-operating-systems-unblock/technical/fixed-test.log new file mode 100644 index 00000000..0bd9c049 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/fixed-test.log @@ -0,0 +1,11 @@ +✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (180.503997ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (23.718356ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (44.805039ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 3 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 3780.97436 diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/original-test.log b/.artifacts/resources-global-operating-systems-unblock/technical/original-test.log new file mode 100644 index 00000000..0ee20e48 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/original-test.log @@ -0,0 +1,11 @@ +✔ software del puesto es/en: SO actual, versión, enlaces y separación por ordenador sin formularios incrustados (73.767127ms) +✔ formulario software: recurso fijo en edición, estados permitidos, ayuda y ausencia de persona/perfil (19.118137ms) +✔ R2.4: nombre, origen y enlace global se resuelven sin ResourceDTO local; licencia continúa particular (24.410974ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 3 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 2491.540439 diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/playwright-setup.log b/.artifacts/resources-global-operating-systems-unblock/technical/playwright-setup.log new file mode 100644 index 00000000..476b6272 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/playwright-setup.log @@ -0,0 +1,4 @@ +La imagen fijada ya está disponible; se reutiliza. +{"chromium":"155.0.8059.12","network":"WSL loopback OK"} +Entorno preparado. No se ha modificado la configuración global de Codex. +Arranca Metis y ejecuta: python3 scripts/check-playwright-mcp.py diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/resources-types.log b/.artifacts/resources-global-operating-systems-unblock/technical/resources-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/resources-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/resources.log b/.artifacts/resources-global-operating-systems-unblock/technical/resources.log new file mode 100644 index 00000000..19f5fc5f --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/resources.log @@ -0,0 +1,125 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx +✔ R2.6: nombre y proveedor son señales, nunca equivalencia confirmada (1.48531ms) +✔ R2.6: preserva tildes, puntuación, abreviaturas, ediciones, versiones y números (0.327003ms) +✔ R2.6: homónimos genéricos se mantienen débiles y los UUID nunca se sustituyen (27.591797ms) +✔ F2: SO global público tipado, sin contaminación de aplicaciones ni perfiles (17.350423ms) +✔ F2: elegibilidad de SO exige stock real y campos globales (15.126808ms) +✔ F2: contrato 3 y gates de SO independientes; aplicaciones no abren SO (1.776312ms) +✔ F3: cualquier escritor valida identidad publicada, corrección documental e historial (61.951442ms) +✔ recurso: activar/desactivar conserva datos e historial y repetir estado no añade revisiones (13.947999ms) +✔ recurso: valida identidades y rechaza actuar sobre recursos ajenos (3.253424ms) +✔ recurso: propaga el bloqueo por asociaciones y permite desactivar (1.43361ms) +✔ recurso: elimina y la repetición devuelve ausencia sin efectos adicionales (0.964007ms) +✔ elegibilidad global exige serie exacta y campos globales; las copias no elevan ámbito (3.631626ms) +✔ schemas discriminan owner, propósito, OS local y proyecciones privadas (46.26223ms) +✔ requests acotan lotes, consulta, paginación y rechazan privilegios o integración (7.255052ms) +✔ búsqueda literal conserva ñ, puntuación y espacios; pagina tras filtrar con desempate UUID (6.99235ms) +✔ R2.5 admite gates configurables; los valores predeterminados siguen cerrados (0.387503ms) +✔ R2.5: software y perfil se habilitan por separado y requieren catálogo (0.296702ms) +✔ R2.5: perfil no depende de software ni abre asociaciones con catálogo cerrado (0.174201ms) +✔ lectores locales: excluyen global y otra compañía incluso si el repositorio los entrega; stockKey no depende del nombre (17.193223ms) +✔ HTTP actual sin MariaDB: aislamiento con 15 compañías, 50 recursos locales, alta, edición, estado e historial (351.515204ms) +✔ DNS: normalización explícita, etiqueta única heredada, punto raíz y política ASCII IDN (1.966614ms) +✔ capacidad estable: la plantilla renombrada sigue siendo dominio y una copia arbitraria no (1.997514ms) +✔ alta, edición, DNS y archivo usan Resource y conservan su identidad e historial (7.256051ms) +✔ catálogo: DNS obligatorio protegido, NetBIOS opcional e inicialización idempotente (8.600461ms) +✔ identificadores de campo: mayúsculas no cambian identidad ni permiten duplicados (1.30331ms) +✔ global: crear exige UUID v7 y conserva identidad y propietario en edición e idempotencia (12.162987ms) +✔ global: captura por stockKey, sin depender del nombre traducido de la plantilla (1.680112ms) +✔ SMB acepta \\NAS-01\Finanzas (2.104315ms) +✔ SMB acepta \\files.example.local\Docs (0.291203ms) +✔ SMB acepta \\192.168.5.10\C$ (0.130301ms) +✔ SMB acepta \\samba\Diseño\Año 2026 (0.295802ms) +✔ SMB acepta \\NAS\Docs\ (0.323802ms) +✔ SMB rechaza "" (0.217901ms) +✔ SMB rechaza "\\\\" (0.258001ms) +✔ SMB rechaza "\\\\host" (0.118701ms) +✔ SMB rechaza "\\\\\\share" (1.212909ms) +✔ SMB rechaza "\\\\host\\\\" (0.492803ms) +✔ SMB rechaza "C:\\Datos" (0.145901ms) +✔ SMB rechaza "https://host/share" (0.096201ms) +✔ SMB rechaza "\\\\host\\share\\.." (0.393803ms) +✔ SMB rechaza "\\\\host\\share\\." (0.106101ms) +✔ SMB rechaza "\\\\?\\UNC\\host\\share" (0.156101ms) +✔ SMB rechaza "\\\\host\\share\\\\child" (0.264102ms) +✔ SMB rechaza "\\\\host\\share." (0.246401ms) +✔ SMB rechaza "\\\\host\\ share" (0.0736ms) +✔ SMB rechaza "\\\\ho st\\share" (0.049001ms) +✔ SMB rechaza "\\\\host\\bad\u0000" (0.0918ms) +✔ SMB rechaza "\\\\host\\bad\ud800" (0.1144ms) +✔ SMB rechaza "\\\\host\\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (0.068701ms) +✔ SMB: comparación conservadora, alias y Unicode sin transformaciones destructivas (0.527804ms) +✔ SMB: semántica por stockKey y protección del catálogo sin bloquear etiquetas u obligatoriedad (22.780562ms) +✔ SMB: alta validada y diagnóstico histórico sin conversión ni revisión (17.023521ms) +✔ SMB: nuevas altas fijan integración access y rechazan contexto incompatible (8.235758ms) +✔ F1: identidad completa, edición conocida/no aplicable/desconocida e inactivos (4.15773ms) +✔ F1: normalización conservadora no equipara ediciones, releases ni ausencia desconocida (0.418003ms) +✔ F1: evolución de stock personalizada e idempotente; no elimina campos ni cambia obligatoriedad (27.203994ms) +✔ F1: un catálogo anterior evoluciona sin sobrescribir bindings ni recursos particulares (22.291559ms) +✔ catálogo de recursos: serie idempotente, UUID v7, características opcionales y protección (32.639833ms) +✔ ámbitos, tipos, listas, campos externos y disponibilidad por compañía (8.929663ms) +✔ licencias: ampliar un catálogo previo conserva identidades y disponibilidad (21.277552ms) +✔ plantillas globales de serie editables: conserva identidad, asociaciones, disponibilidad y cambios al reiniciar (21.699655ms) +✔ campos globales de serie editables: listas ampliables, tipo fijo y opciones existentes conservadas (26.427088ms) +✔ sistema operativo: plantilla con uso explícito, copia y ampliación sin sobrescribir definiciones (9.712969ms) +✔ iconos de recursos: todas las plantillas de serie tienen su icono y el arranque no repone los retirados (9.499267ms) +✔ iconos de recursos: cambiar y retirar el icono conserva identidad y asociaciones, con guardado idempotente (7.451653ms) +✔ iconos de recursos: claves desconocidas, cadenas vacías e iconos de campos se rechazan (3.836528ms) +✔ ámbito: pares válidos y rechazo runtime de propietarios contradictorios o ausentes (33.464938ms) +✔ ámbito: proyección preparada separada; HTTP local conserva exactamente su contrato (13.465796ms) +✔ ámbito: edición y propagación locales conservan propietario, UUID e historia; globales son solo lectura (4.727334ms) +✔ Resource: propaga altas, orden y retiradas conservando cero/falso, valores e historial; repetir no genera revisiones (22.093458ms) +✔ Resource: los campos retirados no impiden añadir una plantilla completa y no se fusionan por nombre (3.661626ms) +✔ Resource: retirar secciones conserva solo las necesarias y mover o reincorporar campos aplica el destino (0.636905ms) +✔ recursos: tipos, valores opcionales y obligatorios, cero/falso y campos desconocidos (10.571975ms) +✔ recurso: identidad estable, historial, desactivación e idempotencia (2.403517ms) +✔ buzón como recurso: correo válido, cuenta opcional, cambios auditados y tipo fijo (3.275223ms) +✔ secciones: nombres, identidades, referencias y un solo nivel (7.10295ms) +✔ secciones: igualdad, orden, identidad y persistencia JSON (3.607326ms) +✔ secciones: plantillas globales y locales conservan separación y UUID al editar (4.836535ms) +✔ secciones de serie: el arranque conserva una plantilla sin grupos y su disponibilidad (28.382602ms) +✔ especificación: secciones capturadas, edición posterior y obligatoriedad independiente (20.914849ms) +✔ lector legacy: roundtrip conserva UUID, revisiones, valores, actor, fecha y DTO sin columna scope (15.669612ms) +✔ lector: solo el adaptador legacy conocido interpreta ausencia; ningún ámbito inválido usa fallback (5.317337ms) +✔ proyecciones operativas: global sintético se rechaza antes de SQL, el recurso local sin integración no crea proyección (82.616689ms) +✔ escritor scoped: envía company explícito, preserva la salida legacy y rechaza global (1.533711ms) +✔ selección múltiple añade un lote sin duplicados y conserva las reglas y el orden existentes (4.23063ms) +✔ añadir desde una sección asigna solo los campos nuevos a su destino y conserva los existentes (1.583611ms) +✔ la selección respeta el límite del schema, valida identificadores y rechaza el conjunto vacío (2.366517ms) +✔ el listado reutiliza tabla, búsqueda y casillas traducidas y conserva las selecciones bloqueadas (134.799859ms) +✔ L04.2: campos de recursos recuperan orden y página sin heredar otra pestaña (176.009653ms) +✔ el catálogo muestra plantillas de serie y acción de alta sin formularios junto al listado (133.884552ms) +✔ los formularios tienen ayuda inferior y selección de campos en diálogo con alta rápida (45.502724ms) +✔ iconos de recursos: catálogo y selector traducido conservan la selección al editar y copiar (209.156188ms) +✔ catálogo global: lectura mínima y navegación traducidas, sin administración para ordinarios (35.801155ms) +✔ R2.4: mutación global invalida solo instalaciones cacheadas que usan su UUID (3.636026ms) +✔ R2.5: cambio global invalida configuraciones afectadas y preserva otras compañías (1.569111ms) +✔ SO global: lectura pública es/en conserva identidad estructurada y navegación propia (10.057371ms) +✔ SO global: invalida software y su catálogo sin refrescar aplicaciones ni perfiles (1.47941ms) +✔ la integración de buzón conserva su configuración explícita y no inventa referencias (1.099008ms) +✔ los valores iniciales toleran catálogo pendiente y limitan el nombre sin cambiar la entrada (1.069708ms) +✔ nombre propuesto: prioriza los identificadores de cada plantilla y limita su longitud (17.887328ms) +✔ nombre propuesto: contempla campos personalizados y descarta valores no identificativos (0.290502ms) +✔ paso de campos: exige valores obligatorios y acepta cero y respuestas negativas (0.498703ms) +✔ paso de campos: requiere la dirección de buzón aunque la plantilla la marque opcional (4.391831ms) +✔ recursos: listado con alta modal y sin formulario visible, en español e inglés (106.297457ms) +✔ Recursos: las pestañas incluyen plantillas vacías e inactivas y combinan identidad y búsqueda (408.84071ms) +✔ recurso: ayuda inferior, plantilla con alta rápida y sin asignaciones de recursos (34.983349ms) +✔ licencia: formulario reutilizable con campos opcionales y ayuda antes de guardar (53.42928ms) +✔ asistencia: alta de recurso con plantilla específica y características opcionales (16.101415ms) +✔ alta por pasos: solo muestra la plantilla inicialmente y traduce su navegación (25.008778ms) +✔ indicador de alta: conserva la plantilla elegida y explica el paso actual en ambos idiomas (21.252152ms) +✔ recursos: resumen de plantilla con unidades, booleanos traducidos, cero y límite de cuatro (33.116036ms) +✔ recursos: ficha lateral compacta traducida con cierre, acciones y contenido relacionado (33.723039ms) +✔ recursos: inventario y panel usan el icono vigente de la plantilla sin cambiar la especificación (26.133786ms) +✔ dominio: el formulario traduce el contexto pendiente y solo presenta un entorno confirmado (22.310859ms) +✔ SMB: formulario explica acceso automático o histórico sin selectores incompatibles, es/en (10.382774ms) +✔ campo declarativo: traduce opciones propias y conserva valores que coinciden con el prototipo (34.291144ms) +ℹ tests 116 +ℹ suites 0 +ℹ pass 116 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 5011.56089 diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/root-check.log b/.artifacts/resources-global-operating-systems-unblock/technical/root-check.log new file mode 100644 index 00000000..51b8e904 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/root-check.log @@ -0,0 +1,1259 @@ +$ biome check . +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:98:7 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 96 │ )} + 97 │ > + > 98 │
99 │ ref={ref} + ... + > 104 │ className="flex h-24 items-end justify-between p-4" + > 105 │ > + │ ^ + 106 │ Aa + 107 │ {info && ( + + i Safe fix: Sort the JSX props. + + 97 97 │ > + 98 98 │
+ 106 106 │ Aa + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 5 │ // Resolves any CSS color (hex, rgb, oklch, color-mix) to sRGB by painting one pixel. + 6 6 │ // Translucent colors are composited over the backdrop, as the browser would. + 7 7 │ function toRgb(color: string, backdrop = "#fff") { + 8 │ - ··const·canvas·=·document.createElement("canvas") + 9 │ - ··canvas.width·=·canvas.height·=·1 + 10 │ - ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}) + 8 │ + ··const·canvas·=·document.createElement("canvas"); + 9 │ + ··canvas.width·=·canvas.height·=·1; + 10 │ + ··const·context·=·canvas.getContext("2d",·{·willReadFrequently:·true·}); + 11 11 │ if (!context) { + 12 │ - ····return·null + 12 │ + ····return·null; + 13 13 │ } + 14 │ - ··context.fillStyle·=·backdrop + 15 │ - ··context.fillRect(0,·0,·1,·1) + 16 │ - ··context.fillStyle·=·color + 17 │ - ··context.fillRect(0,·0,·1,·1) + 18 │ - ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data + 19 │ - ··return·[r,·g,·b] + 14 │ + ··context.fillStyle·=·backdrop; + 15 │ + ··context.fillRect(0,·0,·1,·1); + 16 │ + ··context.fillStyle·=·color; + 17 │ + ··context.fillRect(0,·0,·1,·1); + 18 │ + ··const·[r,·g,·b]·=·context.getImageData(0,·0,·1,·1).data; + 19 │ + ··return·[r,·g,·b]; + 20 20 │ } + 21 21 │ + 22 22 │ function toHex(rgb: number[]) { + 23 │ - ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}` + 23 │ + ··return·`#${rgb.map((value)·=>·value.toString(16).padStart(2,·"0")).join("")}`; + 24 24 │ } + 25 25 │ + 26 26 │ function luminance([r, g, b]: number[]) { + 27 27 │ const [R, G, B] = [r, g, b].map((value) => { + 28 │ - ····const·channel·=·value·/·255 + 29 │ - ····return·channel·<=·0.03928 + 30 │ - ······?·channel·/·12.92 + 31 │ - ······:·((channel·+·0.055)·/·1.055)·**·2.4 + 32 │ - ··}) + 33 │ - ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B + 28 │ + ····const·channel·=·value·/·255; + 29 │ + ····return·channel·<=·0.03928·?·channel·/·12.92·:·((channel·+·0.055)·/·1.055)·**·2.4; + 30 │ + ··}); + 31 │ + ··return·0.2126·*·R·+·0.7152·*·G·+·0.0722·*·B; + 34 32 │ } + 35 33 │ + 36 34 │ function contrast(a: number[], b: number[]) { + 37 │ - ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x) + 38 │ - ··return·(light·+·0.05)·/·(dark·+·0.05) + 35 │ + ··const·[light,·dark]·=·[luminance(a),·luminance(b)].sort((x,·y)·=>·y·-·x); + 36 │ + ··return·(light·+·0.05)·/·(dark·+·0.05); + 39 37 │ } + 40 38 │ + ······· │ + 45 43 │ className, + 46 44 │ }: { + 47 │ - ··name:·string + 48 │ - ··background:·string + 49 │ - ··foreground:·string + 50 │ - ··className?:·string + 45 │ + ··name:·string; + 46 │ + ··background:·string; + 47 │ + ··foreground:·string; + 48 │ + ··className?:·string; + 51 49 │ }) { + 52 │ - ··const·ref·=·React.useRef(null) + 53 │ - ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>( + 54 │ - ····null + 55 │ - ··) + 50 │ + ··const·ref·=·React.useRef(null); + 51 │ + ··const·[info,·setInfo]·=·React.useState<{·ratio:·number;·bg:·string·}·|·null>(null); + 56 52 │ + 57 53 │ React.useEffect(() => { + 58 │ - ····const·element·=·ref.current + 54 │ + ····const·element·=·ref.current; + 59 55 │ if (!element) { + 60 │ - ······return + 56 │ + ······return; + 61 57 │ } + 62 58 │ // Re-measure when the theme class on changes. + 63 59 │ const measure = () => { + 64 │ - ······const·style·=·getComputedStyle(element) + 65 │ - ······const·page·=·getComputedStyle(document.body).backgroundColor + 66 │ - ······const·bg·=·toRgb(style.backgroundColor,·page) + 60 │ + ······const·style·=·getComputedStyle(element); + 61 │ + ······const·page·=·getComputedStyle(document.body).backgroundColor; + 62 │ + ······const·bg·=·toRgb(style.backgroundColor,·page); + 67 63 │ if (!bg) { + 68 │ - ········return + 64 │ + ········return; + 69 65 │ } + 70 │ - ······const·fg·=·toRgb(style.color,·toHex(bg)) + 66 │ + ······const·fg·=·toRgb(style.color,·toHex(bg)); + 71 67 │ if (fg) { + 72 │ - ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}) + 68 │ + ········setInfo({·ratio:·contrast(bg,·fg),·bg:·toHex(bg)·}); + 73 69 │ } + 74 │ - ····} + 75 │ - ····measure() + 76 │ - ····const·observer·=·new·MutationObserver(measure) + 77 │ - ····observer.observe(document.documentElement,·{·attributes:·true·}) + 78 │ - ····return·()·=>·observer.disconnect() + 79 │ - ··},·[]) + 70 │ + ····}; + 71 │ + ····measure(); + 72 │ + ····const·observer·=·new·MutationObserver(measure); + 73 │ + ····observer.observe(document.documentElement,·{·attributes:·true·}); + 74 │ + ····return·()·=>·observer.disconnect(); + 75 │ + ··},·[]); + 80 76 │ + 81 77 │ const level = !info + ······· │ + 87 83 │ : info.ratio >= 3 + 88 84 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 85 │ + ··········:·"Fail"; + 90 86 │ + 91 87 │ return ( + 92 │ - ····
+ 88 │ + ···· + 98 89 │
+ 118 │ - ········{info·&&·( + 119 │ - ·········· + 120 │ - ············{info.bg} + 121 │ - ·········· + 122 │ - ········)} + 109 │ + ········{info·&&·{info.bg}} + 123 110 │
+ 124 111 │
+ 125 │ - ··) + 112 │ + ··); + 126 113 │ } + 127 114 │ + + +.agents/skills/shadcn/assets/showcase/preview-states.css format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 11 11 │ } + 12 12 │ } + 13 │ - @custom-variant·focus-visible·(&:focus-visible,·&[data-preview~="focus"]); + 14 │ - @custom-variant·active·(&:active,·&[data-preview~="active"]); + 13 │ + @custom-variant·focus-visible·(&:focus-visible, + 14 │ + &[data-preview~="focus"]); + 15 │ + @custom-variant·active·(&:active, + 16 │ + &[data-preview~="active"]); + 15 17 │ + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:31:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 29 │ + 30 │ {states.map((state) => ( + > 31 │ 32 │ key={state} + > 33 │ scope="col" + > 34 │ className="text-left font-mono text-xs font-normal text-muted-foreground" + > 35 │ > + │ ^ + 36 │ {state} + 37 │ + + i Safe fix: Sort the JSX props. + + 30 30 │ {states.map((state) => ( + 31 31 │ + 36 36 │ {state} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:44:15 assist/source/useSortedAttributes FIXABLE ━━━━━━━━━━ + + × The attributes are not sorted. + + 42 │ {rows.map((row) => ( + 43 │ + > 44 │ 45 │ scope="row" + > 46 │ className="pr-4 text-left font-mono text-xs font-normal text-muted-foreground" + > 47 │ > + │ ^ + 48 │ {row} + 49 │ + + i Safe fix: Sort the JSX props. + + 43 43 │ + 44 44 │ + 48 48 │ {row} + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 │ - import·*·as·React·from·"react" + 1 │ + import·*·as·React·from·"react"; + 2 2 │ + 3 │ - import·{·cn·}·from·"@/lib/utils" + 3 │ + import·{·cn·}·from·"@/lib/utils"; + 4 4 │ + 5 │ - const·defaultStates·=·[ + 6 │ - ··"default", + 7 │ - ··"hover", + 8 │ - ··"focus", + 9 │ - ··"active", + 10 │ - ··"disabled", + 11 │ - ]·as·const + 5 │ + const·defaultStates·=·["default",·"hover",·"focus",·"active",·"disabled"]·as·const; + 12 6 │ + 13 7 │ export function StateMatrix({ + ····· │ + 17 11 │ className, + 18 12 │ }: { + 19 │ - ··rows:·readonly·Row[] + 20 │ - ··states?:·readonly·string[] + 21 │ - ··render:·(row:·Row,·state:·string)·=>·React.ReactNode + 22 │ - ··className?:·string + 13 │ + ··rows:·readonly·Row[]; + 14 │ + ··states?:·readonly·string[]; + 15 │ + ··render:·(row:·Row,·state:·string)·=>·React.ReactNode; + 16 │ + ··className?:·string; + 23 17 │ }) { + 24 18 │ return ( + ····· │ + 56 50 │ + 57 51 │
+ 58 │ - ··) + 52 │ + ··); + 59 53 │ } + 60 54 │ + ····· │ + 62 56 │ export function previewState(state: string) { + 63 57 │ if (state === "disabled") { + 64 │ - ····return·{·disabled:·true·} + 58 │ + ····return·{·disabled:·true·}; + 65 59 │ } + 66 60 │ + 67 61 │ if (["hover", "focus", "active"].includes(state)) { + 68 │ - ····return·{·"data-preview":·state·} + 62 │ + ····return·{·"data-preview":·state·}; + 69 63 │ } + 70 64 │ + 71 │ - ··return·{} + 65 │ + ··return·{}; + 72 66 │ } + 73 67 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs:4:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━ + + × The imports and exports are not sorted. + + 2 │ // Lists installed UI components that no file in the showcase imports. + 3 │ // Usage: node showcase-coverage.mjs + > 4 │ import { readdirSync, readFileSync, statSync } from "node:fs" + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 5 │ import { basename, extname, join, resolve } from "node:path" + 6 │ + + i Safe fix: Organize Imports (Biome) + + 1 1 │ #!/usr/bin/env node + 2 │ + + 2 3 │ // Lists installed UI components that no file in the showcase imports. + 3 4 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ + import·{·readFileSync,·readdirSync,·statSync·}·from·"node:fs" + 5 6 │ import { basename, extname, join, resolve } from "node:path" + 6 7 │ + + +.agents/skills/shadcn/scripts/showcase-coverage.mjs format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 2 2 │ // Lists installed UI components that no file in the showcase imports. + 3 3 │ // Usage: node showcase-coverage.mjs + 4 │ - import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs" + 5 │ - import·{·basename,·extname,·join,·resolve·}·from·"node:path" + 4 │ + import·{·readdirSync,·readFileSync,·statSync·}·from·"node:fs"; + 5 │ + import·{·basename,·extname,·join,·resolve·}·from·"node:path"; + 6 6 │ + 7 │ - const·[uiArg,·...roots]·=·process.argv.slice(2) + 7 │ + const·[uiArg,·...roots]·=·process.argv.slice(2); + 8 8 │ + 9 9 │ if (!uiArg || roots.length === 0) { + 10 │ - ··console.error("Usage:·node·showcase-coverage.mjs··") + 11 │ - ··process.exit(1) + 10 │ + ··console.error("Usage:·node·showcase-coverage.mjs··"); + 11 │ + ··process.exit(1); + 12 12 │ } + 13 13 │ + 14 │ - const·uiDir·=·resolve(uiArg) + 14 │ + const·uiDir·=·resolve(uiArg); + 15 15 │ + 16 16 │ const components = readdirSync(uiDir) + 17 17 │ .filter((file) => [".tsx", ".ts"].includes(extname(file))) + 18 │ - ··.map((file)·=>·basename(file,·extname(file))) + 18 │ + ··.map((file)·=>·basename(file,·extname(file))); + 19 19 │ + 20 20 │ function walk(path) { + 21 21 │ if (statSync(path).isFile()) { + 22 │ - ····return·[path] + 22 │ + ····return·[path]; + 23 23 │ } + 24 24 │ + 25 25 │ return readdirSync(path).flatMap((entry) => { + 26 │ - ····const·child·=·join(path,·entry) + 26 │ + ····const·child·=·join(path,·entry); + 27 27 │ // Skip the ui directory so components don't count as using each other. + 28 28 │ if (entry === "node_modules" || child === uiDir) { + 29 │ - ······return·[] + 29 │ + ······return·[]; + 30 30 │ } + 31 │ - ····return·walk(child) + 32 │ - ··}) + 31 │ + ····return·walk(child); + 32 │ + ··}); + 33 33 │ } + 34 34 │ + ····· │ + 38 38 │ .filter((file) => /\.(tsx?|jsx?)$/.test(file)) + 39 39 │ .map((file) => readFileSync(file, "utf8")) + 40 │ - ··.join("\n") + 40 │ + ··.join("\n"); + 41 41 │ + 42 │ - const·missing·=·components.filter( + 43 │ - ··(name)·=>·!new·RegExp(`/ui/${name}["']`).test(source) + 44 │ - ) + 42 │ + const·missing·=·components.filter((name)·=>·!new·RegExp(`/ui/${name}["']`).test(source)); + 45 43 │ + 46 │ - console.log( + 47 │ - ··`${components.length·-·missing.length}/${components.length}·components·shown.` + 48 │ - ) + 44 │ + console.log(`${components.length·-·missing.length}/${components.length}·components·shown.`); + 49 45 │ + 50 46 │ if (missing.length > 0) { + 51 │ - ··console.log(`Missing:·${missing.join(",·")}`) + 52 │ - ··process.exit(1) + 47 │ + ··console.log(`Missing:·${missing.join(",·")}`); + 48 │ + ··process.exit(1); + 53 49 │ } + 54 50 │ + + +.agents/skills/ui-ux-pro-max/data/data-provenance.json format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 17 17 │ "verifiedAt": "2026-08-12", + 18 18 │ "sla": "needs-review", + 19 │ - ······"appliesTo":·[ + 20 │ - ········"design-system" + 21 │ - ······], + 19 │ + ······"appliesTo":·["design-system"], + 22 20 │ "confidence": 0.88, + 23 21 │ "sources": [ + ········· │ + 42 40 │ "verifiedAt": "2026-08-12", + 43 41 │ "sla": "needs-review", + 44 │ - ······"appliesTo":·[ + 45 │ - ········"design-system" + 46 │ - ······], + 42 │ + ······"appliesTo":·["design-system"], + 47 43 │ "confidence": 0.92, + 48 44 │ "sources": [ + ········· │ + 67 63 │ "verifiedAt": "2026-08-12", + 68 64 │ "sla": "needs-review", + 69 │ - ······"appliesTo":·[ + 70 │ - ········"design-system" + 71 │ - ······], + 65 │ + ······"appliesTo":·["design-system"], + 72 66 │ "confidence": 0.93, + 73 67 │ "sources": [ + ········· │ + 92 86 │ "verifiedAt": "2026-08-12", + 93 87 │ "sla": "needs-review", + 94 │ - ······"appliesTo":·[ + 95 │ - ········"design-system" + 96 │ - ······], + 88 │ + ······"appliesTo":·["design-system"], + 97 89 │ "confidence": 0.93, + 98 90 │ "sources": [ + ········· │ + 117 109 │ "verifiedAt": "2026-08-12", + 118 110 │ "sla": "needs-review", + 119 │ - ······"appliesTo":·[ + 120 │ - ········"design-system" + 121 │ - ······], + 111 │ + ······"appliesTo":·["design-system"], + 122 112 │ "confidence": 0.94, + 123 113 │ "sources": [ + ········· │ + 142 132 │ "verifiedAt": "2026-08-12", + 143 133 │ "sla": "needs-review", + 144 │ - ······"appliesTo":·[ + 145 │ - ········"design-system" + 146 │ - ······], + 134 │ + ······"appliesTo":·["design-system"], + 147 135 │ "confidence": 0.91, + 148 136 │ "sources": [ + ········· │ + 167 155 │ "verifiedAt": "2026-08-12", + 168 156 │ "sla": "needs-review", + 169 │ - ······"appliesTo":·[ + 170 │ - ········"design-system" + 171 │ - ······], + 157 │ + ······"appliesTo":·["design-system"], + 172 158 │ "confidence": 0.93, + 173 159 │ "sources": [ + ········· │ + 192 178 │ "verifiedAt": "2026-08-12", + 193 179 │ "sla": "needs-review", + 194 │ - ······"appliesTo":·[ + 195 │ - ········"design-system" + 196 │ - ······], + 180 │ + ······"appliesTo":·["design-system"], + 197 181 │ "confidence": 0.9, + 198 182 │ "sources": [ + ········· │ + 217 201 │ "verifiedAt": "2026-08-12", + 218 202 │ "sla": "needs-review", + 219 │ - ······"appliesTo":·[ + 220 │ - ········"design-system" + 221 │ - ······], + 203 │ + ······"appliesTo":·["design-system"], + 222 204 │ "confidence": 0.89, + 223 205 │ "sources": [ + ········· │ + 242 224 │ "verifiedAt": "2026-08-12", + 243 225 │ "sla": "needs-review", + 244 │ - ······"appliesTo":·[ + 245 │ - ········"design-system" + 246 │ - ······], + 226 │ + ······"appliesTo":·["design-system"], + 247 227 │ "confidence": 0.93, + 248 228 │ "sources": [ + ········· │ + 267 247 │ "verifiedAt": "2026-08-12", + 268 248 │ "sla": "needs-review", + 269 │ - ······"appliesTo":·[ + 270 │ - ········"design-system" + 271 │ - ······], + 249 │ + ······"appliesTo":·["design-system"], + 272 250 │ "confidence": 0.9, + 273 251 │ "sources": [ + ········· │ + 292 270 │ "verifiedAt": "2026-08-12", + 293 271 │ "sla": "needs-review", + 294 │ - ······"appliesTo":·[ + 295 │ - ········"design-system" + 296 │ - ······], + 272 │ + ······"appliesTo":·["design-system"], + 297 273 │ "confidence": 0.92, + 298 274 │ "sources": [ + ········· │ + 317 293 │ "verifiedAt": "2026-08-12", + 318 294 │ "sla": "needs-review", + 319 │ - ······"appliesTo":·[ + 320 │ - ········"design-system" + 321 │ - ······], + 295 │ + ······"appliesTo":·["design-system"], + 322 296 │ "confidence": 0.88, + 323 297 │ "sources": [ + ········· │ + 342 316 │ "verifiedAt": "2026-08-12", + 343 317 │ "sla": "needs-review", + 344 │ - ······"appliesTo":·[ + 345 │ - ········"design-system" + 346 │ - ······], + 318 │ + ······"appliesTo":·["design-system"], + 347 319 │ "confidence": 0.93, + 348 320 │ "sources": [ + ········· │ + 367 339 │ "verifiedAt": "2026-08-12", + 368 340 │ "sla": "needs-review", + 369 │ - ······"appliesTo":·[ + 370 │ - ········"design-system" + 371 │ - ······], + 341 │ + ······"appliesTo":·["design-system"], + 372 342 │ "confidence": 0.91, + 373 343 │ "sources": [ + ········· │ + 392 362 │ "verifiedAt": "2026-08-12", + 393 363 │ "sla": "needs-review", + 394 │ - ······"appliesTo":·[ + 395 │ - ········"design-system" + 396 │ - ······], + 364 │ + ······"appliesTo":·["design-system"], + 397 365 │ "confidence": 0.95, + 398 366 │ "sources": [ + ········· │ + 417 385 │ "verifiedAt": "2026-08-12", + 418 386 │ "sla": "needs-review", + 419 │ - ······"appliesTo":·[ + 420 │ - ········"design-system" + 421 │ - ······], + 387 │ + ······"appliesTo":·["design-system"], + 422 388 │ "confidence": 0.92, + 423 389 │ "sources": [ + ········· │ + 442 408 │ "verifiedAt": "2026-08-12", + 443 409 │ "sla": "needs-review", + 444 │ - ······"appliesTo":·[ + 445 │ - ········"design-system" + 446 │ - ······], + 410 │ + ······"appliesTo":·["design-system"], + 447 411 │ "confidence": 0.93, + 448 412 │ "sources": [ + ········· │ + 467 431 │ "verifiedAt": "2026-08-12", + 468 432 │ "sla": "needs-review", + 469 │ - ······"appliesTo":·[ + 470 │ - ········"design-system" + 471 │ - ······], + 433 │ + ······"appliesTo":·["design-system"], + 278 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-api.json format ━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 29 29 │ "category": "sans-serif", + 30 30 │ "kind": "webfonts#webfont", + 31 │ - ······"axes":·[ + 32 │ - ········{"tag":·"wght",·"start":·100,·"end":·900} + 33 │ - ······] + 31 │ + ······"axes":·[{·"tag":·"wght",·"start":·100,·"end":·900·}] + 34 32 │ } + 35 33 │ ] + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/google-catalog.json format ━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 3 3 │ "familyMetadataList": [ + 4 4 │ { + 5 │ - ······"family":·"Zeta·Serif",·"displayName":·null,·"category":·"Serif",·"stroke":·"Serif", + 6 │ - ······"classifications":·["Display"],·"size":·1000,·"subsets":·["menu",·"latin-ext",·"latin"], + 5 │ + ······"family":·"Zeta·Serif", + 6 │ + ······"displayName":·null, + 7 │ + ······"category":·"Serif", + 8 │ + ······"stroke":·"Serif", + 9 │ + ······"classifications":·["Display"], + 10 │ + ······"size":·1000, + 11 │ + ······"subsets":·["menu",·"latin-ext",·"latin"], + 7 12 │ "fonts": { + 8 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 9 │ - ········"700":·{"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 10 │ - ········"700i":·{"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2} + 11 │ - ······},·"axes":·[],·"designers":·["Zeta·Studio"], + 12 │ - ······"lastModified":·"2025-06-02",·"dateAdded":·"2018-04-09",·"popularity":·90, + 13 │ - ······"trending":·11,·"defaultSort":·9,·"androidFragment":·null,·"isNoto":·false, + 14 │ - ······"colorCapabilities":·[],·"primaryScript":·"",·"primaryLanguage":·"",·"isOpenSource":·true, + 15 │ - ······"isBrandFont":·false,·"languages":·[] + 13 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 14 │ + ········"700":·{·"thickness":·7,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 15 │ + ········"700i":·{·"thickness":·7,·"slant":·4,·"width":·7,·"lineHeight":·1.2·} + 16 │ + ······}, + 17 │ + ······"axes":·[], + 18 │ + ······"designers":·["Zeta·Studio"], + 19 │ + ······"lastModified":·"2025-06-02", + 20 │ + ······"dateAdded":·"2018-04-09", + 21 │ + ······"popularity":·90, + 22 │ + ······"trending":·11, + 23 │ + ······"defaultSort":·9, + 24 │ + ······"androidFragment":·null, + 25 │ + ······"isNoto":·false, + 26 │ + ······"colorCapabilities":·[], + 27 │ + ······"primaryScript":·"", + 28 │ + ······"primaryLanguage":·"", + 29 │ + ······"isOpenSource":·true, + 30 │ + ······"isBrandFont":·false, + 31 │ + ······"languages":·[] + 16 32 │ }, + 17 33 │ { + 18 │ - ······"family":·"Alpha·Sans",·"displayName":·null,·"category":·"Sans·Serif",·"stroke":·"Sans·Serif", + 19 │ - ······"classifications":·["Geometric"],·"size":·2000,·"subsets":·["menu",·"vietnamese",·"latin"], + 34 │ + ······"family":·"Alpha·Sans", + 35 │ + ······"displayName":·null, + 36 │ + ······"category":·"Sans·Serif", + 37 │ + ······"stroke":·"Sans·Serif", + 38 │ + ······"classifications":·["Geometric"], + 39 │ + ······"size":·2000, + 40 │ + ······"subsets":·["menu",·"vietnamese",·"latin"], + 20 41 │ "fonts": { + 21 │ - ········"400":·{"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2}, + 22 │ - ········"400i":·{"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2}, + 23 │ - ········"500":·{"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2} + 42 │ + ········"400":·{·"thickness":·5,·"slant":·1,·"width":·7,·"lineHeight":·1.2·}, + 43 │ + ········"400i":·{·"thickness":·5,·"slant":·4,·"width":·7,·"lineHeight":·1.2·}, + 44 │ + ········"500":·{·"thickness":·6,·"slant":·1,·"width":·7,·"lineHeight":·1.2·} + 24 45 │ }, + 25 │ - ······"axes":·[{"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0}], + 26 │ - ······"designers":·["Ada·Type",·"Binh·Fonts"],·"lastModified":·"2025-01-03", + 27 │ - ······"dateAdded":·"2020-02-20",·"popularity":·42,·"trending":·7,·"defaultSort":·4, + 28 │ - ······"androidFragment":·null,·"isNoto":·false,·"colorCapabilities":·[],·"primaryScript":·"", + 29 │ - ······"primaryLanguage":·"",·"isOpenSource":·true,·"isBrandFont":·false,·"languages":·[] + 46 │ + ······"axes":·[{·"tag":·"wght",·"min":·100.0,·"max":·900.0,·"defaultValue":·400.0·}], + 47 │ + ······"designers":·["Ada·Type",·"Binh·Fonts"], + 48 │ + ······"lastModified":·"2025-01-03", + 49 │ + ······"dateAdded":·"2020-02-20", + 50 │ + ······"popularity":·42, + 51 │ + ······"trending":·7, + 52 │ + ······"defaultSort":·4, + 53 │ + ······"androidFragment":·null, + 54 │ + ······"isNoto":·false, + 55 │ + ······"colorCapabilities":·[], + 56 │ + ······"primaryScript":·"", + 57 │ + ······"primaryLanguage":·"", + 58 │ + ······"isOpenSource":·true, + 59 │ + ······"isBrandFont":·false, + 60 │ + ······"languages":·[] + 30 61 │ } + 31 62 │ ], + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/catalogs/phosphor-core.json format ━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 15 │ ····"alias":·{·"name":·"back-arrow",·"pascal_name":·"BackArrow"·}, + │ + + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-cases.json format ━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 9 9 │ "globalNegativeApplicability": { + 10 10 │ "tag": "hard-negative", + 11 │ - ····"domains":·["style",·"color",·"chart",·"landing",·"product",·"ux",·"typography",·"icons",·"gsap",·"react",·"web",·"google-fonts"], + 12 │ - ····"stacks":·["react",·"nextjs",·"vue",·"svelte",·"astro",·"swiftui",·"react-native",·"flutter",·"nuxtjs",·"nuxt-ui",·"html-tailwind",·"shadcn",·"jetpack-compose",·"threejs",·"angular",·"laravel",·"javafx",·"wpf",·"winui",·"avalonia",·"uno",·"uwp"], + 11 │ + ····"domains":·[ + 12 │ + ······"style", + 13 │ + ······"color", + 14 │ + ······"chart", + 15 │ + ······"landing", + 16 │ + ······"product", + 17 │ + ······"ux", + 18 │ + ······"typography", + 19 │ + ······"icons", + 20 │ + ······"gsap", + 21 │ + ······"react", + 22 │ + ······"web", + 23 │ + ······"google-fonts" + 24 │ + ····], + 25 │ + ····"stacks":·[ + 26 │ + ······"react", + 27 │ + ······"nextjs", + 28 │ + ······"vue", + 29 │ + ······"svelte", + 30 │ + ······"astro", + 31 │ + ······"swiftui", + 32 │ + ······"react-native", + 33 │ + ······"flutter", + 34 │ + ······"nuxtjs", + 35 │ + ······"nuxt-ui", + 36 │ + ······"html-tailwind", + 37 │ + ······"shadcn", + 38 │ + ······"jetpack-compose", + 39 │ + ······"threejs", + 40 │ + ······"angular", + 41 │ + ······"laravel", + 42 │ + ······"javafx", + 43 │ + ······"wpf", + 44 │ + ······"winui", + 45 │ + ······"avalonia", + 46 │ + ······"uno", + 47 │ + ······"uwp" + 48 │ + ····], + 13 49 │ "interpretation": "Run every hard-negative case against all registered domains and stacks. Any returned row is an implicit grade-0 false positive; aggregate reporting may cap this cross-product separately." + 14 50 │ }, + 15 51 │ "cases": [ + 16 │ - ····{"id":"domain-style-glassmorphism","split":"calibration","mode":"domain","query":"frosted·glass·transparent·blurred·layered·UI","domain":"style","judgments":[{"identity":{"Style·Category":"Glassmorphism"},"grade":2}],"tags":["exact-intent","domain-positive"],"notes":"Canonical·visual·treatment,·expressed·through·its·descriptive·attributes."}, + 17 │ - ····{"id":"domain-style-accessible-paraphrase","split":"held_out","mode":"domain","query":"inclusive·high·contrast·interface·with·keyboard·nav·and·screen·readers","domain":"style","judgments":[{"identity":{"Style·Category":"Accessible·&·Ethical"},"grade":2},{"identity":{"Style·Category":"Inclusive·Design"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"A·style·request,·not·an·individual·UX·rule."}, + 18 │ - ····{"id":"domain-color-spa","split":"calibration","mode":"domain","query":"beauty·spa·wellness·soft·pink·lavender·palette","domain":"color","judgments":[{"identity":{"Product·Type":"Beauty/Spa/Wellness·Service"},"grade":2}],"tags":["product-palette","domain-positive"],"notes":"Uses·the·public·Product·Type·as·the·stable·palette·identity."}, + 19 │ - ····{"id":"domain-color-cyber-typo","split":"held_out","mode":"domain","query":"cybersecurty·threat·dashboard·matrix·green·dark·pallete","domain":"color","judgments":[{"identity":{"Product·Type":"Cybersecurity·Platform"},"grade":2}],"tags":["typo","domain-positive"],"notes":"Deliberately·misspells·cybersecurity·and·palette."}, + 20 │ - ····{"id":"domain-chart-time-series","split":"calibration","mode":"domain","query":"trend·over·time·growth·timeline·line·chart","domain":"chart","judgments":[{"identity":{"Data·Type":"Trend·Over·Time"},"grade":2},{"identity":{"Data·Type":"Time-Series·Forecast"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Forecasting·is·acceptable·only·as·a·secondary·interpretation."}, + 21 │ - ····{"id":"domain-chart-correlation-paraphrase","split":"held_out","mode":"domain","query":"show·whether·two·measures·move·together·using·dots·and·bubbles","domain":"chart","judgments":[{"identity":{"Data·Type":"Correlation·/·Distribution"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·canonical·words·scatter·and·correlation."}, + 22 │ - ····{"id":"domain-landing-pricing","split":"calibration","mode":"domain","query":"pricing·plans·tiers·comparison·landing·CTA","domain":"landing","judgments":[{"identity":{"Pattern·Name":"Pricing·Page·+·CTA"},"grade":2},{"identity":{"Pattern·Name":"Pricing-Focused·Landing"},"grade":2},{"identity":{"Pattern·Name":"Comparison·Table·+·CTA"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Both·dedicated·pricing·patterns·are·equally·valid."}, + 23 │ - ····{"id":"domain-landing-enterprise-typo","split":"held_out","mode":"domain","query":"enterprise·credibilty·trust·authority·conversion·page","domain":"landing","judgments":[{"identity":{"Pattern·Name":"Trust·&·Authority·+·Conversion"},"grade":2},{"identity":{"Pattern·Name":"Enterprise·Gateway"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·credibility·while·preserving·the·enterprise·intent."}, + 24 │ - ····{"id":"domain-product-spa","split":"calibration","mode":"domain","query":"salon·massage·skincare·booking·and·wellness·service","domain":"product","judgments":[{"identity":{"Product·Type":"Beauty/Spa/Wellness·Service"},"grade":2},{"identity":{"Product·Type":"Booking·&·Appointment·App"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"The·industry·is·primary;·booking·is·a·supporting·capability."}, + 25 │ - ····{"id":"domain-product-security-paraphrase","split":"held_out","mode":"domain","query":"platform·for·monitoring·digital·threats·and·protecting·systems","domain":"product","judgments":[{"identity":{"Product·Type":"Cybersecurity·Platform"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·exact·keyword·cyber."}, + 26 │ - ····{"id":"domain-ux-keyboard-focus","split":"calibration","mode":"domain","query":"visible·focus·and·complete·keyboard·navigation·for·web·users","domain":"ux","judgments":[{"identity":{"Category":"Accessibility","Issue":"Keyboard·Navigation","Platform":"Web"},"grade":2},{"identity":{"Category":"Interaction","Issue":"Focus·States","Platform":"All"},"grade":2}],"tags":["multi-acceptable","domain-positive"],"notes":"Both·navigation·coverage·and·visible·focus·are·explicitly·requested."}, + 27 │ - ····{"id":"domain-ux-motion-paraphrase","split":"held_out","mode":"domain","query":"stop·animations·making·people·sick·and·honor·their·motion·preference","domain":"ux","judgments":[{"identity":{"Category":"Animation","Issue":"Reduced·Motion","Platform":"All"},"grade":2},{"identity":{"Category":"Animation","Issue":"Excessive·Motion","Platform":"All"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"Preference·support·is·stronger·than·generic·excessive-motion·advice."}, + 28 │ - ····{"id":"domain-typography-luxury","split":"calibration","mode":"domain","query":"elegant·luxury·serif·heading·with·clean·readable·body·font","domain":"typography","judgments":[{"identity":{"Font·Pairing·Name":"Classic·Elegant"},"grade":2},{"identity":{"Font·Pairing·Name":"Luxury·Serif"},"grade":2},{"identity":{"Font·Pairing·Name":"Luxury·Minimalist"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Several·curated·pairs·directly·satisfy·this·intentionally·broad·mood."}, + 29 │ - ····{"id":"domain-typography-accessible-typo","split":"held_out","mode":"domain","query":"dyslexia·frendly·hyperlegible·inclusive·type·pairing","domain":"typography","judgments":[{"identity":{"Font·Pairing·Name":"Accessibility·First"},"grade":2},{"identity":{"Font·Pairing·Name":"Academic/Research"},"grade":1}],"tags":["typo","accessibility","domain-positive"],"notes":"Misspells·friendly;·the·all-Atkinson·pairing·is·the·direct·answer."}, + 30 │ - ····{"id":"domain-icons-search","split":"calibration","mode":"domain","query":"find·lookup·search·icon·for·a·query·field","domain":"icons","judgments":[{"identity":{"Category":"Action","Icon·Name":"magnifying-glass","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Action","Icon·Name":"funnel","Library":"Phosphor"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"Filter·is·useful·but·not·equivalent·to·search."}, + 31 │ - ····{"id":"domain-icons-warning-typo","split":"held_out","mode":"domain","query":"warnng·caution·danger·status·symbol","domain":"icons","judgments":[{"identity":{"Category":"Status","Icon·Name":"warning","Library":"Phosphor"},"grade":2},{"identity":{"Category":"Status","Icon·Name":"warning-circle","Library":"Phosphor"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·warning·and·allows·the·circled·variant·as·secondary."}, + 32 │ - ····{"id":"domain-gsap-scroll-reveal","split":"calibration","mode":"domain","query":"GSAP·reveal·elements·when·they·enter·the·viewport·on·scroll","domain":"gsap","judgments":[{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Subtle","Trigger":"scroll·(viewport·enter)"},"grade":2},{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Standard","Trigger":"scroll·(viewport·enter)"},"grade":2},{"identity":{"Category":"Scroll·Reveal","Intensity·Tier":"Complex","Trigger":"scroll·(continuous·scrub)"},"grade":1}],"tags":["multi-acceptable","domain-positive"],"notes":"Viewport-entry·variants·are·direct;·continuous·scrub·is·related·but·stronger."}, + 33 │ - ····{"id":"domain-gsap-skeleton-typo","split":"held_out","mode":"domain","query":"skeletn·shimmer·loader·while·async·content·waits","domain":"gsap","judgments":[{"identity":{"Category":"Loading·/·Skeleton","Intensity·Tier":"Subtle","Trigger":"on·mount·/·async·wait"},"grade":2},{"identity":{"Category":"Loading·/·Skeleton","Intensity·Tier":"Standard","Trigger":"on·mount·/·async·wait"},"grade":1}],"tags":["typo","domain-positive"],"notes":"Misspells·skeleton;·subtle·shimmer·is·the·most·exact·row."}, + 34 │ - ····{"id":"domain-react-parallel-promises","split":"calibration","mode":"domain","query":"React·Promise.all·parallel·concurrent·requests·instead·of·waterfall","domain":"react","judgments":[{"identity":{"Category":"Async·Waterfall","Issue":"Promise.all·Parallel","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Async·Waterfall","Issue":"Dependency·Parallelization","Platform":"React/Next.js"},"grade":1}],"tags":["exact-intent","domain-positive"],"notes":"The·first·row·exactly·names·Promise.all."}, + 35 │ - ····{"id":"domain-react-dynamic-import-paraphrase","split":"held_out","mode":"domain","query":"load·a·heavy·JavaScript·chunk·only·when·the·component·is·needed","domain":"react","judgments":[{"identity":{"Category":"Bundle·Size","Issue":"Dynamic·Imports","Platform":"React/Next.js"},"grade":2},{"identity":{"Category":"Bundle·Size","Issue":"Conditional·Loading","Platform":"React/Next.js"},"grade":1}],"tags":["paraphrase","domain-positive"],"notes":"Avoids·the·canonical·term·lazy·in·the·main·clause."}, + 36 │ - ····{"id":"domain-web-icon-label","split":"calibration","mode":"domain","query":"accessible·name·for·an·icon-only·mobile·button","domain":"web","judgments":[{"identity":{"Category":"Accessibility","Issue":"Icon·Button·Labels","Platform":"iOS/Android/React·Native"},"grade":2}],"tags":["accessibility","domain-positive"],"notes":"App-interface·guidance·uses·the·public·web·domain·key."}, + 37 │ - ····{"id":"domain-web-virtual-list-paraphrase","split":"held_out","mode":"domain","query":"keep·a·very·long·mobile·list·smooth·without·rendering·every·row","domain":"web","judgments":[{"identity":{"Category":"Performance","Issue":"Virtualize·Long·Lists","Platform":"iOS/Android/React·Native"},"grade":2}],"tags":["paraphrase","domain-positive"],"notes":"Describes·virtualization·without·naming·FlatList."}, + 38 │ - ····{"id":"domain-google-fonts-inter","split":"calibration","mode":"domain","query":"Inter·variable·sans·serif·Google·font·family","domain":"google-fonts","judgments":[{"identity":{"Family":"Inter"},"grade":2},{"identity":{"Family":"Inter·Tight"},"grade":1}],"tags":["exact-entity","domain-positive"],"notes":"Exact·family·is·preferred·over·its·related·Tight·family."}, + 39 │ - ····{"id":"domain-google-fonts-atkinson-paraphrase","split":"held_out","mode":"domain","query":"hyperlegible·accessible·sans·typeface·for·easier·reading","domain":"google-fonts","judgments":[{"identity":{"Family":"Atkinson·Hyperlegible"},"grade":2},{"identity":{"Family":"Atkinson·Hyperlegible·Next"},"grade":1}],"tags":["paraphrase","accessibility","domain-positive"],"notes":"The·established·family·is·locked;·its·newer·related·family·is·acceptable."}, + 52 │ + ····{ + 53 │ + ······"id":·"domain-style-glassmorphism", + 54 │ + ······"split":·"calibration", + 55 │ + ······"mode":·"domain", + 56 │ + ······"query":·"frosted·glass·transparent·blurred·layered·UI", + 57 │ + ······"domain":·"style", + 58 │ + ······"judgments":·[{·"identity":·{·"Style·Category":·"Glassmorphism"·},·"grade":·2·}], + 59 │ + ······"tags":·["exact-intent",·"domain-positive"], + 60 │ + ······"notes":·"Canonical·visual·treatment,·expressed·through·its·descriptive·attributes." + 61 │ + ····}, + 62 │ + ····{ + 63 │ + ······"id":·"domain-style-accessible-paraphrase", + 64 │ + ······"split":·"held_out", + 65 │ + ······"mode":·"domain", + 66 │ + ······"query":·"inclusive·high·contrast·interface·with·keyboard·nav·and·screen·readers", + 67 │ + ······"domain":·"style", + 68 │ + ······"judgments":·[ + 69 │ + ········{·"identity":·{·"Style·Category":·"Accessible·&·Ethical"·},·"grade":·2·}, + 70 │ + ········{·"identity":·{·"Style·Category":·"Inclusive·Design"·},·"grade":·1·} + 71 │ + ······], + 72 │ + ······"tags":·["paraphrase",·"domain-positive"], + 73 │ + ······"notes":·"A·style·request,·not·an·individual·UX·rule." + 74 │ + ····}, + 75 │ + ····{ + 76 │ + ······"id":·"domain-color-spa", + 77 │ + ······"split":·"calibration", + 78 │ + ······"mode":·"domain", + 79 │ + ······"query":·"beauty·spa·wellness·soft·pink·lavender·palette", + 80 │ + ······"domain":·"color", + 81 │ + ······"judgments":·[{·"identity":·{·"Product·Type":·"Beauty/Spa/Wellness·Service"·},·"grade":·2·}], + 82 │ + ······"tags":·["product-palette",·"domain-positive"], + 83 │ + ······"notes":·"Uses·the·public·Product·Type·as·the·stable·palette·identity." + 84 │ + ····}, + 85 │ + ····{ + 86 │ + ······"id":·"domain-color-cyber-typo", + 87 │ + ······"split":·"held_out", + 88 │ + ······"mode":·"domain", + 89 │ + ······"query":·"cybersecurty·threat·dashboard·matrix·green·dark·pallete", + 90 │ + ······"domain":·"color", + 91 │ + ······"judgments":·[{·"identity":·{·"Product·Type":·"Cybersecurity·Platform"·},·"grade":·2·}], + 92 │ + ······"tags":·["typo",·"domain-positive"], + 93 │ + ······"notes":·"Deliberately·misspells·cybersecurity·and·palette." + 94 │ + ····}, + 95 │ + ····{ + 96 │ + ······"id":·"domain-chart-time-series", + 97 │ + ······"split":·"calibration", + 98 │ + ······"mode":·"domain", + 99 │ + ······"query":·"trend·over·time·growth·timeline·line·chart", + 100 │ + ······"domain":·"chart", + 101 │ + ······"judgments":·[ + 102 │ + ········{·"identity":·{·"Data·Type":·"Trend·Over·Time"·},·"grade":·2·}, + 103 │ + ········{·"identity":·{·"Data·Type":·"Time-Series·Forecast"·},·"grade":·1·} + 104 │ + ······], + 105 │ + ······"tags":·["exact-intent",·"domain-positive"], + 106 │ + ······"notes":·"Forecasting·is·acceptable·only·as·a·secondary·interpretation." + 107 │ + ····}, + 108 │ + ····{ + 109 │ + ······"id":·"domain-chart-correlation-paraphrase", + 110 │ + ······"split":·"held_out", + 111 │ + ······"mode":·"domain", + 112 │ + ······"query":·"show·whether·two·measures·move·together·using·dots·and·bubbles", + 113 │ + ······"domain":·"chart", + 114 │ + ······"judgments":·[{·"identity":·{·"Data·Type":·"Correlation·/·Distribution"·},·"grade":·2·}], + 115 │ + ······"tags":·["paraphrase",·"domain-positive"], + 116 │ + ······"notes":·"Avoids·the·canonical·words·scatter·and·correlation." + 117 │ + ····}, + 118 │ + ····{ + 119 │ + ······"id":·"domain-landing-pricing", + 120 │ + ······"split":·"calibration", + 121 │ + ······"mode":·"domain", + 122 │ + ······"query":·"pricing·plans·tiers·comparison·landing·CTA", + 123 │ + ······"domain":·"landing", + 124 │ + ······"judgments":·[ + 125 │ + ········{·"identity":·{·"Pattern·Name":·"Pricing·Page·+·CTA"·},·"grade":·2·}, + 126 │ + ········{·"identity":·{·"Pattern·Name":·"Pricing-Focused·Landing"·},·"grade":·2·}, + 127 │ + ········{·"identity":·{·"Pattern·Name":·"Comparison·Table·+·CTA"·},·"grade":·1·} + 128 │ + ······], + 129 │ + ······"tags":·["multi-acceptable",·"domain-positive"], + 130 │ + ······"notes":·"Both·dedicated·pricing·patterns·are·equally·valid." + 131 │ + ····}, + 132 │ + ····{ + 1440 more lines truncated + + +.agents/skills/ui-ux-pro-max/scripts/tests/fixtures/relevance-thresholds.json format ━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 14 14 │ "tolerancePolicy": "A 1e-12 numeric tolerance permits floating-point representation only. Current known failures remain visible in relevance-baseline.json; the gate prevents regressions and does not claim final quality targets are met.", + 15 15 │ "metrics": { + 16 │ - ····"routingAccuracy":·{"floor":·0.875,·"tolerance":·1e-12}, + 17 │ - ····"precisionAt1":·{"floor":·0.7631578947368421,·"tolerance":·1e-12}, + 18 │ - ····"precisionAt3":·{"floor":·0.3815789473684211,·"tolerance":·1e-12}, + 19 │ - ····"mrrAt3":·{"floor":·0.8355263157894737,·"tolerance":·1e-12}, + 20 │ - ····"ndcgAt3":·{"floor":·0.8366350964266653,·"tolerance":·1e-12}, + 21 │ - ····"negativeAbstention":·{"floor":·0.9117647058823529,·"tolerance":·1e-12}, + 22 │ - ····"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 23 │ - ····"designSystemCoherence":·{"floor":·0.71875,·"tolerance":·1e-12} + 16 │ + ····"routingAccuracy":·{·"floor":·0.875,·"tolerance":·1e-12·}, + 17 │ + ····"precisionAt1":·{·"floor":·0.7631578947368421,·"tolerance":·1e-12·}, + 18 │ + ····"precisionAt3":·{·"floor":·0.3815789473684211,·"tolerance":·1e-12·}, + 19 │ + ····"mrrAt3":·{·"floor":·0.8355263157894737,·"tolerance":·1e-12·}, + 20 │ + ····"ndcgAt3":·{·"floor":·0.8366350964266653,·"tolerance":·1e-12·}, + 21 │ + ····"negativeAbstention":·{·"floor":·0.9117647058823529,·"tolerance":·1e-12·}, + 22 │ + ····"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 23 │ + ····"designSystemCoherence":·{·"floor":·0.71875,·"tolerance":·1e-12·} + 24 24 │ }, + 25 25 │ "sampleMinimums": { + ······· │ + 46 46 │ "calibration": { + 47 47 │ "metrics": { + 48 │ - ········"routingAccuracy":·{"floor":·0.8,·"tolerance":·1e-12}, + 49 │ - ········"precisionAt1":·{"floor":·0.8974358974358975,·"tolerance":·1e-12}, + 50 │ - ········"precisionAt3":·{"floor":·0.40170940170940167,·"tolerance":·1e-12}, + 51 │ - ········"mrrAt3":·{"floor":·0.9230769230769231,·"tolerance":·1e-12}, + 52 │ - ········"ndcgAt3":·{"floor":·0.9103072109232644,·"tolerance":·1e-12}, + 53 │ - ········"negativeAbstention":·{"floor":·0.9411764705882353,·"tolerance":·1e-12}, + 54 │ - ········"typoRecoveryAt3":·{"floor":·0.0,·"tolerance":·1e-12}, + 55 │ - ········"designSystemCoherence":·{"floor":·0.6875,·"tolerance":·1e-12} + 48 │ + ········"routingAccuracy":·{·"floor":·0.8,·"tolerance":·1e-12·}, + 49 │ + ········"precisionAt1":·{·"floor":·0.8974358974358975,·"tolerance":·1e-12·}, + 50 │ + ········"precisionAt3":·{·"floor":·0.40170940170940167,·"tolerance":·1e-12·}, + 51 │ + ········"mrrAt3":·{·"floor":·0.9230769230769231,·"tolerance":·1e-12·}, + 52 │ + ········"ndcgAt3":·{·"floor":·0.9103072109232644,·"tolerance":·1e-12·}, + 53 │ + ········"negativeAbstention":·{·"floor":·0.9411764705882353,·"tolerance":·1e-12·}, + 54 │ + ········"typoRecoveryAt3":·{·"floor":·0.0,·"tolerance":·1e-12·}, + 55 │ + ········"designSystemCoherence":·{·"floor":·0.6875,·"tolerance":·1e-12·} + 56 56 │ }, + 57 │ - ······"sampleMinimums":·{"cases":·46,·"retrieval":·39,·"routing":·5,·"negativeChecks":·102,·"typo":·0,·"designSystem":·4} + 57 │ + ······"sampleMinimums":·{ + 58 │ + ········"cases":·46, + 59 │ + ········"retrieval":·39, + 60 │ + ········"routing":·5, + 61 │ + ········"negativeChecks":·102, + 62 │ + ········"typo":·0, + 63 │ + ········"designSystem":·4 + 64 │ + ······} + 58 65 │ }, + 59 66 │ "held_out": { + 60 67 │ "metrics": { + 61 │ - ········"routingAccuracy":·{"floor":·1.0,·"tolerance":·1e-12}, + 62 │ - ········"precisionAt1":·{"floor":·0.6216216216216216,·"tolerance":·1e-12}, + 63 │ - ········"precisionAt3":·{"floor":·0.36036036036036034,·"tolerance":·1e-12}, + 64 │ - ········"mrrAt3":·{"floor":·0.7432432432432432,·"tolerance":·1e-12}, + 65 │ - ········"ndcgAt3":·{"floor":·0.7589807054707906,·"tolerance":·1e-12}, + 66 │ - ········"negativeAbstention":·{"floor":·0.8823529411764706,·"tolerance":·1e-12}, + 67 │ - ········"typoRecoveryAt3":·{"floor":·1.0,·"tolerance":·1e-12}, + 68 │ - ········"designSystemCoherence":·{"floor":·0.75,·"tolerance":·1e-12} + 68 │ + ········"routingAccuracy":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 69 │ + ········"precisionAt1":·{·"floor":·0.6216216216216216,·"tolerance":·1e-12·}, + 70 │ + ········"precisionAt3":·{·"floor":·0.36036036036036034,·"tolerance":·1e-12·}, + 71 │ + ········"mrrAt3":·{·"floor":·0.7432432432432432,·"tolerance":·1e-12·}, + 72 │ + ········"ndcgAt3":·{·"floor":·0.7589807054707906,·"tolerance":·1e-12·}, + 73 │ + ········"negativeAbstention":·{·"floor":·0.8823529411764706,·"tolerance":·1e-12·}, + 74 │ + ········"typoRecoveryAt3":·{·"floor":·1.0,·"tolerance":·1e-12·}, + 75 │ + ········"designSystemCoherence":·{·"floor":·0.75,·"tolerance":·1e-12·} + 69 76 │ }, + 70 │ - ······"sampleMinimums":·{"cases":·44,·"retrieval":·37,·"routing":·3,·"negativeChecks":·102,·"typo":·5,·"designSystem":·4} + 77 │ + ······"sampleMinimums":·{ + 78 │ + ········"cases":·44, + 79 │ + ········"retrieval":·37, + 80 │ + ········"routing":·3, + 81 │ + ········"negativeChecks":·102, + 82 │ + ········"typo":·5, + 83 │ + ········"designSystem":·4 + 84 │ + ······} + 71 85 │ } + 72 86 │ }, + 73 87 │ "lockedCases": { + 74 │ - ····"domain-style-glassmorphism":·{"withinTop":·1,·"minimumGrade":·2}, + 75 │ - ····"domain-color-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 76 │ - ····"domain-chart-time-series":·{"withinTop":·1,·"minimumGrade":·2}, + 77 │ - ····"domain-landing-pricing":·{"withinTop":·1,·"minimumGrade":·2}, + 78 │ - ····"domain-product-spa":·{"withinTop":·1,·"minimumGrade":·2}, + 79 │ - ····"domain-ux-keyboard-focus":·{"withinTop":·1,·"minimumGrade":·2}, + 80 │ - ····"domain-typography-luxury":·{"withinTop":·1,·"minimumGrade":·2}, + 81 │ - ····"domain-icons-search":·{"withinTop":·1,·"minimumGrade":·2}, + 82 │ - ····"domain-gsap-scroll-reveal":·{"withinTop":·1,·"minimumGrade":·2}, + 83 │ - ····"domain-react-parallel-promises":·{"withinTop":·1,·"minimumGrade":·2}, + 84 │ - ····"domain-web-icon-label":·{"withinTop":·1,·"minimumGrade":·2}, + 85 │ - ····"domain-google-fonts-inter":·{"withinTop":·1,·"minimumGrade":·2}, + 86 │ - ····"stack-swiftui-navigation":·{"withinTop":·1,·"minimumGrade":·2}, + 87 │ - ····"stack-threejs-orbitcontrols":·{"withinTop":·1,·"minimumGrade":·2}, + 88 │ - ····"stack-uwp-migration":·{"withinTop":·1,·"minimumGrade":·2}, + 89 │ - ····"stack-winui-dispatcherqueue":·{"withinTop":·1,·"minimumGrade":·2} + 88 │ + ····"domain-style-glassmorphism":·{·"withinTop":·1,·"minimumGrade":·2·}, + 89 │ + ····"domain-color-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 90 │ + ····"domain-chart-time-series":·{·"withinTop":·1,·"minimumGrade":·2·}, + 91 │ + ····"domain-landing-pricing":·{·"withinTop":·1,·"minimumGrade":·2·}, + 92 │ + ····"domain-product-spa":·{·"withinTop":·1,·"minimumGrade":·2·}, + 93 │ + ····"domain-ux-keyboard-focus":·{·"withinTop":·1,·"minimumGrade":·2·}, + 94 │ + ····"domain-typography-luxury":·{·"withinTop":·1,·"minimumGrade":·2·}, + 95 │ + ····"domain-icons-search":·{·"withinTop":·1,·"minimumGrade":·2·}, + 96 │ + ····"domain-gsap-scroll-reveal":·{·"withinTop":·1,·"minimumGrade":·2·}, + 97 │ + ····"domain-react-parallel-promises":·{·"withinTop":·1,·"minimumGrade":·2·}, + 98 │ + ····"domain-web-icon-label":·{·"withinTop":·1,·"minimumGrade":·2·}, + 99 │ + ····"domain-google-fonts-inter":·{·"withinTop":·1,·"minimumGrade":·2·}, + 100 │ + ····"stack-swiftui-navigation":·{·"withinTop":·1,·"minimumGrade":·2·}, + 101 │ + ····"stack-threejs-orbitcontrols":·{·"withinTop":·1,·"minimumGrade":·2·}, + 102 │ + ····"stack-uwp-migration":·{·"withinTop":·1,·"minimumGrade":·2·}, + 103 │ + ····"stack-winui-dispatcherqueue":·{·"withinTop":·1,·"minimumGrade":·2·} + 90 104 │ }, + 91 105 │ "proposedFinalTargets": { + + +.artifacts/resources-global-operating-systems-closure/closure-results.json format ━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 8 8 │ "id": "DB-SO-01", + 9 9 │ "result": "pass", + 10 │ - ······"http":·[ + 11 │ - ········201 + 12 │ - ······] + 10 │ + ······"http":·[201] + 13 11 │ }, + 14 12 │ { + 15 13 │ "id": "DB-SO-02", + 16 14 │ "result": "pass", + 17 │ - ······"http":·[ + 18 │ - ········201 + 19 │ - ······] + 15 │ + ······"http":·[201] + 20 16 │ }, + 21 17 │ { + 22 18 │ "id": "DB-SO-03", + 23 19 │ "result": "pass", + 24 │ - ······"http":·[ + 25 │ - ········409 + 26 │ - ······] + 20 │ + ······"http":·[409] + 27 21 │ }, + 28 22 │ { + 29 23 │ "id": "DB-SO-04", + 30 24 │ "result": "pass", + 31 │ - ······"http":·[ + 32 │ - ········201 + 33 │ - ······] + 25 │ + ······"http":·[201] + 34 26 │ }, + 35 27 │ { + 36 28 │ "id": "DB-SO-05", + 37 29 │ "result": "pass", + 38 │ - ······"http":·[ + 39 │ - ········201 + 40 │ - ······] + 30 │ + ······"http":·[201] + 41 31 │ }, + 42 32 │ { + 43 33 │ "id": "DB-SO-06", + 44 34 │ "result": "pass", + 45 │ - ······"http":·[ + 46 │ - ········201 + 47 │ - ······] + 35 │ + ······"http":·[201] + 48 36 │ }, + 49 37 │ { + 50 38 │ "id": "DB-SO-07", + 51 39 │ "result": "pass", + 52 │ - ······"http":·[ + 53 │ - ········201, + 54 │ - ········200 + 55 │ - ······] + 40 │ + ······"http":·[201,·200] + 56 41 │ }, + 57 42 │ { + 58 43 │ "id": "DB-SO-08", + 59 44 │ "result": "pass", + 60 │ - ······"http":·[ + 61 │ - ········200 + 62 │ - ······] + 45 │ + ······"http":·[200] + 63 46 │ }, + 64 47 │ { + 65 48 │ "id": "DB-SO-09", + 66 49 │ "result": "pass", + 67 │ - ······"http":·[ + 68 │ - ········404 + 69 │ - ······] + 50 │ + ······"http":·[404] + 70 51 │ }, + 71 52 │ { + 72 53 │ "id": "DB-SO-10", + 73 54 │ "result": "pass", + 74 │ - ······"http":·[ + 75 │ - ········404 + 76 │ - ······] + 55 │ + ······"http":·[404] + 77 56 │ }, + 78 57 │ { + 79 58 │ "id": "DB-SO-11", + 80 59 │ "result": "pass", + 81 │ - ······"http":·[ + 82 │ - ········200 + 83 │ - ······] + 60 │ + ······"http":·[200] + 84 61 │ }, + 85 62 │ { + 86 63 │ "id": "DB-SO-12", + 87 64 │ "result": "pass", + 88 │ - ······"http":·[ + 89 │ - ········409 + 90 │ - ······] + 65 │ + ······"http":·[409] + 91 66 │ }, + 92 67 │ { + 93 68 │ "id": "DB-SO-13", + 94 69 │ "result": "pass", + 95 │ - ······"http":·[ + 96 │ - ········200, + 97 │ - ········200 + 98 │ - ······] + 70 │ + ······"http":·[200,·200] + 99 71 │ }, + 100 72 │ { + 101 73 │ "id": "DB-SO-14", + 102 74 │ "result": "pass", + 103 │ - ······"http":·[ + 104 │ - ········200, + 105 │ - ········200 + 106 │ - ······] + 75 │ + ······"http":·[200,·200] + 107 76 │ }, + 108 77 │ { + 109 78 │ "id": "DB-SO-15", + 110 79 │ "result": "pass", + 111 │ - ······"http":·[ + 112 │ - ········409 + 113 │ - ······] + 80 │ + ······"http":·[409] + 114 81 │ }, + 115 82 │ { + 116 83 │ "id": "DB-SO-16", + 117 84 │ "result": "pass", + 118 │ - ······"http":·[ + 119 │ - ········200, + 120 │ - ········200 + 121 │ - ······] + 85 │ + ······"http":·[200,·200] + 122 86 │ }, + 123 87 │ { + 124 88 │ "id": "DB-SO-17", + 125 89 │ "result": "pass", + 126 │ - ······"http":·[ + 127 │ - ········200 + 128 │ - ······] + 90 │ + ······"http":·[200] + 129 91 │ }, + 130 92 │ { + 131 93 │ "id": "DB-SO-18", + 132 94 │ "result": "pass", + 133 │ - ······"http":·[ + 134 │ - ········200, + 135 │ - ········200 + 136 │ - ······] + 95 │ + ······"http":·[200,·200] + 137 96 │ }, + 138 97 │ { + 139 98 │ "id": "DB-SO-19", + 87 more lines truncated + + +.artifacts/resources-global-operating-systems/global-operating-systems-results.json format ━━━━━━━━━━ + + × Formatter would have printed the following content: + + 10 10 │ "contract": 3, + 11 11 │ "gatesEnabledOnlyInDisposableTest": true + 12 │ - } + 12 │ + } + 13 │ + + + +.inspect-catalog-db.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × The imports and exports are not sorted. + + > 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ import { QueryTypes } from "sequelize"; + 3 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + + i Safe fix: Organize Imports (Biome) + + 1 │ - import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 2 │ - import·{·QueryTypes·}·from·"sequelize"; + 1 │ + import·{·QueryTypes·}·from·"sequelize"; + 2 │ + + 3 │ + import·{·createDatabase,·readDatabaseEnvironment·}·from·"./apps/server/src/config/database"; + 4 │ + + 3 5 │ const db=createDatabase(readDatabaseEnvironment(process.env)); + 4 6 │ console.log(await db.query("SELECT TABLE_NAME AS child,COLUMN_NAME AS col,REFERENCED_TABLE_NAME AS parent,REFERENCED_COLUMN_NAME AS parentCol FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA=DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL",{type:QueryTypes.SELECT})); + + +.inspect-catalog-db.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Formatter would have printed the following content: + + 1 1 │ import { createDatabase, readDatabaseEnvironment } from "./apps/server/src/config/database"; + 2 2 │ import { QueryTypes } from "sequelize"; + 3 │ - const·db=createDatabase(readDatabaseEnvironment(process.env)); + 4 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL",{type:QueryTypes.SELECT})); + 5 │ - console.log(await·db.query("SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()",{type:QueryTypes.SELECT})); + 6 │ - await·db.close(); + 3 │ + const·db·=·createDatabase(readDatabaseEnvironment(process.env)); + 4 │ + console.log( + 5 │ + ··await·db.query( + 6 │ + ····"SELECT·TABLE_NAME·AS·child,COLUMN_NAME·AS·col,REFERENCED_TABLE_NAME·AS·parent,REFERENCED_COLUMN_NAME·AS·parentCol·FROM·information_schema.KEY_COLUMN_USAGE·WHERE·TABLE_SCHEMA=DATABASE()·AND·REFERENCED_TABLE_NAME·IS·NOT·NULL", + 7 │ + ····{·type:·QueryTypes.SELECT·} + 8 │ + ··) + 9 │ + ); + 10 │ + console.log( + 11 │ + ··await·db.query( + 12 │ + ····"SELECT·TABLE_NAME·AS·name·FROM·information_schema.TABLES·WHERE·TABLE_SCHEMA=DATABASE()", + 13 │ + ····{·type:·QueryTypes.SELECT·} + 14 │ + ··) + 15 │ + ); + 16 │ + await·db.close(); + 17 │ + + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 156. +Checked 2213 files in 1103ms. No fixes applied. +Found 170 errors. +Found 1 warning. +Found 5 infos. +check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/root-lint.log b/.artifacts/resources-global-operating-systems-unblock/technical/root-lint.log new file mode 100644 index 00000000..75a03627 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/root-lint.log @@ -0,0 +1,471 @@ +$ biome lint . +docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━ + + i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project. + Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file. + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + i Safe fix: Reduce the complexity of the logical expression. + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + + +modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 │ + + i Safe fix: Reduce the complexity of the logical expression. + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success)) + 50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 51 51 │ + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━ + + i Logical expression contains unnecessary complexity. + + 17 │ if ( + > 18 │ !metadata.width || + │ ^^^^^^^^^^^^^^^^^^ + > 19 │ !metadata.height || + │ ^^^^^^^^^^^^^^^^ + 20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + i Safe fix: Reduce the complexity of the logical expression. + + 16 16 │ + 17 17 │ if ( + 18 │ - ········!metadata.width·|| + 19 │ - ········!metadata.height·|| + 18 │ + ········!(metadata.width·&&metadata.height·)·|| + 20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension || + 21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + + +.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━ + + ! Invert blocks when performing a negation test. + + 79 │ }, []) + 80 │ + > 81 │ const level = !info + │ ^^^^^ + > 82 │ ? "" + ... + > 88 │ ? "AA Large" + > 89 │ : "Fail" + │ ^^^^^^^^ + 90 │ + 91 │ return ( + + i Safe fix: Invert the condition and the blocks. + + 79 79 │ }, []) + 80 80 │ + 81 │ - ··const·level·=·!info + 82 │ - ····?·"" + 83 │ - ····:·info.ratio·>=·7 + 81 │ + ··const·level·=·info + 82 │ + ····?·info.ratio·>=·7 + 84 83 │ ? "AAA" + 85 84 │ : info.ratio >= 4.5 + ······· │ + 87 86 │ : info.ratio >= 3 + 88 87 │ ? "AA Large" + 89 │ - ··········:·"Fail" + 88 │ + ··········:·"Fail" + 89 │ + ····:·"" + 90 90 │ + 91 91 │ return ( + + +.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━ + + × All these imports are only used as types. + + > 1 │ import * as React from "react" + │ ^^^^^^^^^^^^^^^^^^^^^^^ + 2 │ + 3 │ import { cn } from "@/lib/utils" + + i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules. + + i Safe fix: Use import type. + + 1 │ import·type·*·as·React·from·"react" + │ +++++ + +modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 24 │ async get(personId: string) { + > 25 │ if (!z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 27 │ const photo = await this.repository.get(personId); + 28 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 23 23 │ + 24 24 │ async get(personId: string) { + 25 │ - ····if·(!z.uuid().safeParse(personId).success) + 26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 25 │ + ····if·(!z.uuid().safeParse(personId).success)·{ + 26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 27 │ + ····} + 27 28 │ const photo = await this.repository.get(personId); + 28 29 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + > 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 31 31 │ + 32 32 │ async save(companyId: string, personId: string, data: Uint8Array) { + 33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 35 │ + ····} + 35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + > 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 37 │ if (!(await this.repository.exists(companyId, personId))) + 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + 34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + 35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes) + 36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{ + 36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ + ····} + 37 38 │ if (!(await this.repository.exists(companyId, personId))) + 38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + + +modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + > 37 │ if (!(await this.repository.exists(companyId, personId))) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 39 │ const processed = await this.processor.optimize(data); + 40 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes) + 36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE")); + 37 │ - ····if·(!(await·this.repository.exists(companyId,·personId))) + 38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{ + 38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND")); + 39 │ + ····} + 39 40 │ const processed = await this.processor.optimize(data); + 40 41 │ + + +modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 39 │ const processed = await this.processor.optimize(data); + 40 │ + > 41 │ if (!processed.isSuccess) return Result.fail(processed.error); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 42 │ + 43 │ return (await this.repository.replace(companyId, personId, processed.data)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·} + │ ++ ++ + +modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 48 │ async remove(companyId: string, personId: string) { + > 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 51 │ + 52 │ return (await this.repository.replace(companyId, personId, null)) + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 47 47 │ + 48 48 │ async remove(companyId: string, personId: string) { + 49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success) + 50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{ + 50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST")); + 51 │ + ····} + 51 52 │ + 52 53 │ return (await this.repository.replace(companyId, personId, null)) + + +modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 125 │ const process = UniqueID.create(id); + 126 │ + > 127 │ if (!(company.isSuccess && process.isSuccess)) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST"))); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 129 │ + 130 │ return this.repository.remove(company.data, process.data); + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 125 125 │ const process = UniqueID.create(id); + 126 126 │ + 127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess)) + 128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{ + 128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST"))); + 129 │ + ····} + 129 130 │ + 130 131 │ return this.repository.remove(company.data, process.data); + + +modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 9 │ const columns = await query.describeTable("company_contacts"); + 10 │ + > 11 │ if (!columns.photoVersion) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 12 │ await query.addColumn("company_contacts", "photoVersion", { + > 13 │ type: DataTypes.STRING(64), + > 14 │ allowNull: true, + > 15 │ }); + │ ^^^ + 16 │ for (const [name, length] of [ + 17 │ ["position", 100], + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 9 9 │ const columns = await query.describeTable("company_contacts"); + 10 10 │ + 11 │ - ··if·(!columns.photoVersion) + 11 │ + ··if·(!columns.photoVersion)·{ + 12 12 │ await query.addColumn("company_contacts", "photoVersion", { + 13 13 │ type: DataTypes.STRING(64), + 14 14 │ allowNull: true, + 15 │ - ····}); + 15 │ + ····}); + 16 │ + ··} + 16 17 │ for (const [name, length] of [ + 17 18 │ ["position", 100], + + +modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 8 │ ); + 9 │ + > 10 │ if (rows.some((row) => row.name === "person_photos")) return; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 11 │ await database + 12 │ .getQueryInterface() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 47 │ }); + 48 │ + > 49 │ if (!person) return false; + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^ + 50 │ if (photo) + 51 │ await PersonPhotoModel.upsert( + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 49 │ ······if·(!person)·{·return·false;·} + │ ++ ++ + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 49 │ if (!person) return false; + > 50 │ if (photo) + │ ^^^^^^^^^^ + > 51 │ await PersonPhotoModel.upsert( + > 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + > 53 │ { transaction } + > 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 48 48 │ + 49 49 │ if (!person) return false; + 50 │ - ······if·(photo) + 50 │ + ······if·(photo)·{ + 51 51 │ await PersonPhotoModel.upsert( + 52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version }, + 53 53 │ { transaction } + 54 │ - ········); + 54 │ + ········); + 55 │ + ······} + 55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + 56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + + +modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 53 │ { transaction } + 54 │ ); + > 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction }); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction }); + 57 │ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·} + │ ++ ++ + +modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 15 │ }).metadata(); + 16 │ + > 17 │ if ( + │ ^^^^ + > 18 │ !metadata.width || + ... + > 23 │ ) + > 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 25 │ const output = await sharp(input) + 26 │ .rotate() + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension || + 22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "") + 23 │ - ······) + 24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 23 │ + ······)·{ + 24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 25 │ + ······} + 25 26 │ const output = await sharp(input) + 26 27 │ .rotate() + + +modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━ + + × Block statements are preferred in this position. + + 32 │ .toBuffer(); + 33 │ + > 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes) + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + > 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO")); + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 36 │ + 37 │ return Result.ok({ + + i Unsafe fix: Wrap the statement with a `JsBlockStatement` + + 32 32 │ .toBuffer(); + 33 33 │ + 34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes) + 35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{ + 35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO")); + 36 │ + ······} + 36 37 │ + 37 38 │ return Result.ok({ + + +The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it. +Diagnostics not shown: 1. +Checked 2213 files in 876ms. No fixes applied. +Found 15 errors. +Found 1 warning. +Found 5 infos. +lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Some errors were emitted while running checks. + + +[ELIFECYCLE] Command failed with exit code 1. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/root-types.log b/.artifacts/resources-global-operating-systems-unblock/technical/root-types.log new file mode 100644 index 00000000..bf5b1a77 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/root-types.log @@ -0,0 +1,29 @@ +$ turbo run typecheck +• turbo 2.9.14 + + • Packages in scope: @metis/assets, @metis/companies, @metis/core, @metis/identity, @metis/relationship-contracts, @metis/resources, @metis/server, @metis/web, @repo/rdx-ddd, @repo/rdx-ui, @repo/rdx-utils, @repo/shadcn-ui, @repo/typescript-config + • Running typecheck in 13 packages + • Remote caching disabled + +@repo/shadcn-ui:typecheck: cache miss, executing 3a02880bf260fd89 +@repo/rdx-utils:typecheck: cache hit, replaying logs e660b2f14d16d88c +@repo/rdx-utils:typecheck: $ tsc -p tsconfig.json +@repo/rdx-ddd:typecheck: cache hit, replaying logs 315b0dccfb6d76d3 +@repo/rdx-ddd:typecheck: $ tsc -p tsconfig.json +@metis/relationship-contracts:typecheck: cache hit, replaying logs 6ecbe82d1a36ae07 +@metis/relationship-contracts:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: $ tsc -p tsconfig.json +@repo/shadcn-ui:typecheck: src/components/calendar.tsx(165,12): error TS2375: Type '{ day: CalendarDay; modifiers: Modifiers; disabled?: boolean | undefined; form?: string | undefined; formAction?: string | ((formData: FormData) => void | Promise<...>) | undefined; ... 285 more ...; locale: Partial<...> | undefined; }' is not assignable to type '{ locale?: Partial; }' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties. +@repo/shadcn-ui:typecheck: Types of property 'locale' are incompatible. +@repo/shadcn-ui:typecheck: Type 'Partial | undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: Type 'undefined' is not assignable to type 'Partial'. +@repo/shadcn-ui:typecheck: [ELIFECYCLE] Command failed with exit code 2. + ERROR @repo/shadcn-ui#typecheck: command (/home/david/dev/metis-desk/packages/shadcn-ui) /home/david/.nvm/versions/node/v24.20.0/bin/pnpm run typecheck exited (2) + + Tasks: 3 successful, 4 total +Cached: 3 cached, 4 total + Time: 5.231s +Failed: @repo/shadcn-ui#typecheck + + ERROR run failed: command exited (2) +[ELIFECYCLE] Command failed with exit code 2. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/sql.log b/.artifacts/resources-global-operating-systems-unblock/technical/sql.log new file mode 100644 index 00000000..aacaa64f --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/sql.log @@ -0,0 +1,2 @@ +Evidencias: .artifacts/resources-global-operating-systems-closure +MariaDB desechable retirada. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/ui-extended.log b/.artifacts/resources-global-operating-systems-unblock/technical/ui-extended.log new file mode 100644 index 00000000..adfb78ef --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/ui-extended.log @@ -0,0 +1,120 @@ +Preparando MariaDB desechable y servicios en puertos libres… + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByText('Todavía no hay sistemas operativos globales.',{exact:false}).waitFor + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: if(!await page.getByRole('button',{name:'Guardar',exact:true}).isDisabled())throw Error('R + SO MCP: await page.getByRole('button',{name:'Guardar',exact:true}).click(); await page.getByRole(' + SO MCP: return page.url(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.getByRole('button',{name:'Cancelar',exact:true}).click(); await page.getByRole( + SO MCP: await page.getByRole('link',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.getB + SO MCP: await page.getByRole('textbox',{name:'Buscar por nombre o proveedor',exact:true}).fill('') + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(()=>{ + const canvas=document.createElement('ca + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(()=>{ + const canvas=document.createElement('ca + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: page.osPattern='**/api/resource-global-operating-systems?*'; await page.route(page.osPatte + SO MCP: await page.unroute(page.osPattern); await page.getByRole('button',{name:'Reintentar',exact + SO MCP: + const releases=[], pending=[]; + const pattern='**/api/resource + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByRole('heading',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.g + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: const row=page.getByRole('row').filter({has:page.locator('a[href="/catalogs/global-operati + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-equipment=principal] a').click(); await page.getByRole + SO MCP: await page.getByRole('button',{name:'Añadir instalación',exact:true}).click(); await page. + SO MCP: await page.keyboard.press('Escape'); await page.keyboard.press('Escape'); + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.osNode.locator('[data-workplace-node-menu]').click(); await page.getByRole('men + SO MCP: await page.locator('[data-current-operating-systems]').getByText('Versión 25H2',{exact:tru + SO MCP: await page.getByLabel('Menú de usuario',{exact:true}).click(); await page.getByRole('combo + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden +SO global: recorrido MCP verificado. Evidencias: .artifacts/playwright/authenticated-z63g8xvr +Entorno temporal retirado; las capturas se conservan sin sesión ni credenciales. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/ui-final.log b/.artifacts/resources-global-operating-systems-unblock/technical/ui-final.log new file mode 100644 index 00000000..6cc00d0f --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/ui-final.log @@ -0,0 +1,150 @@ +Preparando MariaDB desechable y servicios en puertos libres… + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByText('Todavía no hay sistemas operativos globales.',{exact:false}).waitFor + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: if(!await page.getByRole('button',{name:'Guardar',exact:true}).isDisabled())throw Error('R + SO MCP: await page.getByRole('button',{name:'Guardar',exact:true}).click(); await page.getByRole(' + SO MCP: return page.url(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.getByRole('button',{name:'Cancelar',exact:true}).click(); await page.getByRole( + SO MCP: await page.getByRole('link',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.getB + SO MCP: await page.getByRole('textbox',{name:'Buscar por nombre o proveedor',exact:true}).fill('') + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: page.osPattern='**/api/resource-global-operating-systems?*'; await page.route(page.osPatte + SO MCP: await page.unroute(page.osPattern); await page.getByRole('button',{name:'Reintentar',exact + SO MCP: + const releases=[], pending=[]; + const pattern='**/api/resource + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByRole('heading',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.g + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: const row=page.getByRole('row').filter({has:page.locator('a[href="/catalogs/global-operati + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-equipment=principal] a').click(); await page.getByRole + SO MCP: await page.getByRole('button',{name:'Añadir instalación',exact:true}).click(); await page. + SO MCP: await page.keyboard.press('Escape'); await page.keyboard.press('Escape'); + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href="/c + SO MCP: return await page.evaluate(selector=>{ + const canvas=document.createElement('canv + SO MCP: return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);retur + SO MCP: await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.osNode.locator('[data-workplace-node-menu]').click(); await page.getByRole('men + SO MCP: await page.locator('[data-current-operating-systems]').getByText('Versión 25H2',{exact:tru + SO MCP: await page.getByLabel('Menú de usuario',{exact:true}).click(); await page.getByRole('combo + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden +SO global: recorrido MCP verificado. Evidencias: .artifacts/playwright/authenticated-6u28upls +Entorno temporal retirado; las capturas se conservan sin sesión ni credenciales. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/ui.log b/.artifacts/resources-global-operating-systems-unblock/technical/ui.log new file mode 100644 index 00000000..161477d3 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/ui.log @@ -0,0 +1,56 @@ +Preparando MariaDB desechable y servicios en puertos libres… + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByText('Todavía no hay sistemas operativos globales.',{exact:false}).waitFor + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: if(!await page.getByRole('button',{name:'Guardar',exact:true}).isDisabled())throw Error('R + SO MCP: await page.getByRole('button',{name:'Guardar',exact:true}).click(); await page.getByRole(' + SO MCP: return page.url(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.getByRole('button',{name:'Cancelar',exact:true}).click(); await page.getByRole( + SO MCP: await page.getByRole('link',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.getB + SO MCP: await page.getByRole('textbox',{name:'Buscar por nombre o proveedor',exact:true}).fill('') + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(()=>{ + const canvas=document.createElement('ca + SO MCP: await page.evaluate(theme=>{document.documentElement.classList.toggle('dark',theme==='dark + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error( + SO MCP: return await page.evaluate(()=>{ + const canvas=document.createElement('ca + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: page.osPattern='**/api/resource-global-operating-systems?*'; await page.route(page.osPatte + SO MCP: await page.unroute(page.osPattern); await page.getByRole('button',{name:'Reintentar',exact + SO MCP: + const releases=[], pending=[]; + const pattern='**/api/resource + SO MCP: await page.getByRole('button',{name:'Nuevo sistema operativo global',exact:true}).click(); + SO MCP: await page.getByRole('button',{name:'Editar sistema operativo global',exact:true}).click() + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.getByRole('button',{name:'Entrar',exact:true}).waitFor(); + SO MCP: await page.locator('[data-slot=workspace]').waitFor({timeout:30000}); + SO MCP: await page.getByRole('heading',{name:'Windows 11 Pro',exact:true}).waitFor(); await page.g + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: const row=page.getByRole('row').filter({has:page.locator('a[href="/catalogs/global-operati + SO MCP: await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden + SO MCP: await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 + SO MCP: await page.locator('[data-current-operating-systems]').locator('xpath=ancestor::section[1] + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-software] a[href="/catalogs/global-operating-systems/0 + SO MCP: await page.locator('[data-workplace-equipment=principal] a').click(); await page.getByRole + SO MCP: await page.getByRole('button',{name:'Añadir instalación',exact:true}).click(); await page. + SO MCP: await page.keyboard.press('Escape'); await page.keyboard.press('Escape'); +SO global: recorrido MCP verificado. Evidencias: .artifacts/playwright/authenticated-w6qb_oez +Entorno temporal retirado; las capturas se conservan sin sesión ni credenciales. diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/web-types.log b/.artifacts/resources-global-operating-systems-unblock/technical/web-types.log new file mode 100644 index 00000000..f13e293d --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/web-types.log @@ -0,0 +1 @@ +$ tsc -p tsconfig.json diff --git a/.artifacts/resources-global-operating-systems-unblock/technical/web.log b/.artifacts/resources-global-operating-systems-unblock/technical/web.log new file mode 100644 index 00000000..565e9277 --- /dev/null +++ b/.artifacts/resources-global-operating-systems-unblock/technical/web.log @@ -0,0 +1,12 @@ +$ TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/app.test.tsx src/i18n.test.ts src/navigation/app-redirect.test.ts +✔ src/app.test.tsx (7713.559558ms) +✔ src/i18n.test.ts (7509.89064ms) +✔ src/navigation/app-redirect.test.ts (1442.140071ms) +ℹ tests 3 +ℹ suites 0 +ℹ pass 3 +ℹ fail 0 +ℹ cancelled 0 +ℹ skipped 0 +ℹ todo 0 +ℹ duration_ms 7727.553663 diff --git a/.artifacts/resources-global-operating-systems/integration.log b/.artifacts/resources-global-operating-systems/integration.log index 006ae8be..ba99bf3d 100644 --- a/.artifacts/resources-global-operating-systems/integration.log +++ b/.artifacts/resources-global-operating-systems/integration.log @@ -1,16 +1,16 @@ ▶ SO global: identidad, contratos, administración e instalaciones HTTP/MariaDB - ✔ autorización, CSRF, idempotencia y revisión vinculada a identidad (131.643727ms) - ✔ identidad incompleta, edición contradictoria, duplicado normalizado y concurrencia (170.947031ms) - ✔ borrador desconocido, edición no aplicable explícita y activación revisada (115.449501ms) - ✔ aplicaciones y licencias no contaminan el catálogo SO; lecturas públicas sin notas (75.760523ms) - ✔ mismo SO entre compañías, versiones y licencias aisladas, contrato anterior (395.999764ms) - ✔ candidatos mixtos, negociación y propósito de perfiles (165.488873ms) - ✔ metadatos e historial, identidad publicada fija y propagación protegida (144.000369ms) - ✔ versión instalada cambia sin modificar producto y conserva historial (121.758258ms) - ✔ desactivación conserva resolución histórica, edición instalada y retirada (339.193623ms) - ✔ carrera SO: instalación confirma antes de desactivar, catálogo coordinado (372.636239ms) - ✔ rollback de gates conserva referencias, historial y retirada (4236.38661ms) -✔ SO global: identidad, contratos, administración e instalaciones HTTP/MariaDB (44043.86575ms) + ✔ autorización, CSRF, idempotencia y revisión vinculada a identidad (114.708375ms) + ✔ identidad incompleta, edición contradictoria, duplicado normalizado y concurrencia (235.662191ms) + ✔ borrador desconocido, edición no aplicable explícita y activación revisada (174.718577ms) + ✔ aplicaciones y licencias no contaminan el catálogo SO; lecturas públicas sin notas (97.842759ms) + ✔ mismo SO entre compañías, versiones y licencias aisladas, contrato anterior (551.383077ms) + ✔ candidatos mixtos, negociación y propósito de perfiles (198.028101ms) + ✔ metadatos e historial, identidad publicada fija y propagación protegida (175.523127ms) + ✔ versión instalada cambia sin modificar producto y conserva historial (155.329974ms) + ✔ desactivación conserva resolución histórica, edición instalada y retirada (381.160081ms) + ✔ carrera SO: instalación confirma antes de desactivar, catálogo coordinado (561.221238ms) + ✔ rollback de gates conserva referencias, historial y retirada (4828.319087ms) +✔ SO global: identidad, contratos, administración e instalaciones HTTP/MariaDB (84010.06887ms) ℹ tests 12 ℹ suites 0 ℹ pass 12 @@ -18,4 +18,4 @@ ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 -ℹ duration_ms 45390.238007 +ℹ duration_ms 90093.26907 diff --git a/apps/server/src/global-operating-systems-closure.integration.test.ts b/apps/server/src/global-operating-systems-closure.integration.test.ts new file mode 100644 index 00000000..cc9ffff2 --- /dev/null +++ b/apps/server/src/global-operating-systems-closure.integration.test.ts @@ -0,0 +1,1191 @@ +import assert from "node:assert/strict"; +import { randomBytes } from "node:crypto"; +import { once } from "node:events"; +import { test } from "node:test"; + +import { + SoftwareInstallationResponseSchema, + SoftwareInstallationsResponseSchema, +} from "@metis/companies/common"; +import type { OperatingSystemIdentity } from "@metis/resources/common"; +import { + ApplicationReferenceCapabilitiesSchema, + CatalogResponseSchema, + GetGlobalApplicationAdminResponseSchema, + GetGlobalOperatingSystemResponseSchema, + GlobalApplicationTemplateResponseSchema, + InventoryResponseSchema, + ListApplicationCandidatesResponseSchema, + ListGlobalApplicationHistoryResponseSchema, + ListGlobalApplicationsResponseSchema, + ListGlobalOperatingSystemsResponseSchema, + ResolveApplicationReferencesResponseSchema, + ResourceResponseSchema, + SaveDefinitionResponseSchema, +} from "@metis/resources/common"; +import { migrateResourceScope } from "@metis/resources/module"; +import { QueryTypes } from "sequelize"; +import { z } from "zod/v4"; + +import { inspectResourceScopeSchema } from "../../../modules/resources/src/api/infrastructure/persistence/resource-scope-schema"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +import { createApp } from "./app"; +import { prepareMembershipFixture } from "./asset-directory-memberships.fixture"; +import { createDatabase, readDatabaseEnvironment } from "./config/database"; +import { + resourceSqlSnapshot, + verifyLegacyOperatingSystemEvolution, +} from "./global-operating-systems-legacy.fixture"; +import { createIdentityRuntime } from "./infrastructure/http/identity-runtime"; +import { + disposableScopeEnvironment, + scopeSchemaEvidence, + writeScopeEvidence, +} from "./resource-scope.preflight"; +import { scopeApiClient } from "./resource-scope-api.client"; +import { latch, waitBarrier, waitCatalogLock } from "./resource-scope-concurrency.fixture"; +import { scopeHttpFixture, seedScopeVolume } from "./resource-scope-http.fixture"; + +const uuid = () => UniqueID.generateNewID().toPrimitive(); + +const v3 = { contract: "3" }; +const ErrorSchema = z.object({ code: z.string() }); + +test("Cierre SO: matriz DB-SO, evolución, integridad y concurrencia real", async (t) => { + const environment = disposableScopeEnvironment(); + const database = createDatabase(environment); + const companies = Array.from({ length: 15 }, uuid); + const company = companies[0]; + const other = companies[1]; + const actor = uuid(); + + assert.ok(company && other); + const fixture = await prepareMembershipFixture( + database, + environment.APP_ORIGIN, + actor, + companies + ); + const migration = await migrateResourceScope(database); + const http = await scopeHttpFixture(database, fixture); + const volume = await seedScopeVolume(fixture, http, company); + + await http.close(); + const assetA = volume.assetIds[0]; + const assetA2 = volume.assetIds[1]; + const raceAsset = volume.assetIds[2]; + const assetB = await fixture.asset(other, "laptop"); + + assert.ok(assetA && assetA2 && raceAsset); + const legacy = await verifyLegacyOperatingSystemEvolution( + database, + fixture.resourceUseCases, + company, + actor + ); + + await writeScopeEvidence("legacy-evolution.json", legacy); + const schema = await scopeSchemaEvidence(database); + const settings = z + .array(z.object({ version: z.string(), checkConstraints: z.number(), foreignKeys: z.number() })) + .parse(schema.version); + + const currentSettings = settings[0]; + + assert.ok(currentSettings); + assert.ok(currentSettings.version.includes("MariaDB")); + assert.equal(currentSettings.checkConstraints, 1); + assert.equal(currentSettings.foreignKeys, 1); + assert.equal((await inspectResourceScopeSchema(database)).mode, "scoped"); + assert.equal((await migrateResourceScope(database)).completed.length, 0); + await writeScopeEvidence("schema.json", { + ...schema, + migration, + repeatedMigration: "no changes", + connection: { database: environment.DB_NAME, host: environment.DB_HOST, disposable: true }, + engines: await database.query( + "SELECT TABLE_NAME,ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() ORDER BY TABLE_NAME", + { type: QueryTypes.SELECT } + ), + }); + + const openEnvironment = readDatabaseEnvironment({ + ...process.env, + RESOURCE_GLOBAL_CATALOG_ENABLED: "true", + RESOURCE_GLOBAL_SOFTWARE_ENABLED: "true", + RESOURCE_GLOBAL_SOFTWARE_CANDIDATES_ENABLED: "true", + RESOURCE_GLOBAL_PROFILE_ENABLED: "true", + RESOURCE_GLOBAL_OS_CATALOG_ENABLED: "true", + RESOURCE_GLOBAL_OS_SOFTWARE_ENABLED: "true", + }); + let runtime = await createIdentityRuntime(database, openEnvironment); + let server = createApp(() => undefined, runtime).listen(0, "127.0.0.1"); + + await once(server, "listening"); + const address = server.address(); + + assert.ok(address && typeof address !== "string"); + const base = `http://127.0.0.1:${address.port}`; + const admin = await scopeApiClient(base); + const ordinary = await scopeApiClient(base); + const password = randomBytes(24).toString("hex"); + const root = "/resource-global-operating-systems"; + const productId = uuid(); + const applicationId = uuid(); + const results: { id: string; result: string; http?: number[] }[] = []; + + try { + assert.equal( + ( + await admin.request("/auth/bootstrap", { + name: "Cierre SO", + email: "closure-admin@example.invalid", + password, + }) + ).status, + 201 + ); + await admin.refresh(); + assert.equal( + ( + await admin.request("/users", { + name: "Operador de cierre", + email: "closure-user@example.invalid", + password, + }) + ).status, + 201 + ); + assert.equal( + (await ordinary.request("/auth/login", { email: "closure-user@example.invalid", password })) + .status, + 200 + ); + await ordinary.refresh(); + const catalog = CatalogResponseSchema.parse( + await (await admin.request("/resource-catalog/global")).json() + ); + + const template = (key: string) => { + const item = catalog.items.find((item) => item.builtinKey === `template:${key}`); + + assert.ok(item); + + return item; + }; + + const field = (key: string) => { + const item = catalog.items.find((item) => item.builtinKey === `field:${key}`); + + assert.ok(item); + + return item.id; + }; + + const specification = GlobalApplicationTemplateResponseSchema.parse( + await (await admin.request(`${root}/template`)).json() + ).specification; + const identity: OperatingSystemIdentity = { + provider: "Microsoft", + family: "Windows", + productVersion: "11", + editionState: "known", + edition: "Pro", + }; + + const values = (item: OperatingSystemIdentity) => ({ + name: `${item.family} ${item.productVersion} ${item.edition}`.trim(), + templateId: specification.templateId, + active: true, + notes: "Datos sintéticos de cierre", + characteristics: { + [field("provider")]: item.provider, + [field("os_family")]: item.family, + [field("os_product_version")]: item.productVersion, + [field("os_edition_state")]: item.editionState, + [field("software_edition")]: item.edition, + }, + }); + + const createProduct = async (version: string) => { + const item = { ...identity, productVersion: version }; + const response = await admin.request(root, { + creationId: uuid(), + values: values(item), + reviewedIdentity: item, + }); + + assert.equal(response.status, 201); + + return GetGlobalApplicationAdminResponseSchema.parse(await response.json()).resource; + }; + + const adminProduct = async () => + GetGlobalApplicationAdminResponseSchema.parse( + await (await admin.request(`${root}/${productId}/admin`)).json() + ).resource; + + const local = async (owner: string, key: string, name: string) => { + const response = await ordinary.request(`/resources/${owner}`, { + values: { + name, + templateId: template(key).id, + active: true, + notes: "", + characteristics: {}, + }, + }); + + assert.equal(response.status, 201); + + return ResourceResponseSchema.parse(await response.json()).resource; + }; + + for (let index = 0; index < 50; index += 1) { + await local(company, "application", `Cierre sintético Álvarez ${index + 1}`); + } + const licenseA = await local(company, "software_license", "Licencia A"); + const licenseB = await local(other, "software_license", "Licencia B"); + const localOs = await local(company, "os", "Windows 11 Pro"); + const input = { + assetId: assetA, + resourceId: productId, + licenseResourceId: licenseA.id, + version: "23H2", + state: "configured", + notes: null, + }; + const path = `/software-installations/${company}`; + + const readInstallation = async (owner: string, assetId: string, resourceId: string) => { + const payload = SoftwareInstallationsResponseSchema.parse( + await (await ordinary.request(`/software-installations/${owner}`, undefined, v3)).json() + ); + const item = payload.configurations.find( + (entry) => entry.values.assetId === assetId && entry.values.resourceId === resourceId + ); + + assert.ok(item); + + return item; + }; + + const rootRows = (id: string) => + database.query( + "SELECT id,companyId,scope,templateId,name,active FROM resources WHERE id=:id", + { replacements: { id }, type: QueryTypes.SELECT } + ); + + const installationRows = (assetId: string, resourceId: string) => + database.query( + "SELECT * FROM software_installations WHERE assetId=:assetId AND resourceId=:resourceId", + { replacements: { assetId, resourceId }, type: QueryTypes.SELECT } + ); + + await t.test( + "B3 — evolución SQL doble conserva campos, valores, personalizaciones y revisiones", + () => { + assert.equal(legacy.evolutionRuns, 2); + assert.equal(legacy.originalResourcesUnchanged, true); + assert.equal(legacy.revisionsPreserved, 2); + results.push({ + id: "B3", + result: "pass: two persisted evolutions; legacy root and two revisions unchanged", + }); + } + ); + await t.test("DB-SO-01 crear SO global", async () => { + const response = await admin.request(root, { + creationId: productId, + values: values(identity), + reviewedIdentity: identity, + }); + + assert.equal(response.status, 201); + const item = GetGlobalApplicationAdminResponseSchema.parse(await response.json()).resource; + + assert.equal(item.id, productId); + assert.equal(item.specification.templateId, specification.templateId); + assert.deepEqual(await rootRows(productId), [ + { + id: productId, + companyId: null, + scope: "global", + templateId: specification.templateId, + name: "Windows 11 Pro", + active: 1, + }, + ]); + results.push({ id: "DB-SO-01", result: "pass", http: [201] }); + }); + await t.test("DB-SO-02 crear aplicación global mantiene su tipo", async () => { + const response = await admin.request("/resource-global-applications", { + creationId: applicationId, + values: { + name: "Editor global", + templateId: template("application").id, + active: true, + notes: "", + characteristics: {}, + }, + }); + + assert.equal(response.status, 201); + assert.equal((await rootRows(applicationId)).length, 1); + const list = ListGlobalApplicationsResponseSchema.parse( + await (await ordinary.request("/resource-global-applications")).json() + ); + + assert.ok(list.items.some((item) => item.id === applicationId)); + assert.ok(list.items.every((item) => item.kind === "application" && item.id !== productId)); + results.push({ id: "DB-SO-02", result: "pass", http: [201] }); + }); + await t.test("DB-SO-03 licencia global rechazada sin raíz persistida", async () => { + const id = uuid(); + + assert.equal( + ( + await admin.request(root, { + creationId: id, + values: { ...values(identity), templateId: template("software_license").id }, + reviewedIdentity: identity, + }) + ).status, + 409 + ); + assert.equal((await rootRows(id)).length, 0); + results.push({ id: "DB-SO-03", result: "pass", http: [409] }); + }); + await t.test("DB-SO-04 instalación válida desde A", async () => { + const response = await ordinary.request(path, { values: input }, v3); + + assert.equal(response.status, 201); + const item = SoftwareInstallationResponseSchema.parse(await response.json()).configuration; + + assert.equal(item.values.resourceId, productId); + assert.equal((await installationRows(assetA, productId)).length, 1); + results.push({ id: "DB-SO-04", result: "pass", http: [201] }); + }); + await t.test( + "DB-SO-05 mismo producto desde B, instalación y licencia independientes", + async () => { + const response = await ordinary.request( + `/software-installations/${other}`, + { + values: { + ...input, + assetId: assetB.id.toPrimitive(), + licenseResourceId: licenseB.id, + version: "24H2", + }, + }, + v3 + ); + + assert.equal(response.status, 201); + const a = await readInstallation(company, assetA, productId); + const b = SoftwareInstallationResponseSchema.parse(await response.json()).configuration; + + assert.notEqual(a.id, b.id); + assert.equal(b.companyId, other); + assert.equal(b.values.version, "24H2"); + assert.equal((await installationRows(assetB.id.toPrimitive(), productId)).length, 1); + results.push({ id: "DB-SO-05", result: "pass", http: [201] }); + } + ); + await t.test("DB-SO-06 dos activos de A usan el mismo SO global", async () => { + assert.equal( + (await ordinary.request(path, { values: { ...input, assetId: assetA2 } }, v3)).status, + 201 + ); + assert.notEqual( + (await readInstallation(company, assetA, productId)).id, + (await readInstallation(company, assetA2, productId)).id + ); + assert.equal( + ( + await database.query( + "SELECT id FROM software_installations WHERE companyId=:company AND resourceId=:product", + { replacements: { company, product: productId }, type: QueryTypes.SELECT } + ) + ).length, + 2 + ); + results.push({ id: "DB-SO-06", result: "pass", http: [201] }); + }); + await t.test( + "DB-SO-07 particulares y globales equivalentes conservan UUID e instalaciones", + async () => { + assert.notEqual(localOs.id, productId); + assert.equal( + (await ordinary.request(path, { values: { ...input, resourceId: localOs.id } }, v3)) + .status, + 201 + ); + assert.equal((await installationRows(assetA, localOs.id)).length, 1); + assert.equal((await installationRows(assetA, productId)).length, 1); + const list = ListApplicationCandidatesResponseSchema.parse( + await ( + await ordinary.request( + `/resource-application-candidates/${company}?purpose=software-installation&search=Windows%2011`, + undefined, + v3 + ) + ).json() + ); + + assert.ok(list.items.some((item) => item.id === productId && item.scope === "global")); + assert.ok(list.items.some((item) => item.id === localOs.id && item.scope === "company")); + results.push({ id: "DB-SO-07", result: "pass", http: [201, 200] }); + } + ); + await t.test("DB-SO-08 licencia de A válida y particular", async () => { + const item = await readInstallation(company, assetA, productId); + + assert.equal(item.values.licenseResourceId, licenseA.id); + const rows = await database.query( + "SELECT r.scope,r.companyId FROM resources r JOIN software_installations s ON s.licenseResourceId=r.id WHERE s.id=:id", + { replacements: { id: item.id }, type: QueryTypes.SELECT } + ); + + assert.deepEqual(rows, [{ scope: "company", companyId: company }]); + results.push({ id: "DB-SO-08", result: "pass", http: [200] }); + }); + await t.test("DB-SO-09 licencia de A no puede vincularse desde B", async () => { + const b = await readInstallation(other, assetB.id.toPrimitive(), productId); + + assert.equal( + ( + await ordinary.request( + `/software-installations/${other}/${b.id}/update`, + { values: { ...b.values, licenseResourceId: licenseA.id } }, + v3 + ) + ).status, + 404 + ); + assert.equal( + (await readInstallation(other, assetB.id.toPrimitive(), productId)).values + .licenseResourceId, + licenseB.id + ); + results.push({ id: "DB-SO-09", result: "pass", http: [404] }); + }); + await t.test("DB-SO-10 SO excluido de ApplicationConfiguration", async () => { + const response = await ordinary.request( + `/application-configurations/${company}`, + { + values: { + profileId: volume.profileIds[0], + resourceId: productId, + delivery: "installed", + version: null, + state: "configured", + notes: null, + }, + }, + v3 + ); + + assert.equal(response.status, 404); + assert.equal( + ( + await database.query("SELECT id FROM application_configurations WHERE resourceId=:id", { + replacements: { id: productId }, + type: QueryTypes.SELECT, + }) + ).length, + 0 + ); + results.push({ id: "DB-SO-10", result: "pass", http: [404] }); + }); + await t.test("DB-SO-11 desactivar conserva instalaciones usadas", async () => { + const before = await database.query( + "SELECT * FROM software_installations WHERE resourceId=:id ORDER BY id", + { replacements: { id: productId }, type: QueryTypes.SELECT } + ); + + assert.equal( + (await admin.request(`${root}/${productId}/status`, { active: false })).status, + 200 + ); + assert.deepEqual( + await database.query( + "SELECT * FROM software_installations WHERE resourceId=:id ORDER BY id", + { replacements: { id: productId }, type: QueryTypes.SELECT } + ), + before + ); + results.push({ id: "DB-SO-11", result: "pass", http: [200] }); + }); + await t.test("DB-SO-12 inactivo bloquea nueva instalación", async () => { + assert.equal( + (await ordinary.request(path, { values: { ...input, assetId: raceAsset } }, v3)).status, + 409 + ); + assert.equal((await installationRows(raceAsset, productId)).length, 0); + results.push({ id: "DB-SO-12", result: "pass", http: [409] }); + }); + await t.test("DB-SO-13 historial y resolver conservan SO inactivo", async () => { + const history = ListGlobalApplicationHistoryResponseSchema.parse( + await (await admin.request(`${root}/${productId}/history`)).json() + ); + + assert.equal(history.items.length, 2); + const resolved = ResolveApplicationReferencesResponseSchema.parse( + await ( + await ordinary.request( + `/resource-application-references/${company}/resolve`, + { purpose: "software-installation", ids: [productId, localOs.id] }, + v3 + ) + ).json() + ); + + assert.ok(resolved.items[0]?.status === "resolved" && !resolved.items[0].reference.active); + assert.equal( + ( + await database.query("SELECT id FROM resource_revisions WHERE resourceId=:id", { + replacements: { id: productId }, + type: QueryTypes.SELECT, + }) + ).length, + 2 + ); + results.push({ id: "DB-SO-13", result: "pass", http: [200, 200] }); + }); + await t.test("DB-SO-14 versión instalada genera revisión sin cambiar producto", async () => { + assert.equal( + ( + await admin.request(`${root}/${productId}/status`, { + active: true, + reviewedIdentity: identity, + }) + ).status, + 200 + ); + const current = await readInstallation(company, assetA, productId); + + assert.equal( + ( + await ordinary.request( + `${path}/${current.id}/update`, + { values: { ...current.values, version: "24H2" } }, + v3 + ) + ).status, + 200 + ); + const changed = await readInstallation(company, assetA, productId); + + assert.equal(changed.id, current.id); + assert.equal(changed.values.resourceId, productId); + assert.equal(changed.history.length, current.history.length + 1); + assert.equal( + ( + await database.query( + "SELECT id FROM software_installation_revisions WHERE configurationId=:id", + { replacements: { id: current.id }, type: QueryTypes.SELECT } + ) + ).length, + changed.history.length + ); + results.push({ id: "DB-SO-14", result: "pass", http: [200, 200] }); + }); + await t.test("DB-SO-15 destino de instalación inmutable", async () => { + const current = await readInstallation(company, assetA, productId); + const before = await database.query( + "SELECT * FROM software_installation_revisions WHERE configurationId=:id ORDER BY position", + { replacements: { id: current.id }, type: QueryTypes.SELECT } + ); + const response = await ordinary.request( + `${path}/${current.id}/update`, + { values: { ...current.values, resourceId: localOs.id } }, + v3 + ); + + assert.equal(response.status, 409); + assert.equal(ErrorSchema.parse(await response.json()).code, "SOFTWARE_TARGET_IMMUTABLE"); + assert.deepEqual( + await database.query( + "SELECT * FROM software_installation_revisions WHERE configurationId=:id ORDER BY position", + { replacements: { id: current.id }, type: QueryTypes.SELECT } + ), + before + ); + results.push({ id: "DB-SO-15", result: "pass", http: [409] }); + }); + await t.test("DB-SO-16 retirada de instalación de producto inactivo", async () => { + assert.equal( + (await admin.request(`${root}/${productId}/status`, { active: false })).status, + 200 + ); + const current = await readInstallation(company, assetA, productId); + + for (const state of ["removal_pending", "removed"]) { + assert.equal( + ( + await ordinary.request( + `${path}/${current.id}/update`, + { values: { ...current.values, state } }, + v3 + ) + ).status, + 200 + ); + } + const removed = await readInstallation(company, assetA, productId); + + assert.equal(removed.id, current.id); + assert.equal(removed.values.state, "removed"); + assert.equal(removed.history.length, current.history.length + 2); + results.push({ id: "DB-SO-16", result: "pass", http: [200, 200] }); + }); + await t.test("DB-SO-17 replay de creación no duplica ni reactiva", async () => { + const before = await resourceSqlSnapshot(database, productId); + + assert.equal( + ( + await admin.request(root, { + creationId: productId, + values: values(identity), + reviewedIdentity: identity, + }) + ).status, + 200 + ); + assert.deepEqual(await resourceSqlSnapshot(database, productId), before); + results.push({ id: "DB-SO-17", result: "pass", http: [200] }); + }); + await t.test("DB-SO-18 activar/desactivar preserva UUID, historial y referencias", async () => { + const before = await adminProduct(); + + assert.equal( + ( + await admin.request(`${root}/${productId}/status`, { + active: true, + reviewedIdentity: identity, + }) + ).status, + 200 + ); + assert.equal( + (await admin.request(`${root}/${productId}/status`, { active: false })).status, + 200 + ); + const after = await adminProduct(); + + assert.equal(after.id, before.id); + const history = ListGlobalApplicationHistoryResponseSchema.parse( + await (await admin.request(`${root}/${productId}/history`)).json() + ); + + assert.equal(history.items.length, 6); + assert.equal((await installationRows(assetA2, productId)).length, 1); + results.push({ id: "DB-SO-18", result: "pass", http: [200, 200] }); + }); + await t.test("DB-SO-19 solo stock: copia y otros tipos no adquieren globalidad", async () => { + const os = template("os"); + + assert.ok(os.values.kind === "template"); + const response = await admin.request("/resource-catalog/global", { + values: { ...os.values, name: "Copia de SO para cierre" }, + }); + + assert.equal(response.status, 201); + const copy = SaveDefinitionResponseSchema.parse(await response.json()); + const ids = [ + copy.savedId, + ...["software_license", "support", "shared_folder", "access", "certificate"].map( + (key) => template(key).id + ), + ]; + + for (const templateId of ids) { + for (const endpoint of [root, "/resource-global-applications"]) { + const id = uuid(); + + assert.equal( + ( + await admin.request(endpoint, { + creationId: id, + values: { + name: "Global no autorizado", + templateId, + active: false, + notes: "", + characteristics: {}, + }, + }) + ).status, + 409 + ); + assert.equal((await rootRows(id)).length, 0); + } + } + results.push({ + id: "DB-SO-19", + result: "pass: stock accepted; copied/support/SMB/access/certificate/license rejected", + http: [201, 409], + }); + }); + await t.test( + "DB-SO-20 particular anterior incompleto sigue siendo editable y local", + async () => { + const inventory = InventoryResponseSchema.parse( + await (await ordinary.request(`/resources/${company}`)).json() + ); + const current = inventory.resources.find((item) => item.id === legacy.resourceId); + + assert.ok(current); + assert.equal( + ( + await ordinary.request(`/resources/${company}/${current.id}/update`, { + values: { ...current.values, notes: "Corrección posterior legítima" }, + }) + ).status, + 200 + ); + const after = InventoryResponseSchema.parse( + await (await ordinary.request(`/resources/${company}`)).json() + ).resources.find((item) => item.id === current.id); + + assert.ok(after); + assert.deepEqual(after.values.characteristics, current.values.characteristics); + assert.equal(after.history.length, 3); + assert.equal(after.companyId, company); + results.push({ id: "DB-SO-20", result: "pass", http: [200] }); + } + ); + + await t.test( + "C1 — equivalentes concurrentes esperan el lock de catálogo y solo uno persiste", + async () => { + const item = { ...identity, productVersion: "30" }; + const firstId = uuid(); + const secondId = uuid(); + const arrived = latch(); + const release = latch(); + + database.addHook("afterQuery", "closure-duplicate", async (_options, query) => { + const sql: unknown = Reflect.get(query, "sql"); + + if ( + typeof sql === "string" && + sql.startsWith("INSERT INTO `resources`") && + sql.includes(firstId) + ) { + arrived.release(); + await release.promise; + } + }); + const first = admin.request(root, { + creationId: firstId, + values: values(item), + reviewedIdentity: item, + }); + let second: Promise | undefined; + + try { + await waitBarrier(arrived.promise); + second = admin.request(root, { + creationId: secondId, + values: values(item), + reviewedIdentity: item, + }); + await waitCatalogLock(process.env.METIS_RESOURCE_SCOPE_DISPOSABLE ?? ""); + release.release(); + assert.equal((await first).status, 201); + assert.equal((await second).status, 409); + assert.equal((await rootRows(firstId)).length, 1); + assert.equal((await rootRows(secondId)).length, 0); + results.push({ + id: "C1", + result: "pass: observed InnoDB catalog wait; one equivalent persisted", + http: [201, 409], + }); + } finally { + release.release(); + database.removeHook("afterQuery", "closure-duplicate"); + await Promise.allSettled([first, ...(second ? [second] : [])]); + } + } + ); + await t.test( + "C2 — desactivación confirma primero y asociación revalida después de esperar", + async () => { + const target = await createProduct("31"); + const arrived = latch(); + const release = latch(); + + database.addHook("afterQuery", "closure-disable-first", async (_options, query) => { + const sql: unknown = Reflect.get(query, "sql"); + + if ( + typeof sql === "string" && + sql.startsWith("INSERT INTO `resources`") && + sql.includes(target.id) + ) { + arrived.release(); + await release.promise; + } + }); + const disabling = admin.request(`${root}/${target.id}/status`, { active: false }); + let installing: Promise | undefined; + + try { + await waitBarrier(arrived.promise); + installing = ordinary.request( + path, + { values: { ...input, assetId: raceAsset, resourceId: target.id } }, + v3 + ); + await waitCatalogLock(process.env.METIS_RESOURCE_SCOPE_DISPOSABLE ?? ""); + release.release(); + assert.equal((await disabling).status, 200); + assert.equal((await installing).status, 409); + assert.equal((await installationRows(raceAsset, target.id)).length, 0); + results.push({ + id: "C2", + result: "pass: deactivation first, waiting installation rejected", + http: [200, 409], + }); + } finally { + release.release(); + database.removeHook("afterQuery", "closure-disable-first"); + await Promise.allSettled([disabling, ...(installing ? [installing] : [])]); + } + } + ); + await t.test( + "C3 — identidad, instalación, metadatos y desactivación concurrentes", + async () => { + assert.equal( + ( + await admin.request(`${root}/${productId}/status`, { + active: true, + reviewedIdentity: identity, + }) + ).status, + 200 + ); + const current = await adminProduct(); + const beforeHistory = await database.query( + "SELECT id FROM resource_revisions WHERE resourceId=:id", + { replacements: { id: productId }, type: QueryTypes.SELECT } + ); + const changed = { ...identity, productVersion: "99" }; + const responses = await Promise.all([ + admin.request(`${root}/${productId}/update`, { + values: values(changed), + reviewedIdentity: changed, + }), + ordinary.request(path, { values: { ...input, assetId: raceAsset } }, v3), + admin.request(`${root}/${productId}/update`, { + values: { ...current.values, notes: "Metadatos concurrentes" }, + reviewedIdentity: identity, + expectedRevisionId: current.revisionId, + }), + admin.request(`${root}/${productId}/status`, { + active: false, + expectedRevisionId: current.revisionId, + }), + ]); + const identityResult = responses[0]; + const installationResult = responses[1]; + const metadataResult = responses[2]; + const statusResult = responses[3]; + + assert.ok(identityResult && installationResult && metadataResult && statusResult); + assert.equal(identityResult.status, 409); + assert.equal(ErrorSchema.parse(await identityResult.json()).code, "OS_IDENTITY_FIXED"); + assert.ok([201, 409].includes(installationResult.status)); + assert.deepEqual([metadataResult.status, statusResult.status].sort(), [200, 409]); + const publicProduct = GetGlobalOperatingSystemResponseSchema.parse( + await (await ordinary.request(`${root}/${productId}`)).json() + ).resource; + + assert.equal(publicProduct.productVersion, "11"); + assert.equal(publicProduct.name, "Windows 11 Pro"); + assert.equal( + ( + await database.query("SELECT id FROM resource_revisions WHERE resourceId=:id", { + replacements: { id: productId }, + type: QueryTypes.SELECT, + }) + ).length, + beforeHistory.length + 1 + ); + assert.equal( + (await installationRows(raceAsset, productId)).length, + installationResult.status === 201 ? 1 : 0 + ); + results.push({ + id: "C3", + result: "pass: commercial identity fixed; exactly one optimistic admin update", + http: responses.map((response) => response.status), + }); + } + ); + await t.test( + "C4a — fallo tras escribir raíz global revierte raíz, características y revisiones", + async () => { + const id = uuid(); + const item = { ...identity, productVersion: "40" }; + let faultTriggered = false; + + database.addHook("afterQuery", "closure-fail-resource", async (_options, query) => { + const sql: unknown = Reflect.get(query, "sql"); + + if ( + typeof sql === "string" && + sql.startsWith("INSERT INTO `resource_revisions`") && + sql.includes(id) + ) { + faultTriggered = true; + throw new Error("CONTROLLED_CLOSURE_RESOURCE_FAILURE"); + } + }); + try { + const response = await admin.request(root, { + creationId: id, + values: values(item), + reviewedIdentity: item, + }); + + assert.equal(response.status, 500); + assert.equal(faultTriggered, true); + const body = await response.text(); + + assert.ok( + !(body.includes("CONTROLLED_") || body.includes("INSERT") || body.includes("stack")) + ); + const snapshot = await resourceSqlSnapshot(database, id); + + assert.ok( + Object.values(snapshot).every((rows) => Array.isArray(rows) && rows.length === 0) + ); + } finally { + database.removeHook("afterQuery", "closure-fail-resource"); + } + assert.equal( + ( + await admin.request(root, { + creationId: id, + values: values(item), + reviewedIdentity: item, + }) + ).status, + 201 + ); + results.push({ + id: "C4a", + result: "pass: rollback of root/values/revisions, same creation UUID retry succeeds", + http: [500, 201], + }); + } + ); + await t.test( + "C4b — fallo en revisión de instalación revierte instalación completa", + async () => { + const target = await createProduct("41"); + const previousProduct = await resourceSqlSnapshot(database, target.id); + let faultTriggered = false; + + database.addHook("afterQuery", "closure-fail-installation", async (_options, query) => { + const sql: unknown = Reflect.get(query, "sql"); + + if ( + typeof sql === "string" && + sql.startsWith("INSERT INTO software_installation_revisions") && + sql.includes(target.id) + ) { + faultTriggered = true; + throw new Error("CONTROLLED_CLOSURE_INSTALLATION_FAILURE"); + } + }); + try { + assert.equal( + ( + await ordinary.request( + path, + { values: { ...input, assetId: raceAsset, resourceId: target.id } }, + v3 + ) + ).status, + 500 + ); + assert.equal((await installationRows(raceAsset, target.id)).length, 0); + assert.equal(faultTriggered, true); + assert.equal( + ( + await database.query( + "SELECT id FROM software_installation_revisions WHERE resourceId=:id", + { replacements: { id: target.id }, type: QueryTypes.SELECT } + ) + ).length, + 0 + ); + assert.deepEqual(await resourceSqlSnapshot(database, target.id), previousProduct); + } finally { + database.removeHook("afterQuery", "closure-fail-installation"); + } + results.push({ + id: "C4b", + result: "pass: no partial installation or orphan revision; Resource unchanged", + http: [500], + }); + } + ); + await t.test("D — contratos v2/v3, propósito, capabilities y autorización", async () => { + const capabilities2 = await ( + await ordinary.request(`/resource-application-candidates/${company}/capabilities`) + ).json(); + + assert.deepEqual(Object.keys(z.record(z.string(), z.unknown()).parse(capabilities2)).sort(), [ + "profileAssociation", + "profileSelection", + "softwareAssociation", + "softwareSelection", + ]); + const capabilities3 = ApplicationReferenceCapabilitiesSchema.parse( + await ( + await ordinary.request( + `/resource-application-candidates/${company}/capabilities`, + undefined, + v3 + ) + ).json() + ); + + assert.equal(capabilities3.operatingSystemAssociation, true); + assert.equal((await ordinary.request(path)).status, 409); + assert.equal((await ordinary.request(path, undefined, { contract: null })).status, 409); + assert.equal((await ordinary.request(path, undefined, { contract: "4" })).status, 400); + assert.equal((await ordinary.request(`${root}/${productId}/admin`)).status, 403); + assert.equal( + ( + await ordinary.request(root, { + creationId: uuid(), + values: values(identity), + reviewedIdentity: identity, + }) + ).status, + 403 + ); + assert.equal( + ( + await admin.request( + `${root}/${productId}/status`, + { active: false }, + { token: "invalid" } + ) + ).status, + 403 + ); + const osList = ListGlobalOperatingSystemsResponseSchema.parse( + await (await ordinary.request(root)).json() + ); + + assert.ok(osList.items.every((item) => item.kind === "os" && item.id !== applicationId)); + results.push({ + id: "D", + result: + "pass: exact capabilities v2, v3 OS, incompatible reads and unauthorized writes rejected", + http: [200, 409, 400, 403], + }); + }); + await t.test("F — cerrar gates conserva lectura, historial y retirada legítima", async () => { + const current = await readInstallation(company, assetA2, productId); + + await new Promise((resolve, reject) => + server.close((error) => (error ? reject(error) : resolve())) + ); + runtime.stop(); + runtime = await createIdentityRuntime( + database, + readDatabaseEnvironment({ + ...process.env, + RESOURCE_GLOBAL_CATALOG_ENABLED: "false", + RESOURCE_GLOBAL_SOFTWARE_ENABLED: "false", + RESOURCE_GLOBAL_SOFTWARE_CANDIDATES_ENABLED: "false", + RESOURCE_GLOBAL_PROFILE_ENABLED: "false", + RESOURCE_GLOBAL_OS_CATALOG_ENABLED: "false", + RESOURCE_GLOBAL_OS_SOFTWARE_ENABLED: "false", + }) + ); + server = createApp(() => undefined, runtime).listen(0, "127.0.0.1"); + await once(server, "listening"); + const next = server.address(); + + assert.ok(next && typeof next !== "string"); + const manager = await scopeApiClient(`http://127.0.0.1:${next.port}`); + const client = await scopeApiClient(`http://127.0.0.1:${next.port}`); + + assert.equal( + (await manager.request("/auth/login", { email: "closure-admin@example.invalid", password })) + .status, + 200 + ); + await manager.refresh(); + assert.equal( + (await client.request("/auth/login", { email: "closure-user@example.invalid", password })) + .status, + 200 + ); + await client.refresh(); + assert.equal((await client.request(`${root}/${productId}`)).status, 200); + assert.equal((await manager.request(`${root}/${productId}/history`)).status, 200); + assert.equal((await client.request(path, undefined, v3)).status, 200); + assert.equal( + ( + await manager.request(root, { + creationId: uuid(), + values: values({ ...identity, productVersion: "50" }), + reviewedIdentity: { ...identity, productVersion: "50" }, + }) + ).status, + 409 + ); + for (const state of ["removal_pending", "removed"]) { + assert.equal( + ( + await client.request( + `${path}/${current.id}/update`, + { values: { ...current.values, state } }, + v3 + ) + ).status, + 200 + ); + } + results.push({ + id: "F", + result: "pass: all six gates closed; read/history/removal preserved", + http: [200, 409], + }); + }); + const orphans = await database.query( + "SELECT r.id FROM software_installation_revisions r LEFT JOIN software_installations s ON s.id=r.configurationId WHERE s.id IS NULL UNION ALL SELECT r.id FROM resource_revisions r LEFT JOIN resources s ON s.id=r.resourceId WHERE s.id IS NULL", + { type: QueryTypes.SELECT } + ); + + assert.equal(orphans.length, 0); + await writeScopeEvidence("closure-results.json", { + results, + databaseCases: results.filter((item) => item.id.startsWith("DB-SO-")).length, + companies: 15, + principal: { people: 50, assets: 50, workstations: 50, profiles: 50, resourcesAtLeast: 53 }, + orphanRevisions: orphans.length, + semanticSqlUnique: false, + productionActivated: false, + }); + } finally { + await new Promise((resolve, reject) => + server.close((error) => (error ? reject(error) : resolve())) + ); + runtime.stop(); + await database.close(); + } +}); diff --git a/apps/server/src/global-operating-systems-legacy.fixture.ts b/apps/server/src/global-operating-systems-legacy.fixture.ts new file mode 100644 index 00000000..be21e43c --- /dev/null +++ b/apps/server/src/global-operating-systems-legacy.fixture.ts @@ -0,0 +1,230 @@ +import assert from "node:assert/strict"; + +import { Maybe, Result } from "@repo/rdx-utils"; +import type { Sequelize } from "sequelize"; +import { QueryTypes } from "sequelize"; + +import type { ResourceUseCases } from "../../../modules/resources/src/api/application/resource.use-cases"; +import { seedResourceCatalog } from "../../../modules/resources/src/api/domain/resource-catalog-seed"; +import { ResourceDefinitionValues } from "../../../modules/resources/src/api/domain/value-objects/resource-definition-values.vo"; +import { ResourceCatalogPersistenceMapper } from "../../../modules/resources/src/api/infrastructure/persistence/resource-catalog-persistence.mapper"; +import { SequelizeResourceCatalogRepository } from "../../../modules/resources/src/api/infrastructure/persistence/sequelize-resource-catalog.repository"; +import { UniqueID } from "../../../packages/rdx-ddd/src/index"; + +export async function resourceSqlSnapshot(database: Sequelize, resourceId: string) { + const snapshot: Record = {}; + + for (const table of [ + "resources", + "resource_characteristics", + "resource_specification_fields", + "resource_revisions", + "resource_revision_characteristics", + "resource_revision_specifications", + "resource_revision_specification_fields", + ]) { + const column = table === "resources" ? "id" : "resourceId"; + const rows = await database.query>( + `SELECT * FROM ${database.getQueryInterface().quoteIdentifier(table)} WHERE ${column}=:id`, + { replacements: { id: resourceId }, type: QueryTypes.SELECT } + ); + + snapshot[table] = rows.sort((left, right) => + String(left.id ?? left.revisionId ?? left.fieldId).localeCompare( + String(right.id ?? right.revisionId ?? right.fieldId) + ) + ); + } + + return snapshot; +} + +/** Recrea solo en la BD desechable el catálogo anterior; después ejecuta el seed de arranque real. */ +export async function verifyLegacyOperatingSystemEvolution( + database: Sequelize, + resources: ResourceUseCases, + companyId: string, + actorId: string +) { + const repository = new SequelizeResourceCatalogRepository( + database, + new ResourceCatalogPersistenceMapper() + ); + const customName = "Canal documental heredado Ñ"; + const customValues = ResourceDefinitionValues.create({ + kind: "field", + name: customName, + description: "Personalización de prueba", + type: "text", + unit: "", + choices: [], + }); + + assert.ok(customValues.isSuccess); + const customSaved = await repository.update(Maybe.none(), (catalog) => + catalog.save(Maybe.none(), Maybe.none(), customValues.data) + ); + + assert.ok(customSaved.isSuccess); + const template = customSaved.data.definitions.find( + (item) => item.stockKey.getOrUndefined() === "template:os" + ); + const custom = customSaved.data.definitions.find((item) => item.values.data.name === customName); + const provider = customSaved.data.definitions.find( + (item) => item.stockKey.getOrUndefined() === "field:provider" + ); + const original = template?.values.data; + + assert.ok(template && custom && provider && original?.kind === "template"); + const removed = customSaved.data.definitions.filter((item) => + ["field:os_family", "field:os_product_version", "field:os_edition_state"].includes( + item.stockKey.getOrUndefined() ?? "" + ) + ); + const oldKeys = new Set(["field:provider", "field:software_edition", "field:description"]); + const oldIds = new Set( + customSaved.data.definitions + .filter((item) => oldKeys.has(item.stockKey.getOrUndefined() ?? "")) + .map((item) => item.id.toPrimitive()) + ); + const section = UniqueID.generateNewID().toPrimitive(); + const legacyValues = ResourceDefinitionValues.create({ + ...original, + name: "SO heredado — personalización Ñ", + description: "Texto anterior conservado", + sections: [ + { id: section, name: "Identificación heredada", description: "Grupo personalizado" }, + ], + fields: [ + ...original.fields + .filter((item) => oldIds.has(item.fieldId)) + .map((item) => ({ ...item, sectionId: section })), + { fieldId: custom.id.toPrimitive(), required: false, sectionId: section }, + ], + }); + + assert.ok(legacyValues.isSuccess); + const saved = await repository.update(Maybe.none(), (catalog) => + catalog.save(Maybe.none(), Maybe.some(template.id), legacyValues.data) + ); + + assert.ok(saved.isSuccess); + const created = await resources.save( + companyId, + undefined, + { + templateId: template.id.toPrimitive(), + name: "SO particular anterior incompleto", + active: true, + notes: "Primera revisión", + characteristics: { + [provider.id.toPrimitive()]: "Proveedor anterior", + [custom.id.toPrimitive()]: "Canal Ñ anterior", + }, + }, + actorId + ); + + assert.ok(created.isSuccess); + const resourceId = created.data.resource.id.toPrimitive(); + const edited = await resources.save( + companyId, + resourceId, + { ...created.data.resource.values.toPrimitive(), notes: "Segunda revisión previa" }, + actorId + ); + + assert.ok(edited.isSuccess); + const company = UniqueID.create(companyId); + + assert.ok(company.isSuccess); + const unavailable = await repository.update(Maybe.none(), (catalog) => + catalog.setActive(Maybe.some(company.data), template.id, false) + ); + + assert.ok(unavailable.isSuccess); + // Las definiciones nuevas no están utilizadas: se retiran únicamente de esta fixture para emular la versión anterior. + for (const definition of removed) { + await database.query("DELETE FROM resource_field_choices WHERE fieldId=:id", { + replacements: { id: definition.id.toPrimitive() }, + }); + await database.query("DELETE FROM resource_definitions WHERE id=:id", { + replacements: { id: definition.id.toPrimitive() }, + }); + } + const before = await resourceSqlSnapshot(database, resourceId); + const beforeBindings = await database.query( + "SELECT * FROM resource_template_fields WHERE templateId=:id ORDER BY position", + { replacements: { id: template.id.toPrimitive() }, type: QueryTypes.SELECT } + ); + const beforeAvailability = await database.query( + "SELECT * FROM resource_availability ORDER BY id", + { type: QueryTypes.SELECT } + ); + const first = await repository.update(Maybe.none(), (catalog) => + Result.ok(seedResourceCatalog(catalog)) + ); + + assert.ok(first.isSuccess); + const firstBindings = await database.query( + "SELECT * FROM resource_template_fields WHERE templateId=:id ORDER BY position", + { replacements: { id: template.id.toPrimitive() }, type: QueryTypes.SELECT } + ); + const firstDefinitions = await database.query( + "SELECT id,stockKey,name FROM resource_definitions ORDER BY id", + { type: QueryTypes.SELECT } + ); + const second = await repository.update(Maybe.none(), (catalog) => + Result.ok(seedResourceCatalog(catalog)) + ); + + assert.ok(second.isSuccess); + assert.deepEqual( + await database.query( + "SELECT * FROM resource_template_fields WHERE templateId=:id ORDER BY position", + { replacements: { id: template.id.toPrimitive() }, type: QueryTypes.SELECT } + ), + firstBindings + ); + assert.deepEqual( + await database.query("SELECT id,stockKey,name FROM resource_definitions ORDER BY id", { + type: QueryTypes.SELECT, + }), + firstDefinitions + ); + assert.deepEqual(firstBindings.slice(0, beforeBindings.length), beforeBindings); + assert.equal(firstBindings.length, beforeBindings.length + 3); + assert.deepEqual(await resourceSqlSnapshot(database, resourceId), before); + assert.deepEqual( + await database.query("SELECT * FROM resource_availability ORDER BY id", { + type: QueryTypes.SELECT, + }), + beforeAvailability + ); + const evolved = second.data.definitions.find((item) => item.id.equals(template.id)); + + assert.ok(evolved?.values.data.kind === "template"); + assert.equal(evolved.values.data.name, "SO heredado — personalización Ñ"); + assert.deepEqual( + evolved.values.data.sections, + legacyValues.data.data.kind === "template" ? legacyValues.data.data.sections : [] + ); + assert.ok(evolved.values.data.fields.every((item) => !item.required)); + const restored = await repository.update(Maybe.none(), (catalog) => + catalog.setActive(Maybe.some(company.data), template.id, null) + ); + + assert.ok(restored.isSuccess); + + return { + resourceId, + templateId: template.id.toPrimitive(), + originalBindings: beforeBindings, + evolvedBindings: firstBindings, + originalResourcesUnchanged: true, + revisionsPreserved: edited.data.resource.history.length, + evolutionRuns: 2, + customizationPreserved: true, + availabilityPreserved: true, + }; +} diff --git a/docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md b/docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md new file mode 100644 index 00000000..ed6dda79 --- /dev/null +++ b/docs/architecture/cierre-tecnico-catalogo-global-sistemas-operativos.md @@ -0,0 +1,372 @@ +# Cierre técnico — Catálogo global de sistemas operativos + +Fecha: 25 de octubre de 2026. Base inspeccionada: `main`, `d2bf856c973419277f0b30f6437242cd82f7d720`. Node.js 24.20.0 y PNPM 11.25.0. + +**Dictamen vigente: GO técnico para el snapshot de fuentes registrado en la resolución del apartado 19.** El NO-GO inicial queda levantado por causa demostrada, regresiones correctas y nueva validación visual. No equivale a CI global verde ni a autorización de despliegue o activación. Producción permanece sin activar por esta intervención. + +## 1. Dictamen ejecutivo del cierre inicial + +**Dictamen inicial: NO-GO.** La persistencia, los contratos y la concurrencia del catálogo SO superaban las pruebas aisladas. Sin embargo, fallaba la prueba de presentación del SO actual en el panel de software y había cambios concurrentes en mapa, diálogos y traducciones posteriores a la evidencia visual. No se certificó esa interfaz con capturas anteriores. Además, las comprobaciones generales del repositorio conservaban errores ajenos al catálogo. Su resolución posterior se documenta en el apartado 19. + +Este dictamen no declara defectuoso el modelo de persistencia ni autoriza una activación. Se debe estabilizar una revisión candidata, resolver los bloqueos y validar sus recorridos afectados antes de emitir GO. **No se ha desplegado, activado ni consultado configuración efectiva de producción.** + +La intervención añade pruebas y documentación; no cambia el comportamiento funcional ni `SoftwareInstallation`. La única corrección realizada durante el cierre afecta a la prueba de reinicio de gates: conservaba un cliente HTTP conectado al puerto anterior. La repetición completa pasa. + +## 2. Fuentes, alcance y cambios concurrentes + +Fuentes normativas consultadas: [auditoría previa](auditoria-catalogo-global-sistemas-operativos.md), [decisión aprobada](decision-catalogo-global-sistemas-operativos.md), [registro de implementación](implementacion-catalogo-global-sistemas-operativos.md), [decisión original del SO actual](decision-so-actual-en-activos-y-puestos.md), [R2.0–R2.6](resources-global-scope/09-plan-implementacion-r2.md), [persistencia R2.1b](resources-global-scope/12-r2-1b-persistencia.md), [estado D08.2](resources-global-scope/19-d08-2-resolucion-ratificacion.md) y documentación de capas, composición, contratos y pruebas de `docs/arquitectura/`. + +Se aplicó `rdx-solid` y su referencia de pruebas para probar contratos observables con HTTP y MariaDB reales, reutilizando las fixtures existentes. No se necesitó ni instaló una skill adicional. No se realizó diseño UI en este cierre. + +El árbol quedó limpio en la base indicada. Después aparecieron modificaciones concurrentes en Assets/Companies: acciones de nodos del mapa, extracción de controladores/diálogos de instalación e historial y traducciones. Se conservaron. No forman parte de las correcciones de este cierre. Las pruebas generales reflejan el árbol existente durante su ejecución; el manifiesto de evidencias permite distinguirlo de la base. + +Archivos propios del cierre: + +- `apps/server/src/global-operating-systems-closure.integration.test.ts`: matriz DB-SO, concurrencia, fallos controlados, contratos y cierre de gates. +- `apps/server/src/global-operating-systems-legacy.fixture.ts`: reconstrucción de plantilla antigua y comparación SQL tras dos evoluciones. +- `scripts/resource-scope-test.py` y `package.json`: opción `--operating-systems-closure` y comando reproducible. +- Este informe y `.artifacts/resources-global-operating-systems-closure/`. + +## 3. Inventario y capacidades + +«Implementada» describe el código y la prueba citada. «Aislado» describe exclusivamente contenedores de prueba. La configuración efectiva de producción es **no verificada** en todas las filas. + +| Capacidad / propietario | Código | Entorno aislado y evidencia | Producción | +| --- | --- | --- | --- | +| Resources: producto SO global sobre stock `template:os` | Implementada | DB-SO-01, 19 | No verificada | +| Identidad comercial, revisión previa y UUID por producto | Implementada | Unitarias, suite SO original, C1/C3 | No verificada | +| Edición conocida/no aplicable/desconocida y borradores | Implementada | Suite SO original y Resources | No verificada | +| Evolución conservadora de plantilla antigua | Implementada | B3, dos ejecuciones SQL | No verificada | +| Administración y publicación protegidas | Implementada | HTTP, permisos, CSRF y gates | No verificada | +| DTO SO, DTO application y referencias públicas por propósito | Implementada | Contratos v2/v3, DB-SO-02/10, D | No verificada | +| Companies: instalación por activo, versión e historial | Implementada | DB-SO-04–18 | No verificada | +| Licencias particulares y pertenencia a compañía | Implementada | DB-SO-08/09 y R2.4 | No verificada | +| SO particular anterior y coexistencia | Implementada | B3, DB-SO-07/20 | No verificada | +| Selectores mixtos y capabilities SO | Implementada | Suite SO original y D | No verificada | +| Assets/puestos/panel/historial/mapa: SO actual y enlaces | Implementada; validación actual bloqueada | Evidencia visual anterior; regresión actual del panel | No verificada | +| Frontend: catálogo, formulario, revisión, es/en y estados | Implementada | Resources; evidencia visual anterior delimitada abajo | No verificada | +| Caché acotada por catálogo, UUID y propósito | Implementada | Prueba específica reejecutada, Resources | No verificada | +| Cerrar gates manteniendo lectura/historial/retirada | Implementada | F y suites SO/R2.4 | No verificada | +| Unicidad semántica física SQL multicampo | Ausente por decisión | No se promete; C1 verifica policy y lock | No aplicable | +| Globalidad de licencias/SMB/acceso/otros/copias | Ausente deliberadamente | DB-SO-03/19 y regresiones | No aplicable | +| Adopción, fusión, sucesión D08.2, inventario automático | Ausente; fuera de alcance | No implementado | No aplicable | +| Activación operativa de una revisión candidata estable | Bloqueada | Pendientes del apartado 18 | No realizada | + +## 4. Decisiones materializadas y archivos principales + +Resources conserva la propiedad del producto. La identidad declarativa usa proveedor, familia, versión principal, estado de edición y edición. La normalización conserva tildes y no equipara sinónimos. Una identidad publicada queda fija incluso al desactivar el producto; otro producto comercial necesita otro UUID. No hay fusión automática de particulares ni reasignación de instalaciones. + +`SoftwareInstallation` conserva identidad, activo, producto inmutable, versión instalada, licencia particular, estado y revisiones. `ApplicationConfiguration` sigue admitiendo exclusivamente aplicaciones. Los repositorios globales comparten infraestructura con elegibilidad configurada por tipo; no se creó otro catálogo persistente. + +| Área | Archivos / responsabilidad | +| --- | --- | +| Dominio Resources | `api/domain/operating-system-identity.ts`, `evolve-operating-system-template.ts`, `resource-catalog-seed.ts` | +| Aplicación Resources | `api/application/operating-system-identity-policy.ts`, `global-resource.use-cases.ts`, `resource-global-gates.ts`, `resource-reference-service.ts` | +| Persistencia | `sequelize-global-resource.repository.ts`, `global-operating-system-reader.ts`, `resource-reference-reader.ts`, `resource-reference-metadata.ts`, `verify-global-resource-enablement.ts` | +| Contratos | `common/operating-system-identity.ts`, DTO de referencias/requests/responses y contrato del cliente Resources | +| Composición | `modules/resources/src/api/module.ts`, configuración de servidor e `identity-runtime.ts` | +| UI Resources | `web/global-operating-systems/` y componentes compartidos de `web/global-applications/` | +| Consumidores | SO actual de Assets/Companies, selectores de software, panel/historial/mapa y `software-reference-href.ts` | +| Consultas y textos | Query keys e invalidación explícita de `global-applications`; traducciones es/en de módulos y navegación web | + +Las rutas de Resources de la tabla son relativas a `modules/resources/src/`. No se modificaron vendor ni `archive/`. D08 continúa sin ratificación global; D08.2 mantiene su resolución con condiciones y no equivale a adopción implementada. + +## 5. Preparación y esquema MariaDB + +Prueba real: **MariaDB 11.8.9-MariaDB-ubu2404**, imagen 11.8 fijada por digest en el lanzador. Cada ejecución crea un contenedor y base **`metis_desk_test` desechables**, puerto efímero de loopback y credenciales temporales. No carga `.env`. El lanzador elimina contenedor, volumen y credenciales temporales al terminar. + +Evidencia: [schema.json](../../.artifacts/resources-global-operating-systems-closure/schema.json), con versión, SQL mode, collation, columnas, índices, FKs, CHECK, DDL, engines y resultado de migración. Las tablas son InnoDB; las vistas no tienen engine propio. `foreign_key_checks=1` y `check_constraint_checks=1`. La migración completa `scope`, `ownerCheck`, `integrationCheck` y `nullableOwner`; repetirla no aplica cambios. El CLI posterior confirma esquema scoped. + +Se inspeccionaron, entre otros: PK de Resource/instalación/revisiones; `resource_company_identity`; unicidad `(resourceId, position)` de revisión; `currentKey` único de instalación y `(configurationId, position)` de revisión; FKs de instalación a activo, Resource y licencia y de revisiones a sus raíces; CHECK `resource_scope_owner` y `resource_global_no_integration`. + +Las FKs referenciales **no sustituyen** las policies de tipo, scope, pertenencia de licencia o disponibilidad: estas se verifican por HTTP y persistencia. Tampoco existe UNIQUE SQL de identidad comercial EAV. No se ha añadido DDL para SO ni se ejecutó migración sobre una base real. + +Volumen de la suite de cierre: 15 compañías; principal con 50 personas, 50 activos, 50 puestos, 50 perfiles y al menos 53 recursos particulares, además de productos globales e instalaciones de prueba. Las pruebas unitarias conservan conjuntos pequeños. No se afirma que la suite de cierre sea un benchmark de carga. + +## 6. Matriz DB-SO + +Todos los casos usan endpoints reales, validación Zod, casos de uso y Sequelize/MariaDB. Se comprueban tanto HTTP como filas/revisiones o ausencia de ellas. + +| Caso | Comprobación | Resultado | +| --- | --- | --- | +| DB-SO-01 | Crear SO stock global, compañía nula | 201; correcto | +| DB-SO-02 | Crear aplicación; listado exclusivamente application junto al SO | 201; correcto | +| DB-SO-03 | Licencia como global | 409; ninguna raíz | +| DB-SO-04 | Instalar desde A | 201; correcto | +| DB-SO-05 | Instalar mismo UUID desde B con versión/licencia propias | 201; independiente | +| DB-SO-06 | Segundo activo A | 201; instalación distinta | +| DB-SO-07 | Particular y global homónimos | UUID y filas independientes; candidatos separados | +| DB-SO-08 | Licencia A en instalación A | 200; asociación propia | +| DB-SO-09 | Licencia A desde B | 404; licencia B anterior preservada | +| DB-SO-10 | SO como ApplicationConfiguration | 404; ninguna configuración | +| DB-SO-11 | Desactivar producto utilizado | 200; instalaciones intactas | +| DB-SO-12 | Nueva instalación con producto inactivo | 409; ninguna fila | +| DB-SO-13 | Historial y resolución inactiva | 200; conservados | +| DB-SO-14 | Cambiar versión instalada a 24H2 | Revisión adicional; mismo producto | +| DB-SO-15 | Cambiar destino de instalación | 409 `SOFTWARE_TARGET_IMMUTABLE`; historial intacto | +| DB-SO-16 | Retirar producto inactivo | `removal_pending` → `removed`; dos revisiones | +| DB-SO-17 | Replay del mismo `creationId` | 200; SQL idéntico, no reactiva | +| DB-SO-18 | Activar/desactivar | Mismo UUID, seis revisiones del producto y referencias conservadas | +| DB-SO-19 | Stock frente a copia y tipos no autorizados | Copia creada localmente; todos los intentos globales no elegibles 409 | +| DB-SO-20 | Editar particular antiguo incompleto | 200; valores preservados, nueva revisión y scope local | + +Resultado: **20/20 DB-SO**. La suite contiene **28 escenarios y una prueba contenedora: 29/29 tests**. [Resultados estructurados](../../.artifacts/resources-global-operating-systems-closure/closure-results.json) e [informe de ejecución](../../.artifacts/resources-global-operating-systems-closure/integration.log). + +## 7. Evolución doble de plantilla antigua + +B3 reconstruye exclusivamente en la fixture desechable una plantilla anterior con proveedor, edición y descripción, un campo propio, sección/nombre personalizados y override de disponibilidad. Crea un particular incompleto y dos revisiones antes de evolucionar. Después ejecuta dos veces el seed real mediante el repositorio SQL. + +Se conservan UUID/orden de bindings originales, sección, personalización, disponibilidad, valores y las dos revisiones. Se añaden los tres campos de identidad nuevos como opcionales; la segunda ejecución no cambia definiciones ni bindings. Los snapshots de raíz, características, especificación e historial del particular son idénticos: no se fabrica familia, versión ni edición para recursos heredados. + +La suite SO complementaria prueba edición conocida, borrador desconocido y edición no aplicable explícita con activación revisada. Evidencia: [legacy-evolution.json](../../.artifacts/resources-global-operating-systems-closure/legacy-evolution.json). + +## 8. Concurrencia y rollback + +| Prueba | Coordinación real y garantía observada | +| --- | --- | +| C1: dos altas equivalentes | Se retiene la primera escritura y se observa espera InnoDB del segundo escritor en el catálogo; 201/409 y una sola raíz equivalente. | +| C2: desactivación primero | Asociación espera el lock real; después del commit relee disponibilidad y devuelve 409 sin instalación. | +| SO complementaria: instalación primero | Desactivación espera la instalación; ambas confirman en orden válido, conservando instalación histórica. | +| C3: identidad/instalación/metadatos/desactivación | Cuatro peticiones concurrentes; identidad publicada rechazada; exactamente una actualización administrativa con revisión esperada confirma. La instalación es aceptada o rechazada según orden serial válido; filas y revisión final coinciden. | +| C4a: fallo tras escribir revisión Resource | Hook SQL lanza fallo controlado comprobado; HTTP 500 saneado; rollback de raíz/características/especificación/revisiones. Reintento con mismo UUID crea correctamente. | +| C4b: fallo tras escribir revisión de instalación | Fallo inyectado comprobado; ninguna instalación/revisión parcial; snapshot del producto idéntico. | + +La consulta final encuentra **cero revisiones huérfanas** de Resource e instalación. No se usan esperas arbitrarias para ordenar las carreras: barreras y observación de locks. Son intercalaciones concretas comprobadas, no una demostración de todos los posibles órdenes ni una prueba de fallos de hardware. El lock de catálogo serializa escritores; no hay unicidad semántica física multicampo ni equivalencia de sinónimos. Las escrituras SQL externas que omitan las policies quedan fuera de esa garantía. + +## 9. Seguridad y aislamiento + +Autenticación real por formulario HTTP, sesión y CSRF. Usuario ordinario recibe 403 para administración y altas; token CSRF inválido recibe 403. La compañía se comprueba en servidor. La licencia ajena se rechaza sin cambiar la asociación existente. El propósito de perfiles no admite SO. Copias, licencias, soporte, SMB, acceso y certificados no adquieren globalidad. + +Los fallos controlados no exponen sentencia SQL, stack ni mensaje interno al cliente. Las evidencias conservadas no incluyen contraseña, cookies ni `storageState`. El cierre no inspeccionó datos ni credenciales de producción. + +## 10. Compatibilidad y regresiones de aplicaciones + +Contrato Resources **3** para software mixto con SO global: DTO SO propio, `kind=os`, `scope=global`, `companyId=null`, identidad comercial y `href`. El DTO application conserva `kind=application`. Los particulares conservan su proyección y pertenencia. + +La suite prueba capabilities v2 con exactamente las cuatro claves anteriores y v3 con capacidad SO; el cliente v2 y el cliente sin cabecera reciben 409 al leer una colección que requiere SO global. Versión 4 no soportada devuelve 400. No se realiza downgrade silencioso de esa colección. El contrato anterior sigue operativo para contextos compatibles probados en R2.4; no se afirma compatibilidad total de clientes antiguos con SO global. + +Reejecutadas en contenedores independientes: R2.3 administración **12/12**, R2.4 software **13/13**, R2.5 perfiles **11/11**, R2.6 coincidencias **6/6** y SO original **12/12**. Cubren alta/edición/estado, selección, instalación, historial, UUID, perfiles, licencias, exclusiones y negociación. El nuevo DB-SO-02 verifica que aplicaciones no recibe SO con ambos tipos persistidos; DB-SO-10 comprueba exclusión de perfiles. Se conserva la prueba R2.6 y su filtro específico de application; no se amplía R2.6 a SO. + +Regresión HTTP/MariaDB del cierre: **50/50** (servidor/contratos HTTP, configuración, diagnósticos, permisos de relaciones, dominios, SMB, accesos, membresías, relaciones tipadas, publicaciones y propagación de plantillas). [Evidencias de regresiones](../../.artifacts/resources-global-operating-systems-closure/regression-suites/) y [regressions.log](../../.artifacts/resources-global-operating-systems-closure/regressions.log). + +## 11. Caché frontend + +Reejecutada en los **116/116** tests de Resources la prueba `SO global: invalida software y su catálogo sin refrescar aplicaciones ni perfiles` de `global-applications.test.tsx`. Verifica invalidación de catálogo SO, candidatos/resolución para software y colección de instalaciones; mantiene sin invalidar catálogo application, coincidencias, candidatos/resolución de perfiles y `ApplicationConfiguration`. No invalida toda la caché. + +El test comprueba estado de TanStack Query; por sí solo no prueba todos los refetch de navegador. Las etiquetas y navegación entre activo/puesto se probaron visualmente en la intervención anterior. La regresión actual del panel impide extender esa garantía a la interfaz concurrente sin nueva comprobación. + +## 12. Validación técnica y fallos delimitados + +| Comando / ámbito | Resultado de este cierre | +| --- | --- | +| `pnpm --filter @metis/{resources,companies,assets,web,server} typecheck`, ejecutado individualmente | Los cinco paquetes correctos | +| Biome y ESLint de los dos nuevos TS y Biome de `package.json` | Correctos | +| Resources | 116/116 correctos; necesita loopback para su prueba HTTP | +| Companies, ejecución detallada sin aislamiento de procesos | 305 tests: 302 correctos, 3 fallos detallados abajo | +| Assets | 29 ficheros de prueba correctos en ejecución ordinaria | +| Web | 3 ficheros de prueba correctos | +| Suites HTTP/MariaDB | Correctas según apartados 6 y 10 | +| `pnpm build` | Servidor y web correctos; advertencia de chunk web mayor de 500 kB | +| `pnpm typecheck`, y Turbo de paquetes con dependencias | Bloqueado por `packages/shadcn-ui/src/components/calendar.tsx:165`, incompatibilidad `locale` con `exactOptionalPropertyTypes` | +| `pnpm lint` | 15 errores, 4 warnings y 5 infos generales | +| `pnpm check` | 170 errores, 4 warnings y 5 infos en el árbol durante la ejecución | + +El error vendor y los dos fallos de `companies-page.test.tsx` (textos de ayuda de compañía/persona) ya constaban antes del cierre. Los errores generales de lint/formato abarcan código y ejemplos ajenos al catálogo; no se han reparado indiscriminadamente ni se considera el repositorio globalmente validado. + +El tercer fallo es actual: `software.test.tsx:126`, el render del panel no contiene «Windows 11 Pro». Coincide con la modificación concurrente de `software-installations-panel.tsx`; la evidencia dirigida anterior pasaba este test. El hecho demostrado es la regresión de la prueba de presentación. Su causa final y la validación de la nueva interacción pertenecen al cambio concurrente; no se certifican ni se corrigen por inferencia en este cierre. + +Las primeras pruebas dentro del sandbox de red fallaron en tests que levantan HTTP local. Resources se repitió con loopback permitido y pasó; se conservan ambos resultados. No se atribuye ese fallo al código. No se ejecutó el `pnpm test` raíz sin filtro: el script server carga `.env` y usa una base configurada; se sustituyó por las integraciones explícitas desechables, sin acceso a configuración local. + +Logs conservados en [technical/](../../.artifacts/resources-global-operating-systems-closure/technical/). Los resultados no equivalen a validar futuras modificaciones del árbol. + +## 13. Playwright anterior: reutilización delimitada + +Se verificó el informe original `.artifacts/playwright/authenticated-al820anx/global-operating-systems-report.json`: **28 comprobaciones y 27 capturas**. Se recalcularon todos los SHA-256, coincidentes. Es evidencia de la intervención anterior, **ninguna ejecución nueva de Playwright en este cierre**. Se conservan copia del [informe](../../.artifacts/resources-global-operating-systems-closure/previous-ui/report.json), [verificación](../../.artifacts/resources-global-operating-systems-closure/previous-ui/verification.json) y capturas en ese mismo directorio. + +Incluye catálogo vacío, formulario/revisión/identidad rechazada, retorno de foco, borrador, es/en, carga/error/reintento, búsqueda y paginación con 51 SO, claro/oscuro a 320/390/768/1024/1280/1600 px, lectura ordinaria, navegación real de SO desde activo, puesto, historial y mapa, clic en equipo y selector global/particular. Contraste mínimo medido de textos: claro **4,71:1**, oscuro **6,85:1**. Instalación sintética: 15 compañías y principal con al menos 50 personas, activos, recursos, perfiles y puestos. + +No se repitieron indiscriminadamente los recorridos. **Su vigencia se limita a los componentes y comportamiento anteriores**: los cambios concurrentes de navegación, panel y diálogos requieren nuevas pruebas afectadas por su responsable. Los hashes prueban conservación de archivos, no equivalencia del código modificado. No hay evidencia nueva de accesibilidad/responsive de esas modificaciones. + +## 14. Gates y configuración mínima + +Todos los flags de entorno tienen predeterminado `false`. Se mapean en la composición de Resources; `administration=true` es una capacidad interna adicional sometida a autorización, no un flag público que sustituya los permisos. + +| Variable | Propósito y dependencia | Escritura / administración | Selectores | Lectura existente al cerrar | +| --- | --- | --- | --- | --- | +| `RESOURCE_GLOBAL_OS_CATALOG_ENABLED` | Catálogo SO; requiere scoped e integridad activa | Abre alta/edición/reactivación administrativa SO con permisos | Solo junto a OS_SOFTWARE | Conservada | +| `RESOURCE_GLOBAL_OS_SOFTWARE_ENABLED` | Asociación SO; requiere OS_CATALOG | Abre nuevas dependencias SO en instalaciones | Abre candidatos SO junto a OS_CATALOG | Conservada; retirada legítima permitida | +| `RESOURCE_GLOBAL_CATALOG_ENABLED` | Catálogo application | Alta/edición/reactivación application | Base de gates application | Conservada | +| `RESOURCE_GLOBAL_SOFTWARE_ENABLED` | Asociación application; requiere CATALOG | Nuevas dependencias application en software | No sustituye SOFTWARE_CANDIDATES | Conservada | +| `RESOURCE_GLOBAL_SOFTWARE_CANDIDATES_ENABLED` | Selección application; requiere CATALOG | No abre por sí solo la asociación | Candidatos application de software | Conservada | +| `RESOURCE_GLOBAL_PROFILE_ENABLED` | Aplicaciones en perfiles; requiere CATALOG | Nuevas dependencias application en perfil | Candidatos application para perfil | Conservada; nunca abre SO en perfiles | + +Las lecturas públicas/históricas permanecen; cerrar gates no borra referencias. Las escrituras no son todas equivalentes: se bloquean nuevas dependencias y la administración habilitada por catálogo, pero se mantiene la retirada legítima probada. Los flags no convierten un usuario ordinario en administrador. + +Mínimo para catálogo y asociación SO: **OS_CATALOG=true y OS_SOFTWARE=true**, lectores v3 y autorización administrativa. Los cuatro gates application no son dependencia de SO; conservar su configuración aprobada independiente. Para preparar solo administración SO se abre primero OS_CATALOG y se mantiene OS_SOFTWARE=false. No se propone cambiar valores efectivos sin autorización. + +## 15. Secuencia de despliegue propuesta + +1. Fijar una revisión candidata estable, resolver los bloqueos y obtener autorización del responsable de producto/operación. Identificar clientes v2 y plan de actualización. +2. Mantener cerradas nuevas escrituras/asociaciones SO. Respaldar el entorno mediante el procedimiento operativo existente; comprobar motor, versión y preflight de R2.1b con permisos de operación. +3. Si falta scoped, ejecutar la migración explícita con escrituras pausadas según R2.1b. No utilizar las fixtures destructivas ni el lanzador de pruebas sobre esa base. +4. Desplegar backend compatible con Resources 3 y gates SO cerrados. El arranque evoluciona la plantilla y valida integridad; comprobar campos/UUID/personalizaciones y ausencia de alteraciones históricas. No rellenar particulares con datos inventados. +5. Desplegar lectores web/DTO v3 y rutas de detalle. Comprobar productos existentes, historial, versiones instaladas y clientes anteriores, con cuentas de mínimo privilegio. +6. Autorizar OS_CATALOG=true y OS_SOFTWARE=false. Verificar administración, revisión, identidad, publicación y lectura ordinaria de productos aprobados. +7. Autorizar OS_SOFTWARE=true; comprobar capabilities/candidatos y asociación en compañía autorizada con licencia propia. Comprobar compañía ajena, perfil rechazado e inactivos. +8. Verificar activo, puesto, panel, historial y mapa; revisar errores y resultados correlacionados por petición. Confirmar lectura/retirada de instalaciones existentes. Registrar revisión y decisiones de autorización. + +Los pasos operativos son una propuesta, no acciones ejecutadas. El preflight del entorno destino sigue pendiente; la preparación aislada no lo sustituye. + +## 16. Rollback sin pérdida de referencias + +Cerrar primero `RESOURCE_GLOBAL_OS_SOFTWARE_ENABLED=false` y después `RESOURCE_GLOBAL_OS_CATALOG_ENABLED=false`, conservando backend/lectores Resources 3 y esquema evolucionado. Mantener los cuatro flags application según su autorización independiente. Reiniciar/desplegar configuración por el procedimiento de operación y verificar capabilities. + +No borrar productos, instalaciones, revisiones ni campos; no modificar particulares ni reescribir UUID. No restaurar un backend previo incapaz de interpretar SO global una vez existan referencias. Verificar lectura pública, colección v3, historial y retirada `removal_pending` → `removed`. F ensaya el caso más restrictivo: **los seis gates cerrados**, lectura/historial/retirada correctos y nueva alta rechazada. Las suites complementarias verifican bloqueo de nuevas asociaciones y conservación de las existentes. + +## 17. Criterios objetivos de GO y riesgos + +| Criterio | Estado | +| --- | --- | +| DB-SO-01–20, evolución doble, integridad referencial | Cumplido en MariaDB aislada | +| Concurrencia en ambos órdenes, identidad y rollback atómico | Cumplido en las intercalaciones probadas | +| Contratos v2/v3 e incompatibilidades explícitas | Cumplido en casos ensayados | +| Regresiones backend de aplicaciones/perfiles/licencias/otros | Cumplido | +| Seguridad sin apertura involuntaria | Cumplido en matriz ensayada | +| Caché acotada | Cumplido por prueba reejecutada | +| Gates y rollback reproducibles | Cumplido en aislado; operación destino pendiente | +| Regresión de SO actual del árbol candidato | **Bloqueado** por fallo del panel | +| Evidencia visual vigente de los cambios concurrentes | **No verificada** | +| Validación general del repositorio | **No satisfactoria**, fallos generales separados | +| Revisión candidata estable y autorización de activación | **Pendiente** | + +Riesgos residuales: identidad EAV protegida por policy/locks, no UNIQUE comercial; normalización conservadora no descubre sinónimos; particulares equivalentes seguirán coexistiendo; los clientes anteriores necesitan actualización cuando su contexto incorpora SO global; no se midió rendimiento de producción ni indisponibilidad de infraestructura real. Son límites explícitos, no capacidades implementadas de D08.2. + +## 18. Pendientes, responsables y reproducción + +| Pendiente | Responsable de resolver / autorizar | +| --- | --- | +| Corregir o actualizar justificadamente el contrato de render del panel; repetir su prueba | Responsable del cambio concurrente Companies/mapa | +| Validar con Playwright los recorridos modificados, teclado/foco, tamaños y estados; conservar nuevas capturas | Responsable de UI del cambio concurrente | +| Resolver error vendor y fallos generales o documentar aceptación explícita ajena al catálogo | Mantenedores del repositorio; usuario autoriza cualquier modificación vendor | +| Fijar revisión candidata y repetir comprobaciones afectadas tras integrar cambios | Responsable de integración | +| Preflight/backup del destino, política de clientes y autorización de gates | Operación y responsable de producto designados por el usuario | +| Emitir GO posterior y activar | Responsable autorizado; no realizado en este cierre | + +Comandos reproducibles desde WSL, Node 24 y PNPM fijado: + +```bash +pnpm test:global-operating-systems:closure +python3 scripts/resource-scope-test.py --operating-systems +python3 scripts/resource-scope-test.py --catalog +python3 scripts/resource-scope-test.py --software +python3 scripts/resource-scope-test.py --profiles +python3 scripts/resource-scope-test.py --coincidences +pnpm --filter @metis/resources test +pnpm --filter @metis/companies test +pnpm --filter @metis/assets test +pnpm --filter @metis/web test +pnpm --filter @metis/resources typecheck +pnpm --filter @metis/companies typecheck +pnpm --filter @metis/assets typecheck +pnpm --filter @metis/web typecheck +pnpm --filter @metis/server typecheck +pnpm exec biome check apps/server/src/global-operating-systems-closure.integration.test.ts apps/server/src/global-operating-systems-legacy.fixture.ts package.json +pnpm exec eslint apps/server/src/global-operating-systems-closure.integration.test.ts apps/server/src/global-operating-systems-legacy.fixture.ts +pnpm typecheck +pnpm lint +pnpm check +pnpm build +``` + +Las integraciones necesitan Docker y loopback. `pnpm test:global-operating-systems:closure` incluye las 50 regresiones HTTP/MariaDB y limpieza automática. El fallo inicial del cliente de prueba y las ejecuciones generales fallidas se reconocen arriba; los resultados satisfactorios corresponden a las repeticiones identificadas. No se presenta ninguna prueba de navegador anterior como nueva ni se declara producción preparada mientras persistan los bloqueos. + +## 19. Resolución dirigida del bloqueo del panel + +Intervención posterior del 25 de octubre de 2026 sobre el mismo HEAD `d2bf856c`, conservando los cambios concurrentes. Los apartados 1–18 registran el cierre inicial; los resultados siguientes corresponden a ejecuciones nuevas y sustituyen la clasificación provisional del fallo del panel. + +Se consultaron `rdx-solid` y su referencia de pruebas para separar fixture, contrato y comportamiento, y `ui-ux-pro-max` para la revisión visual. Su búsqueda dirigida de foco/teclado se concretó en apertura por Enter, navegación de menú, Tab dentro del diálogo, Escape, retorno e indicador de foco. Se respetaron DESIGN.md y el procedimiento Playwright; no se instaló ningún auditor, skill ni dependencia. No se necesitó rediseñar ni modificar primitivas shadcn. + +### Causa raíz demostrada + +**Clasificación: fixture incorrecta, no defecto funcional de resolución del SO.** El helper concurrente `software-installation-options.ts:26` filtra los recursos particulares mediante `item.companyId === companyId`. La fixture original de `software.test.tsx` cargaba en TanStack Query objetos sin `companyId`, especificación ni historial. Esa entrada no cumplía `ResourceSchema` (`common/inventory.ts:35–42`) y el filtro la excluía; `name()` devolvía `—`, por lo que fallaba `assert.ok(html.includes("Windows 11 Pro"))`. + +La prueba renderiza `SoftwareInstallationsPanel` mediante SSR con consultas precargadas y `staleTime=Infinity`: una instalación configurada del activo solicitado, otra de otro ordenador, versión `24H2`, Resource Windows y licencia particular. No había petición pendiente ni error remoto. No intervienen negociación HTTP, selector de SO o invalidación de caché en esa expectativa. + +Al comenzar esta intervención, el cambio concurrente ya había añadido `companyId` y el test aislado pasó **3/3**. Para comprobar causalidad se ejecutó una copia temporal del test de HEAD contra el consumidor actual: reapareció el fallo exacto de Windows en `:126`, con las otras dos pruebas correctas. Se eliminó únicamente esa copia temporal. El primer intento con un fichero oculto no tomó la transformación JSX esperada y produjo `React is not defined`; se corrigió el procedimiento antes de aceptar la reproducción. No se usó ese error de herramientas como evidencia de la regresión. + +La reproducción y el resultado corregido están conservados como `before-fixture.log` y `fixed-test.log` en las evidencias de esta intervención. + +### Corrección y alcance + +- `software.test.tsx`: conserva el arreglo concurrente y construye ahora ambos Resources particulares completos mediante `ResourceSchema.parse`, incluyendo compañía, valores, especificación e historial. El schema impedirá volver a omitir la pertenencia. Se mantienen todas las expectativas originales de nombres, versión, enlaces, licencia y separación por ordenador. +- `current-operating-systems.test.tsx`: añade render es/en del SO global configurado, activo/inactivo, enlace global y versión instalada, y confirma que la instalación retirada muestra el estado vacío correspondiente. +- `scripts/global-operating-systems-ui-audit.py`: amplía el recorrido MCP existente con consumidores, menús y diálogos del mapa en ambos temas/cinco resoluciones, teclado/foco, medición de contraste, guardado real de versión y propagación activo/puesto. +- Este informe y el enlace del registro de implementación comunican el dictamen actualizado. No se cambia código funcional, contratos, dominio, plantilla, migraciones, gates ni permisos. No se sobrescriben los cambios concurrentes del mapa. + +### Matriz REG-SO y regresiones + +| Caso | Evidencia dirigida | +| --- | --- | +| REG-SO-01 global Windows configurado | Nuevo render global es/en, selector y recorrido MCP desde activo/puesto/mapa | +| REG-SO-02 Windows particular | Test original del panel y OSUI-01/02/17; navegación particular real MCP | +| REG-SO-03 Windows y Ubuntu | OSUI-06/07: ambos visibles, orden determinista, aplicaciones excluidas | +| REG-SO-04 pendiente | OSUI-03/04/05/18: no acredita SO actual | +| REG-SO-05 retirado | OSUI-03/04/05/18 y nuevo render global retirado | +| REG-SO-06 sin SO | OSUI-03/04/05/18 y OSUI-16: «No registrado» / «Not recorded» | +| REG-SO-07 referencia no disponible | OSUI-10: mensaje explícito, nunca ausencia | +| REG-SO-08 error de lectura | OSUI-11: error previo/resolver y carga diferenciados; reintento visible | +| REG-SO-09 cambio de ordenador principal | OSUI-08/12 y pruebas de ficha: seleccionar el nuevo activo excluye SO del anterior y de otra compañía | +| REG-SO-10 modificar versión | OSUI-09 y guardado real `24H2` → `25H2` en diálogo del mapa; lectura actualizada en puesto y activo | +| REG-SO-11 global inactivo con instalación histórica | Nuevo render activo/inactivo y retirada; suite MariaDB DB-SO-11–18 | +| REG-SO-12 caché acotada | Prueba específica reejecutada dentro de Resources; aplicaciones/perfiles permanecen sin invalidar | + +La suite dirigida ejecuta `software.test.tsx`, `current-operating-systems.test.tsx`, `workstation-detail.test.tsx`, `workplace-map-layout.test.ts`, `workplace-node-actions.test.tsx` y `workspace-routes.test.ts`: **93/93**. El test originalmente fallido aislado con la fixture validada pasa **3/3**. Resources pasa **116/116**, incluido caché. Assets y Web pasan sus **29** y **3** ficheros respectivamente. + +Companies completo pasa **305 de 307** tests: únicamente fallan los dos tests previos de ayuda de compañía/persona de `companies-page.test.tsx`. El test de software ya no falla. Los cuatro typechecks dirigidos de Resources/Companies/Assets/Web y ambos builds son correctos. Biome y ESLint dirigidos pasan sobre **26 archivos** TS/TSX/JSON modificados de los consumidores. La sintaxis del script Python se comprueba mediante AST. + +### Integración, compatibilidad y fallos generales + +Se repitió `python3 scripts/resource-scope-test.py --operating-systems-closure --regressions`: **29/29 + 50/50**, exclusivamente en MariaDB desechable `metis_desk_test`. Incluye DB-SO-01–20, evolución doble, locks, atomicidad, versiones de contrato, aislamiento y rollback de gates; cero revisiones huérfanas. Las regresiones R2.3–R2.6 del cierre anterior siguen siendo antecedentes, no ejecuciones nuevas. No cambia su código backend y la repetición del cierre/HTTP-SQL confirma las fronteras afectadas. + +Se repitieron las comprobaciones generales: `pnpm typecheck` continúa fallando en el calendario vendor (`locale` y `exactOptionalPropertyTypes`); `pnpm lint` conserva 15 errores y `pnpm check` 170. No se modificaron esas fuentes ni se relajaron validaciones. Los fallos de textos de ayuda no afectan selección, pertenencia o navegación del SO; el error de tipado vendor no aparece en los typechecks dirigidos ni impide los builds/recorridos probados; los diagnósticos generales de lint/formato están fuera de los archivos dirigidos verificados. Se clasifican como deuda general **no bloqueante para el dictamen técnico del catálogo**, sin declarar CI global verde ni autorizar omitir los controles de una publicación. + +### Nueva evidencia Playwright MCP + +Ejecución final: `.artifacts/playwright/authenticated-6u28upls`, comando `python3 scripts/visual-audit.py --global-operating-systems --check`, salida cero y limpieza confirmada. Usa el servidor Docker stdio fijado en `.codex/config.toml`, Chromium 155.0.8059.12 y una instalación MariaDB desechable. Vite anuncia su puerto efímero y el navegador usa ese mismo origen. No se accede a una base real. + +Resultado: **35 comprobaciones, 69 capturas nuevas y 69 SHA-256 verificados**, conservados con el [informe nuevo](../../.artifacts/resources-global-operating-systems-unblock/playwright/report.json). No son las 27 capturas anteriores. La primera repetición del recorrido básico (`authenticated-w6qb_oez`) también pasó; otra ampliación (`authenticated-z63g8xvr`) pasó antes de incorporar las mediciones de contraste/foco al recorrido final. El informe final concentra todas las comprobaciones; no se suman como escenarios distintos las repeticiones. + +Se comprobaron listado/detalle, borrador, formulario/revisión y error de identidad, selectores mixtos, panel e historial, activo, puesto, mapa y enlaces global/particular. Los consumidores, menús, historial y editor de instalación se capturaron en **320, 390, 768, 1280 y 1600 px, claro y oscuro**; el listado incluye además 1024 px. Sin desbordamiento horizontal de página en los casos comprobados. La tabulación permanece en el diálogo; Escape cierra y devuelve foco al trigger; el menú admite Enter/flechas y muestra indicador de foco computado. Se inspeccionaron las capturas móviles de menú claro y editor oscuro, además de las verificaciones DOM. + +Contraste mínimo medido de texto de menú: **17,22:1 claro / 14,52:1 oscuro**, diez mediciones con foco visible. En el listado: **4,71:1 / 6,85:1**. Se mantienen etiquetas accesibles, mensajes de carga/error/reintento y formulario es/en. Las pruebas de fallo y carga del listado usan interceptación de transporte únicamente para esos estados; las operaciones de catálogo, consulta, guardado y navegación usan la API real. + +Se guardó `25H2` mediante el editor de instalación abierto desde el nodo SO global; se comprobó su lectura en el puesto y después en el activo y la navegación a la ficha particular coexistente. El menú/editor nuevo también se abrió en inglés. Volumen: 15 compañías; principal con 50 personas, perfiles y puestos, al menos 50 activos/recursos y 51 SO globales. No se ejecutó lector de pantalla real, zoom nativo ni una certificación WCAG completa; no se atribuyen esas pruebas. + +El [snapshot de fuentes](../../.artifacts/resources-global-operating-systems-unblock/source-snapshot.json) registra HEAD y SHA-256 de 1884 archivos de los módulos/consumidores y biblioteca propia. La comparación al finalizar no detectó cambios. El [manifiesto de la intervención](../../.artifacts/resources-global-operating-systems-unblock/manifest.json) registra fecha, comandos, resultados y hashes de evidencias. La revisión está identificada por HEAD **más** ese snapshot de trabajo; no se presenta HEAD solo como si incluyera los cambios sin commit. + +### Dictamen actualizado y límites operativos + +**GO técnico del catálogo global SO para el snapshot registrado.** Se levantan los dos bloqueos específicos: la prueba pasa por la corrección demostrada de su fixture y los consumidores concurrentes relevantes tienen evidencia visual nueva. Los contratos funcionales, typechecks/builds dirigidos, aislamiento, persistencia y regresiones requeridas son satisfactorios. No se ha encontrado un bloqueo propio del catálogo que comprometa integridad o seguridad en los escenarios ensayados. + +Permanecen los riesgos del apartado 17: unicidad comercial por policies/locks, convivencia de particulares, actualización necesaria de clientes incompatibles y ausencia de ensayo de infraestructura real/rendimiento de producción. La deuda general continúa abierta para sus mantenedores; puede impedir una publicación por la política CI del repositorio y requiere su tratamiento operativo, aunque no demuestra un defecto del catálogo validado. + +Los pendientes iniciales del panel y validación visual quedan cerrados para este snapshot. Integración debe fijar la revisión a publicar y repetir comprobaciones si cambia el código. Operación/producto deben autorizar el despliegue, comprobar el destino y decidir gates según apartados 14–16. **GO técnico, autorización de despliegue y activación efectiva son estados distintos: no se ha autorizado ni realizado aquí la activación de producción.** + +### Reproducción específica + +Desde `modules/companies`: + +```bash +TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test --test-isolation=none src/web/software-installations/shared/software.test.tsx +TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test --test-isolation=none src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workplace-node-actions.test.tsx src/web/workspace/shared/workspace-routes.test.ts +``` + +Desde la raíz: + +```bash +bash scripts/setup-playwright-wsl.sh +python3 scripts/visual-audit.py --global-operating-systems --check +pnpm test:global-operating-systems:closure +``` + +Los comandos de typecheck, Resources, Assets, Web y builds del apartado 18 continúan siendo aplicables. Los servidores HTTP de prueba requieren loopback permitido. Las fixtures anteriores se reproducen usando el test de HEAD en una copia temporal dentro del paquete, conservando la configuración TSX del comando aislado; no se restaura el archivo de trabajo. diff --git a/docs/architecture/implementacion-catalogo-global-sistemas-operativos.md b/docs/architecture/implementacion-catalogo-global-sistemas-operativos.md index 9500696f..acc6d34b 100644 --- a/docs/architecture/implementacion-catalogo-global-sistemas-operativos.md +++ b/docs/architecture/implementacion-catalogo-global-sistemas-operativos.md @@ -28,7 +28,7 @@ No se añadieron entidades, tablas, columnas o relaciones de instalación. La ev ## Validación y evidencias -Los resultados finales se recogen en el informe de validación adjunto a esta implementación. Se distinguen comprobaciones dirigidas correctas de los fallos generales ajenos al cambio; ninguna incidencia general se interpreta como una validación global correcta. +Los resultados posteriores se recogen en el [cierre técnico](cierre-tecnico-catalogo-global-sistemas-operativos.md). Conserva el NO-GO inicial y su resolución dirigida en el apartado 19: fixture corregida/validada, regresiones satisfactorias y nuevas evidencias Playwright permiten GO técnico para el snapshot registrado, sin activar producción. Se distinguen comprobaciones dirigidas correctas de los fallos generales ajenos al cambio; ninguna incidencia general se interpreta como una validación global correcta. La integración nueva usa 15 compañías y una principal con 50 personas, 50 activos, 50 puestos, 50 perfiles y al menos 50 recursos particulares, además de SO globales y licencias locales. Prueba identidad, borrador, edición no aplicable, revisión obsoleta, equivalentes concurrentes, scopes, CSRF, perfil rechazado, licencias ajenas, contrato v2/v3, versión instalada, desactivación, carrera de instalación y rollback de gates. diff --git a/docs/architecture/preflight-activacion-catalogo-global-sistemas-operativos.md b/docs/architecture/preflight-activacion-catalogo-global-sistemas-operativos.md new file mode 100644 index 00000000..db34db82 --- /dev/null +++ b/docs/architecture/preflight-activacion-catalogo-global-sistemas-operativos.md @@ -0,0 +1,238 @@ +# Preflight de activación — Catálogo global de sistemas operativos + +Fecha: **26 de octubre de 2026**, Europe/Madrid. Inspección iniciada el día 25. Ámbito: repositorio local y diagnósticos locales sin BD. **No se ha conectado a producción, leído `.env`, ejecutado migraciones, modificado datos reales, cambiado gates ni desplegado.** + +## 1. Resumen y dictamen + +**NO PREPARADO para desplegar el artefacto de producción evaluado.** Se conserva la correspondencia de fuentes con el GO técnico, pero el preflight descubre dos bloqueos de ejecución/configuración que ese GO no había ensayado: + +1. **B-01, demostrado:** `apps/server/dist/index.js` no supera `node --check`: `SyntaxError: Identifier 'createRequire' has already been declared`. El banner de `apps/server/tsup.config.ts` declara `createRequire`; el bundle vuelve a importarlo al incluir sharp 0.35.5. Dos builds forzados terminan con éxito y generan los mismos bytes, pero el servidor compilado es sintácticamente inválido. No puede desplegarse ese bundle aunque tsup devuelva cero. +2. **B-02, demostrado para la topología TLS → HTTP:** el entrypoint escucha HTTP en loopback; en producción la sesión exige cookie Secure, pero `createApp` no configura `trust proxy` y express-session no configura `proxy`. En un diagnóstico local con `X-Forwarded-Proto: https`, `request.secure=false` y no se emite cookie de sesión. No se ha comprobado la topología real del destino; no se presupone que exista una solución externa no versionada. + +El GO previo sigue siendo evidencia de los escenarios de fuentes/HTTP/MariaDB/UI ensayados, **no certifica el arranque de este artefacto de producción ni el entorno desconocido**. B-01 impide el despliegue con independencia de que el origen del defecto esté fuera del catálogo SO. No se corrigen estos bloqueos aquí: la misión prohíbe cambios funcionales salvo diagnósticos no invasivos. + +Se deja preparado el expediente y el runbook para una autorización futura. No procede solicitar autorización de activación mientras B-01 y la solución aplicable a B-02 sigan abiertos. Después harán falta verificaciones del destino. + +## 2. Fuentes y método + +Consultados: [cierre técnico y resolución del GO](cierre-tecnico-catalogo-global-sistemas-operativos.md#19-resolución-dirigida-del-bloqueo-del-panel), [auditoría](auditoria-catalogo-global-sistemas-operativos.md), [decisión SO](decision-catalogo-global-sistemas-operativos.md), [implementación](implementacion-catalogo-global-sistemas-operativos.md), documentación R2.0–R2.6 —en particular [despliegue](resources-global-scope/07-plan-despliegue.md), [persistencia R2.1b](resources-global-scope/12-r2-1b-persistencia.md), [software](resources-global-scope/15-r2-4-software-global.md), [perfiles](resources-global-scope/16-r2-5-configuraciones-globales.md), [coexistencia](resources-global-scope/17-r2-6-coexistencia-duplicados.md)—, [estado D08.2](resources-global-scope/19-d08-2-resolucion-ratificacion.md), [composición modular](../arquitectura/composicion-de-modulos.md), [puesta en marcha](../puesta-en-marcha.md) y [acceso](../usuarios-y-acceso.md). + +Se aplicó `rdx-solid`, incluida su referencia backend: contrato del artefacto, composición, seguridad y diferencias verificables. No se aplicaron criterios nuevos de diseño UI ni se instalaron dependencias. Las fuentes documentales históricas se contrastaron con los gates y endpoints actuales; sus flags propuestos no sustituyen los ya implementados. + +Estados: **VERIFICADO** = evidencia directa con el alcance indicado; **PENDIENTE DE VERIFICACIÓN** = falta evidencia del destino; **NO CUMPLE** = fallo observado; **NO APLICA** = capacidad ajena o deliberadamente inexistente. + +## 3. Snapshot y reproducción exacta — hito A + +| Requisito | Estado | Evidencia | +| --- | --- | --- | +| Base Git | VERIFICADO | `main`, `d2bf856c973419277f0b30f6437242cd82f7d720` | +| HEAD representa por sí solo el GO | NO CUMPLE | El GO incluye cambios sin commit, incluidos ficheros nuevos | +| Identificación del estado completo del GO | VERIFICADO | Coinciden los hashes de **1884 fuentes** y **40 archivos de trabajo** con sus manifiestos | +| Reconstrucción | VERIFICADO | Base Git más overlay de esos 40 archivos restaurados en `/tmp`; se verifican todas las huellas y el lockfile; directorio retirado | +| Cambios posteriores funcionales en el snapshot registrado | VERIFICADO: ninguno | Comparación de hashes, no solo `git diff HEAD` | +| Node / PNPM | VERIFICADO | 24.20.0 / 11.25.0; `engines >=24 <25`, `packageManager=pnpm@11.25.0` | +| Lockfile | VERIFICADO | `pnpm-lock.yaml` sin diferencias frente a HEAD; SHA-256 `bcd468ab1f127fffeb7f37ef3bdb5f2c5e85d40c192f3bc4a7cae5b2209b7c17` | +| Dependencias del candidato | VERIFICADO en manifests/lock | Express 4.22.1, Sequelize 6.37.8, MariaDB driver 3.5.4, sharp 0.35.5, React 19.2.5, Vite 8.3.0 | +| Instalación limpia de dependencias para el destino | PENDIENTE DE VERIFICACIÓN | No se ejecuta install ni se cambia `node_modules`; los builds usan la instalación local existente | +| Builds | VERIFICADO como compilación | Dos ejecuciones `pnpm exec turbo run build --force`, sin caché; **12 artefactos idénticos byte a byte** | +| Correspondencia del frontend con MCP | VERIFICADO | `apps/web/dist` coincide byte a byte con `web-build` conservado de `authenticated-6u28upls` | +| Ejecución sintáctica del servidor compilado | NO CUMPLE | B-01, `node --check` devuelve 1 | + +Evidencias en [preflight](../../.artifacts/resources-global-operating-systems-preflight/): `traceability.json`, `go-source-overlay.tar`, `build-first.json`, `build-second.json` y `nondeployable-build.tar`. El último conserva exclusivamente los archivos dist diagnosticados: **no es un paquete desplegable**, no incorpora dependencias runtime ni una configuración aprobada del destino. Los sourcemaps requieren política de publicación; no deben exponerse sin decisión del operador. + +Para reproducir las fuentes: checkout separado de la base indicada, aplicar `go-source-overlay.tar` en su raíz y comprobar los hashes de `source-snapshot.json` y `workingSources` del [manifiesto del GO](../../.artifacts/resources-global-operating-systems-unblock/manifest.json). El overlay tiene solo rutas relativas y fuentes aprobadas, sin secretos. El ensayo de reconstrucción restaura los archivos requeridos desde los objetos Git y aplica el overlay; **no equivale a un build en un checkout limpio con dependencias recién instaladas**. + +Además del snapshot hay evidencias regeneradas `.artifacts/` y un `.pyc` del trabajo concurrente, sin efecto funcional. Este preflight añade el informe, SQL no ejecutado y evidencia local. No modifica las 1884 fuentes/40 archivos del GO. No se sobrescribe trabajo concurrente. + +## 4. Inventario del entorno de destino + +**No se ha identificado un destino de producción mediante manifests operativos autorizados.** `compose.yaml` y la guía de puesta en marcha describen desarrollo WSL y una BD local; no prueban infraestructura desplegada. + +| Componente | Confirmado en repositorio | Estado del destino | +| --- | --- | --- | +| Backend | ESM Node 24, `apps/server/dist/index.js`, dependencias runtime externas; HTTP `127.0.0.1:PORT` | PENDIENTE DE VERIFICACIÓN de host/supervisor/instancias; B-01 NO CUMPLE | +| Frontend | Estáticos `apps/web/dist`; API compilada no los sirve | PENDIENTE DE VERIFICACIÓN de hosting, caché y fallback SPA | +| MariaDB | Compose declara `mariadb:11.8`, volumen persistente y puerto de loopback; tests usaron 11.8.9 | PENDIENTE DE VERIFICACIÓN de motor/patch/esquema/capacidad; no consultar compose efectivo | +| Reverse proxy/TLS | No se localizó manifest de proxy, TLS o despliegue productivo | PENDIENTE DE VERIFICACIÓN; B-02 para terminación TLS y HTTP al backend | +| Sesiones | express-session, `SequelizeSessionStore`; cookie `metis.sid`, HttpOnly, SameSite Strict, 8 horas, Secure en producción | PENDIENTE DE VERIFICACIÓN de acceso real, rotación de secreto y comportamiento entre instancias | +| Autenticación/administración | Identity y guard `requireGlobalResourceManager`; administrador inicial, sin RBAC ficticio de compañía | PENDIENTE DE VERIFICACIÓN de responsables y cuentas autorizadas; no extraer datos personales | +| Auxiliares | Procesamiento de imágenes con sharp, persistencia de sesión, limpieza de recursos al apagar | PENDIENTE DE VERIFICACIÓN de binarios/arquitectura/permisos runtime | +| Despliegue/backup/restore | Procedimientos R2 conceptuales; la guía declara despliegue, HTTPS y backups pendientes | PENDIENTE DE VERIFICACIÓN de procedimiento, ventana, recuperación y prueba de restauración | + +`pnpm --filter @metis/server start` carga `.env`; no se ejecutó. `pnpm db:up` prepara entorno y arranca BD; tampoco se ejecutó. Arrancar el backend **no es una inspección de solo lectura**: compone módulos, ejecuta migraciones existentes y seed. No usarlo como prueba inocua contra el destino. + +## 5. Configuración real y gates + +Fuente: `apps/server/src/config/database.ts`, `config/env-schema.ts`, `identity-runtime.ts`, `modules/resources/src/api/module.ts` y `resource-global-gates.ts`. Todos los valores efectivos del destino son **PENDIENTE DE VERIFICACIÓN**; no se deducen de defaults ni de pruebas aisladas. + +| Gate | Default en código | Propósito y dependencias | Propuesta / riesgo | +| --- | --- | --- | --- | +| `RESOURCE_GLOBAL_OS_CATALOG_ENABLED` | false | Alta/edición/reactivación SO administrativas; scoped, integridad y autorización | Etapa 0 false; etapa 1 true. Abre publicación, no solo borradores | +| `RESOURCE_GLOBAL_OS_SOFTWARE_ENABLED` | false | Selección **y** nueva asociación SO, requiere OS_CATALOG | False hasta operación autorizada; true abre ambas capacidades juntas | +| `RESOURCE_GLOBAL_CATALOG_ENABLED` | false | Administración application; requisito de gates application | Conservar valor previamente aprobado; no es dependencia de SO | +| `RESOURCE_GLOBAL_SOFTWARE_ENABLED` | false | Nueva asociación application, requiere CATALOG | Conservar autorización independiente | +| `RESOURCE_GLOBAL_SOFTWARE_CANDIDATES_ENABLED` | false | Candidatos application, requiere CATALOG | No concede asociación por sí solo; no controla candidatos SO | +| `RESOURCE_GLOBAL_PROFILE_ENABLED` | false | Application en perfiles, requiere CATALOG | Conservar autorización; jamás abre SO en perfil | +| `administration` interno | true | Capacidad adicional sometida al guard de Identity | NO APLICA como variable de entorno; no sustituye permisos | + +Otros parámetros reales: `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASSWORD`, `SESSION_SECRET` (mínimo 32 caracteres), `APP_ORIGIN`, `NODE_ENV` y `PORT` (default 3001, rango 1–65535). Registrar únicamente presencia, validación y coherencia; no valores secretos ni cadena de conexión. `APP_ORIGIN` debe corresponder al origen externo permitido; `NODE_ENV=production` exige Secure, sujeto a B-02. `API_PROXY_TARGET` pertenece al proxy **de desarrollo Vite** y no configura un proxy de producción. + +No hay variable de disponibilidad que sustituya el estado real de Resources ni flag que aplique scope. El arranque inspecciona legacy/scoped/parcial; con catálogo global habilitado exige scoped completo y CHECK/FK activos a nivel sesión/global. No inventar variables `TRUST_PROXY`, versiones contractuales o gates por compañía: no están implementadas en este snapshot. + +## 6. Precondiciones MariaDB — hito C + +| Requisito | Esperado por código/migración | Estado real del destino | +| --- | --- | --- | +| Motor y versión | MariaDB; referencia ensayada 11.8.9; InnoDB y driver Sequelize v6 | PENDIENTE DE VERIFICACIÓN | +| `resources.scope` | VARCHAR(7), ascii/ascii_bin, NOT NULL, DEFAULT company | PENDIENTE DE VERIFICACIÓN | +| `resources.companyId` | CHAR(36), utf8mb4_bin, nullable exclusivamente con scope global coherente | PENDIENTE DE VERIFICACIÓN | +| CHECK | `resource_scope_owner` y `resource_global_no_integration`, cláusulas exactas del inspector; sesión/global activos | PENDIENTE DE VERIFICACIÓN | +| FKs e índices | PK/owners/plantillas/especificaciones/revisiones; FKs operativas preservadas y activas | PENDIENTE DE VERIFICACIÓN | +| Especificaciones y EAV | `resource_characteristics`, `resource_specification_fields`, `resource_specification_field_choices`, secciones, revisiones y especificaciones históricas relacionadas | PENDIENTE DE VERIFICACIÓN | +| Instalaciones | `software_installations`, FKs a compañía/activo/producto/licencia, `currentKey` único; propietario no nullable | PENDIENTE DE VERIFICACIÓN | +| Historial | `software_installation_revisions`, FK a instalación, único `(configurationId, position)`; Resource único `(resourceId, position)` | PENDIENTE DE VERIFICACIÓN | +| Scope aplicado | R2.1b explícita: `scope`, `ownerCheck`, `integrationCheck`, `nullableOwner`; no confiar en un fichero como prueba de aplicación | PENDIENTE DE VERIFICACIÓN | +| Datos preexistentes | Cero owners/referencias inválidas; particulares incompletos permitidos; inactivos utilizados conservados | PENDIENTE DE VERIFICACIÓN | +| Integridad aislada previa | 29/29 + 50/50 y cero revisiones huérfanas en el GO | VERIFICADO como antecedente aislado, no como esquema del destino | + +El inspector `resource-scope-schema.ts` compara tipos, nulabilidad, default, charset y texto normalizado de los CHECK. Legacy sin scope puede leerse con gates cerrados; no habilitar globales. Un esquema parcial debe detener el servicio y reanudarse mediante el procedimiento R2.1b autorizado. No ejecutar el CLI como diagnóstico: exige `--apply --writes-paused` y realiza DDL. Ninguna migración se ejecutó en este preflight. + +Se preparó [diagnostico-mariadb.sql](preflight-so/diagnostico-mariadb.sql), **solo SELECT y no ejecutado**. Fase 1 consulta versión/metadatos; el operador debe confirmar tablas y scoped antes de la fase 2. Fase 2 devuelve recuentos de plantilla/bindings, identidad incompleta, SO global/particular, instalaciones/revisiones por scope/estado, inactivos usados y referencias inválidas. Las instalaciones por compañía se expresan como histograma de volúmenes, sin UUID/nombres. No extraer valores comerciales, inventarios o datos personales al informe. + +Ejecutar únicamente tras autorización específica de lectura, con credencial de mínimo privilegio, límites de tiempo/carga y procedimiento aprobado del operador. No se incluye una contraseña en comandos ni se presume un nombre de base destino. Las consultas se contrastaron estáticamente con el DDL guardado del GO, no con MariaDB real en esta intervención. Recuentos de identidad son diagnósticos orientativos: no sustituyen toda la policy semántica ni la revisión de duplicados. + +## 7. Plantilla SO y posibles instalaciones legacy + +La stock `template:os` conserva UUID y campos existentes. El seed comprueba ausencia de `field:os_edition_state` para decidir la evolución; añade bindings opcionales de `os_family`, `os_product_version` y `os_edition_state` y conserva los originales/personalizaciones. `provider` y `software_edition` ya existían. Estados: `known`, `not_applicable`, `unknown`; publicación requiere identidad válida. No rellenar particulares antiguos con valores ficticios. + +El marcador de campo existente **no demuestra por sí solo** que todos los bindings del destino sean correctos: una edición manual o evolución incompleta necesita diagnóstico, no borrado del marcador. El arranque siembra catálogo aun con gates SO cerrados; estos gates no son un interruptor del seed o de todas las migraciones. Evolución doble y conservación fueron probadas en aislamiento, no sobre el destino. Copias de plantillas SO no adquieren elegibilidad global. No hay DDL específico nuevo de SO ni autorización para D08.2. + +## 8. Contratos y lectores — hito D + +Cabecera real: **`x-metis-resources-contract`**, valores soportados explícitos `2` y `3`. No existe flag de entorno para negociar la versión. El navegador actual solicita contrato 3 en los consumidores mixtos. + +| Contexto | Cliente sin versión | v2 | v3 | +| --- | --- | --- | --- | +| Respuesta compatible exclusivamente particular | Compatibilidad local ensayada | Compatible | Compatible | +| Contexto que exige referencias application global | 409 de actualización cuando corresponde | Compatible por propósito | Compatible por propósito | +| Colección/referencia de software que requiere SO global | 409 `RESOURCE_CLIENT_UPGRADE_REQUIRED`, sin recortar filas | Igual 409 | DTO SO válido | +| SO global como `ApplicationConfiguration` | Rechazado por propósito | Rechazado | Rechazado | +| Versión explícita no soportada, como 4 | NO APLICA | NO APLICA | HTTP 400 para petición con esa versión | + +SO público: `kind=os`, `scope=global`, `companyId=null`, identidad y enlace SO; application conserva su DTO/tipo, listado y enlaces. Los particulares conservan pertenencia. Capabilities v2 conserva cuatro claves anteriores; v3 incorpora capacidad SO. Autorización/CSRF/compañía se verifican en servidor, no por esa cabecera. + +Los clientes realmente desplegados son **PENDIENTE DE VERIFICACIÓN**: inventariar navegadores con JS cacheado, API consumers, tareas y todas las instancias backend. Actualización coordinada y recarga/control de caché antes de nuevas asociaciones SO. No mezclar backend incapaz de leer SO global con referencias ya persistidas. + +Cerrar gates de nuevas dependencias conserva lectura de catálogo, UUID, instalaciones/historial y navegación a inactivos; permite notas/retirada legítima según estado y contrato. El gate cerrado no abre edición administrativa del producto. Desactivación administrativa de seguridad y replay idempotente tienen sus reglas propias; no se afirma que todos los POST queden bloqueados. Esta garantía procede de las pruebas previas; debe verificarse también en el destino autorizado. + +## 9. Secuencia progresiva propuesta + +**Bloqueada por B-01/B-02 y verificaciones del destino. No se ejecuta.** Todos los cambios de configuración requieren autorización explícita futura. + +| Etapa | Configuración SO | Operación propuesta y previos | Smoke / avance | Abortar y reversión | +| --- | --- | --- | --- | --- | +| 0 preparación | OS_CATALOG=false, OS_SOFTWARE=false | Corregir/validar artefacto y TLS/sesiones; fijar release, dependencias, backup/restore, scope; desplegar lectores v3 y frontend coordinados solo tras autorización | Salud, login persistente, lectura local/global existente, tipos/UUID/historial; cero inconsistencias | No abrir flags; detener rollout si falla arranque, sesión o integridad; mantener lectores compatibles | +| 1 administración | OS_CATALOG=true, OS_SOFTWARE=false | Administrador autorizado puede crear/editar/revisar/publicar productos aprobados; revisar evolución y elegibilidad antes | Alta/revisión autorizadas; lectura ordinaria; nuevos candidatos/asociaciones SO aún cerrados | Cerrar OS_CATALOG; conservar productos/historial; desactivar producto incorrecto con permisos | +| 2 selección y 3 operación | OS_CATALOG=true, OS_SOFTWARE=true | Habilitación conjunta de candidatos y asociación; mismos checks que etapa 1 más clientes v3 y activo/compañía autorizados | Canario autorizado: selección, instalación, versión, activo/puesto, historia y negativos de licencia/perfil | Cerrar OS_SOFTWARE y después OS_CATALOG; comprobar lectura/retirada; no borrar filas | + +**No hay separación técnica entre selección SO y asociación SO.** No usar SOFTWARE_CANDIDATES de aplicaciones para fingirla. Tampoco hay gate por compañía: un canario limitado a una compañía es un procedimiento operativo, no aislamiento por flag. Acordar quién puede escribir durante esa ventana y cómo se limita el alcance; si no puede limitarse, no anunciar un piloto restringido. + +Orden obligatorio: persistencia preparada → backend con lectores v3 → frontend/consumidores compatibles → administración → nuevas asociaciones → verificación. La evolución se ejecuta durante el arranque y puede escribir con flags cerrados, por lo que ese arranque requiere ventana/autorización, no solo permiso de lectura. Mantener los otros cuatro gates según su autorización propia; no modificarlos como efecto secundario de SO. + +## 10. Smoke tests operativos preparados + +**No ejecutados sobre destino.** Usar sesión real sin copiar cookies/tokens a logs, y registrar código HTTP/requestId/resultados, sin contenido sensible. GET puede tocar la sesión; «lectura» significa sin cambio de negocio, no promesa de cero escrituras técnicas en el servidor. + +| Tipo | Comprobación y ruta real | Resultado esperado | +| --- | --- | --- | +| Lectura | Login y persistencia con cuenta autorizada a través del origen HTTPS | Cookie Secure/HttpOnly y sesión mantenida; B-02 resuelto | +| Lectura | `GET /api/resource-global-operating-systems` y `/api/resource-global-applications` | 200 autenticado, tipos separados, sin datos administrativos expuestos | +| Lectura | `GET /api/resource-global-operating-systems/:id` | UUID/SO activo o inactivo legible, destino correcto | +| Lectura | `GET /api/resource-application-candidates/:companyId/capabilities`, contrato 3 | Capabilities acordes con etapa; no equivale a permiso administrativo | +| Lectura | `GET /api/resource-application-candidates/:companyId?purpose=software-installation`, contrato 3 | Solo candidatos activos/elegibles; SO global aparece únicamente en etapa operativa | +| Lectura, aunque use POST | `POST /api/resource-application-references/:companyId/resolve`, cuerpo `{ "purpose": "software-installation", "ids": ["UUID aprobado"] }`, contrato 3 | Referencia SO resuelta por propósito; petición de resolución sin mutación de negocio | +| Lectura | `GET /api/software-installations/:companyId`, contrato 3; ficha activo/puesto e historial desde UI | Instalaciones/versiones/estado/historia existentes completos; rutas global/particular correctas | +| Lectura | Repetir contexto con SO global usando v2/sin cabecera | 409 explícito; no respuesta truncada | +| Escritura, autorización separada | Instalar producto aprobado en **activo de pruebas ya existente y autorizado**, desde diálogo normal | Instalación propia; versión en activo/puesto; historial correcto | +| Escritura negativa, autorización separada | Intentar SO en perfil de aplicaciones | Rechazo, sin configuración persistida | +| Escritura negativa, autorización separada | Intentar licencia de otra compañía en instalación | Rechazo, asociación previa intacta; permiso de prueba no supone acceso libre a esa compañía | +| Escritura, autorización separada | Cambio de versión y retirada válida de instalación usada/inactiva | Misma identidad de producto; nuevas revisiones; lectura preservada | + +No crear activos ficticios ni productos de prueba en producción durante el preflight. Las pruebas negativas también requieren permiso y verificación de ausencia de efectos. Si no hay un activo y datos autorizados, el operador debe proponer canario en staging; no inventarlos en la base real. + +## 11. Runbook de rollback y recuperación — hito F + +Regla común: detener nuevas dependencias cerrando **OS_SOFTWARE=false**, luego nuevas altas/ediciones/reactivaciones con **OS_CATALOG=false**, mantener lectores Resources 3 y los cuatro gates application según autorización independiente. Aplicar configuración a todas las instancias y reiniciar mediante su supervisor aprobado. Configuración operativa/supervisor no están verificados. No ejecutar este plan ahora. + +| Incidencia | Detección / respuesta propuesta | Límite y recuperación | +| --- | --- | --- | +| Catálogo SO | Errores de alta/revisión/listado correlacionados; cerrar ambos flags | Conservar lectura e historial; reparar causa y validar antes de reabrir | +| Selector | Candidatos/tipos/etiquetas incorrectos; cerrar OS_SOFTWARE | No hay gate SO solo de selección; comparar capacidades y referencias reales | +| Frontend incompatible | Enlaces/estado o JS antiguo; suspender nuevas asociaciones y distribuir frontend compatible | Mantener backend v3; no servir UI que oculte instalaciones existentes | +| Contrato Resources | 409 de actualización o payload incompatible; detener consumidores antiguos y coordinar versión | No borrar referencias ni rebajar backend; reabrir tras probar clientes v3 | +| Evolución de plantilla | Error de arranque/plantilla/bindings; detener rollout y escritores | Cerrar flags no evita seed al arrancar; no prometer recuperación solo reiniciando. Investigar y autorizar reparación/restore integral consistente | +| Asociación | Rechazos/filas inconsistentes; cerrar OS_SOFTWARE y verificar constraints/referencias | No editar SQL a mano ni reasignar licencia; corregir mediante operación autorizada con historial | +| Producto comercial incorrecto | Desactivar producto para impedir nuevas asociaciones; conservar UUID y uso previo | Identidad publicada fija; otro producto necesita otro UUID. No convertir/reasignar instalaciones ni fusionar particulares | +| Producto inactivo usado | Leer referencia/historia y `needsReview`; decidir continuidad/retirada | Inactivo no significa ausente; retirada legítima sigue permitida. Reactivación solo tras revisión/autorización | +| B-01/B-02 | No publicar el bundle fallido ni abrir flags; resolver en intervención específica | Repetir parse/arranque aislado del compilado y login HTTPS end-to-end antes de replantear preparación | + +Conservar Resource, SoftwareInstallation, UUID, licencias, especificaciones e historial. Prohibidos borrado como rollback, fusión de particulares, D08.2 automático o backend incapaz de leer SO global ya referenciados. Un restore de BD requiere autorización, backup/restauración ensayados, corte consistente y análisis de cambios posteriores; no se propone downgrade destructivo del esquema. + +Después de una incidencia: metadatos y diagnósticos agregados de la fase C; cero referencias inválidas/huérfanas; comparar con línea base del operador; leer casos existentes activos/inactivos/históricos; probar retirada si hay autorización; verificar sesiones/contratos en todas las instancias. Reabrir solo tras causa corregida, evidencias actuales y nueva autorización. + +**Probado previamente en aislado:** cierre de seis flags conserva lectura/historia/retirada y bloquea nuevas altas; carreras/rollback transaccional ensayados. **No probado operativamente:** supervisor, proxy, restauración del destino ni ninguno de los ocho escenarios como simulacro productivo completo. Este runbook es verificable, no un rollback productivo ya ensayado. + +## 12. Deuda global y aceptación + +| Hallazgo / propietario funcional | Estado comprobado y efecto | Clasificación | +| --- | --- | --- | +| Bundle inválido B-01 / mantenedor de build servidor | Dos compilaciones y `node --check` fallido; colisión banner/sharp | **Bloqueante real**, no ejecutable | +| Sesión Secure B-02 / backend y operación/proxy | HTTP local sin cookie bajo HTTPS reenviado; destino desconocido | **Bloqueante** para topología TLS→HTTP sin solución validada | +| Calendar vendor / mantenedor de dependencia | `pnpm typecheck` vuelve a fallar en `calendar.tsx:165` por `locale` opcional; vendor intacto | No causa B-01; deuda de tipos. Bloquea pipeline si exige verde; no aceptar exención implícita | +| Dos assertions Companies / mantenedor de Companies | Antecedente del GO: ayuda compañía/persona, 305/307; fuentes sin diferencias | No comprometieron catálogo/contratos en escenarios previos; no se reejecuta suite extensa sin cambios. Aceptación CI pendiente | +| Lint / propietarios de fuentes indicadas en log | Nueva ejecución: **15 errores, 1 warning, 5 infos** | Deuda fuera del cambio; clasificar/aceptar explícitamente para release, nunca tratar como CI verde | +| Formato/imports / mantenedores y autores de evidencias | Nueva ejecución: **173 errores, 1 warning, 5 infos** | Incluye copias JSON de evidencias SQL del desbloqueo, posteriores al check previo de 170; no son código runtime. No reformatear evidencia sellada sin actualizar huellas | +| Chunk web >500 kB / frontend | Advertencia en ambos builds, sin fallo de compilación | Riesgo de rendimiento, no prueba de fallo funcional; presupuesto del destino pendiente | +| Runtime/artefacto completo / operación | Dependencias nativas/externalizadas, hosting y lanzamiento no ensayados como release | PENDIENTE DE VERIFICACIÓN; necesario después de B-01 | + +Se distinguen fallos antiguos de diagnósticos nuevos. La antigüedad no excusa un artefacto que no arranca: B-01 es bloqueante aunque no se determine aquí cuándo apareció. No se modifican bundler, sharp, vendor, tests de Companies ni áreas ajenas para conseguir verde. + +## 13. Evidencias y comprobaciones de esta intervención + +Conservadas bajo [evidencias de preflight](../../.artifacts/resources-global-operating-systems-preflight/), con [manifiesto](../../.artifacts/resources-global-operating-systems-preflight/manifest.json): hashes de fuentes/overlay/artefactos, logs de build, parse, sesión proxy y calidad general. El diagnóstico de sesión usa el `createApp` real y express-session instalado, secreto aleatorio efímero y store en memoria para **ese experimento local**, sin BD ni cuentas reales. No certifica el store SQL ni login completo: aísla el mecanismo de emisión de cookie. + +Comandos ejecutados: `pwd`, `git status --short`, `git rev-parse HEAD`, `git branch --show-current`, versiones Node/PNPM, comparación de hashes, reconstrucción en directorio temporal, `pnpm build`, dos `pnpm exec turbo run build --force`, `node --check apps/server/dist/index.js`, diagnóstico local proxy, `pnpm typecheck`, `pnpm lint`, `pnpm check` y detalle Biome. Los builds devuelven 0; el parse devuelve 1; tipos/lint/check devuelven error. No se ejecutan el servidor compilado ni scripts `start` contra base configurada. + +Reproducción no invasiva desde la raíz, sin cargar `.env` ni abrir BD: + +```bash +pnpm exec turbo run build --force +node --check apps/server/dist/index.js +node --import tsx .artifacts/resources-global-operating-systems-preflight/proxy-session-diagnostic.mjs +``` + +El segundo comando debe reproducir B-01 y devolver 1 en este snapshot. El tercero abre y cierra un HTTP efímero de loopback; el resultado esperado del defecto es `trustProxy=false`, `secure=false`, `sessionCookieIssued=false`, `databaseUsed=false`. El diagnóstico conservado se formateó y volvió a ejecutar con salida cero; esa salida cero significa diagnóstico completado, **no sesión productiva correcta**. + +No se repiten MariaDB, unitarias extensas ni Playwright: cero diferencias funcionales frente al GO; se verifican sus hashes/manifiestos y se reutilizan como antecedentes. Los 29/29 + 50/50 y las 35 comprobaciones/69 capturas pertenecen al desbloqueo anterior. Los dos builds nuevos se justifican por la identificación/reproducibilidad de artefactos, y el parse/cookie por riesgos de ejecución productiva no cubiertos antes. + +## 14. Riesgos residuales y condiciones de autorización + +Además de B-01/B-02: desconocimiento del destino, despliegue mixto de lectores, clientes antiguos, gates globales sin canario por compañía, evolución que escribe al arrancar, backup/restore no ensayado del destino, dependencia de policies/locks para identidad EAV, particulares equivalentes persistentes y falta de medición de rendimiento productivo. No hay unicidad SQL comercial multicampo ni D08.2 implementado. + +| Hito | Estado final | +| --- | --- | +| A trazabilidad del candidato | **VERIFICADO** con base + overlay + hashes; fijar release aún es tarea de integración | +| B entorno operativo | **PENDIENTE DE VERIFICACIÓN**; no se dispone de manifest de destino autorizado | +| C persistencia | Requisitos **VERIFICADOS** en código; aplicación/datos destino **PENDIENTE DE VERIFICACIÓN** | +| D contratos/orden | **VERIFICADO** en snapshot y antecedentes; clientes destino **PENDIENTE DE VERIFICACIÓN** | +| E etapas | **VERIFICADO** como propuesta ajustada a gates; selección/asociación SO inseparables | +| F rollback | **VERIFICADO** como runbook preparado; simulacro del destino **PENDIENTE DE VERIFICACIÓN** | +| Artefacto servidor | **NO CUMPLE**, B-01 | +| Sesión de producción TLS→HTTP | **NO CUMPLE** en diagnóstico, B-02; topología destino pendiente | +| Adopción/D08.2 o globalidad de licencias | **NO APLICA**, fuera de alcance | + +Responsables requeridos: mantenedor del build para B-01; backend y operación para TLS/sesiones; integración para commit/release inmutable y dependencias; DBA/operación para autorización de lecturas, esquema, backup/restauración y ventana; producto/propietario autorizado para productos, canario y gates; mantenedores de CI para deuda/excepciones expresas. + +Condiciones antes de autorizar: artefacto compilado válido y arranque aislado comprobado; sesiones Secure a través de la topología aprobada; identidad de release congelada; destino identificado; inventario de clientes; metadata/datos verificados con autorización; backup/restauración aprobados; smoke y responsables acordados; tratamiento explícito de CI no verde. No cambiar flags como sustituto de cumplir estas condiciones. + +**Dictamen final: NO PREPARADO**, referido al snapshot reproducido y al artefacto productivo generado localmente. El entorno real sigue pendiente. El informe prepara las decisiones y acciones necesarias; no solicita, concede ni ejecuta autorización de despliegue o activación. diff --git a/docs/architecture/preflight-so/diagnostico-mariadb.sql b/docs/architecture/preflight-so/diagnostico-mariadb.sql new file mode 100644 index 00000000..86734978 --- /dev/null +++ b/docs/architecture/preflight-so/diagnostico-mariadb.sql @@ -0,0 +1,161 @@ +-- Diagnóstico preparado, NO ejecutado contra ningún destino en este preflight. +-- Solo SELECT. Ejecutar únicamente con autorización de lectura, credenciales de +-- mínimo privilegio y timeout impuesto por el cliente/operador, sin exponerlas. +-- Fase 1: detenerse si faltan tablas/columnas. No ejecutar la fase 2 en legacy/parcial. + +SELECT VERSION() AS version, + @@session.foreign_key_checks AS session_fk, + @@global.foreign_key_checks AS global_fk, + @@session.check_constraint_checks AS session_checks, + @@global.check_constraint_checks AS global_checks; + +SELECT TABLE_NAME, TABLE_TYPE, ENGINE +FROM information_schema.TABLES +WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME IN ('resources', 'resource_definitions', 'resource_template_fields', + 'resource_characteristics', 'resource_specification_fields', + 'resource_specification_field_choices', 'resource_specification_sections', 'resource_revisions', + 'resource_revision_characteristics', 'resource_revision_specifications', + 'resource_revision_specification_fields', 'resource_revision_specification_choices', + 'software_installations', 'software_installation_revisions') +ORDER BY TABLE_NAME; + +SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, + CHARACTER_SET_NAME, COLLATION_NAME +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME IN ('resources', 'software_installations', 'software_installation_revisions') +ORDER BY TABLE_NAME, ORDINAL_POSITION; + +SELECT TABLE_NAME, CONSTRAINT_NAME, CHECK_CLAUSE +FROM information_schema.CHECK_CONSTRAINTS +WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = 'resources' +ORDER BY CONSTRAINT_NAME; + +SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, ORDINAL_POSITION, + REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME +FROM information_schema.KEY_COLUMN_USAGE +WHERE TABLE_SCHEMA = DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL + AND TABLE_NAME IN ('resources', 'resource_revisions', 'resource_characteristics', + 'resource_specification_fields', 'resource_revision_specifications', + 'resource_revision_specification_fields', 'software_installations', + 'software_installation_revisions') +ORDER BY TABLE_NAME, CONSTRAINT_NAME, ORDINAL_POSITION; + +SELECT TABLE_NAME, INDEX_NAME, NON_UNIQUE, SEQ_IN_INDEX, COLUMN_NAME +FROM information_schema.STATISTICS +WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME IN ('resources', 'resource_revisions', 'software_installations', + 'software_installation_revisions') +ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX; + +-- Fase 2: solo tras confirmar esquema scoped completo y tablas anteriores. +-- Sin nombres de clientes/productos, actores, UUID ni valores de identidad en la salida. + +SELECT COUNT(*) AS stock_os_templates +FROM resource_definitions +WHERE stockKey = 'template:os' AND kind = 'template' AND companyId IS NULL; + +SELECT field.stockKey, binding.required, binding.position, COUNT(*) AS bindings +FROM resource_definitions template +JOIN resource_template_fields binding ON binding.templateId = template.id +JOIN resource_definitions field ON field.id = binding.fieldId +WHERE template.stockKey = 'template:os' AND template.companyId IS NULL +GROUP BY field.stockKey, binding.required, binding.position +ORDER BY binding.position; + +SELECT choice.value, choice.position, COUNT(*) AS definitions +FROM resource_definitions field +JOIN resource_field_choices choice ON choice.fieldId = field.id +WHERE field.stockKey = 'field:os_edition_state' AND field.companyId IS NULL +GROUP BY choice.value, choice.position +ORDER BY choice.position; + +SELECT r.scope, r.active, + CASE WHEN template.stockKey = 'template:os' THEN 'stock' ELSE 'custom' END AS template_kind, + COUNT(*) AS os_resources +FROM resources r +JOIN resource_definitions template ON template.id = r.templateId +WHERE template.usage = 'os' +GROUP BY r.scope, r.active, template_kind; + +SELECT COUNT(*) AS invalid_scope_owner +FROM resources +WHERE scope IS NULL + OR NOT ((scope = 'company' AND CHAR_LENGTH(scope) = 7 AND companyId IS NOT NULL) + OR (scope = 'global' AND CHAR_LENGTH(scope) = 6 AND companyId IS NULL)); + +WITH identity_values AS ( + SELECT r.id, r.scope, r.active, + MAX(CASE WHEN f.stockKey = 'field:provider' THEN NULLIF(TRIM(c.textValue), '') END) AS provider, + MAX(CASE WHEN f.stockKey = 'field:os_family' THEN NULLIF(TRIM(c.textValue), '') END) AS family, + MAX(CASE WHEN f.stockKey = 'field:os_product_version' THEN NULLIF(TRIM(c.textValue), '') END) AS product_version, + MAX(CASE WHEN f.stockKey = 'field:os_edition_state' THEN c.textValue END) AS edition_state, + MAX(CASE WHEN f.stockKey = 'field:software_edition' THEN NULLIF(TRIM(c.textValue), '') END) AS edition + FROM resources r + JOIN resource_definitions template ON template.id = r.templateId AND template.usage = 'os' + LEFT JOIN resource_characteristics c ON c.resourceId = r.id + LEFT JOIN resource_definitions f ON f.id = c.fieldId + GROUP BY r.id, r.scope, r.active +) +SELECT scope, active, COUNT(*) AS resources, + SUM(provider IS NULL OR family IS NULL OR product_version IS NULL + OR edition_state IS NULL OR edition_state NOT IN ('known', 'not_applicable') + OR (edition_state = 'known' AND edition IS NULL) + OR (edition_state = 'not_applicable' AND edition IS NOT NULL)) AS incomplete_or_inconsistent +FROM identity_values +GROUP BY scope, active; + +-- Un particular incompleto o un borrador desconocido no es por sí mismo un error. +-- Esta consulta no implementa toda la policy semántica ni la revisión de duplicados. + +SELECT r.scope, r.active, s.state, COUNT(*) AS installations +FROM software_installations s +JOIN resources r ON r.id = s.resourceId +JOIN resource_definitions template ON template.id = r.templateId AND template.usage = 'os' +GROUP BY r.scope, r.active, s.state; + +SELECT r.scope, history.state, COUNT(*) AS revisions +FROM software_installation_revisions history +JOIN resources r ON r.id = history.resourceId +JOIN resource_definitions template ON template.id = r.templateId AND template.usage = 'os' +GROUP BY r.scope, history.state; + +SELECT installations_per_company, COUNT(*) AS companies +FROM ( + SELECT companyId, COUNT(*) AS installations_per_company + FROM software_installations + GROUP BY companyId +) volumes +GROUP BY installations_per_company +ORDER BY installations_per_company; + +SELECT COUNT(*) AS invalid_installation_references +FROM software_installations s +LEFT JOIN assets a ON a.id = s.assetId +LEFT JOIN resources r ON r.id = s.resourceId +LEFT JOIN resources license ON license.id = s.licenseResourceId +WHERE a.id IS NULL OR a.companyId <> s.companyId OR r.id IS NULL + OR (r.scope = 'company' AND r.companyId <> s.companyId) + OR (s.licenseResourceId IS NOT NULL AND + (license.id IS NULL OR license.scope <> 'company' OR license.companyId <> s.companyId)); + +SELECT COUNT(*) AS orphan_resource_revisions +FROM resource_revisions h LEFT JOIN resources r ON r.id = h.resourceId +WHERE r.id IS NULL; + +SELECT COUNT(*) AS orphan_installation_revisions +FROM software_installation_revisions h +LEFT JOIN software_installations s ON s.id = h.configurationId +WHERE s.id IS NULL; + +SELECT COUNT(*) AS invalid_historical_references +FROM software_installation_revisions h +JOIN software_installations s ON s.id = h.configurationId +LEFT JOIN assets a ON a.id = h.assetId +LEFT JOIN resources r ON r.id = h.resourceId +LEFT JOIN resources license ON license.id = h.licenseResourceId +WHERE a.id IS NULL OR a.companyId <> s.companyId OR r.id IS NULL + OR (r.scope = 'company' AND r.companyId <> s.companyId) + OR (h.licenseResourceId IS NOT NULL AND + (license.id IS NULL OR license.scope <> 'company' OR license.companyId <> s.companyId)); diff --git a/docs/auditorias/workplace-node-actions/01-inventario-entidades-acciones.md b/docs/auditorias/workplace-node-actions/01-inventario-entidades-acciones.md new file mode 100644 index 00000000..24e00dc2 --- /dev/null +++ b/docs/auditorias/workplace-node-actions/01-inventario-entidades-acciones.md @@ -0,0 +1,53 @@ +# WD04.5 — Inventario de entidades y acciones + +Auditoría previa a la implementación. Se contrastaron el modelo real, consumidores web, controladores, servicios HTTP y reglas del servidor. La existencia de una ruta por sí sola no autoriza una entrada del menú. + +## Nodos e identidades + +| Nodo | Entidad representada | Identificador | Componente | Navegación actual | +| --- | --- | --- | --- | --- | +| Principal | Asset miembro señalado por Workstation.computerAssetId | React Flow `asset:`; Asset.id distinto del ID de Workstation | WorkplaceEquipmentNode / WorkplaceEquipmentCard | `/companies/:companyId/assets/:assetId` | +| Asociado | Asset en Workstation.assetIds; no prueba una conexión física | `asset:` | Mismos componentes, principal=false | Ficha de Asset si está resuelto en la compañía | +| Software | SoftwareInstallation del principal validado; Resource es una referencia diferente | `software:`; values.resourceId identifica producto, values.licenseResourceId licencia | WorkplaceSoftwareNode / WorkplaceSoftwareCard | softwareReferenceHref: ficha particular, aplicación global o SO global | +| Añadir activo | Acción de vista, sin entidad | `presentation:add-asset` | WorkplaceAddAssetNode | WorkstationAssetAddDialog | +| Rótulo de software | Presentación, sin entidad | `presentation:software-heading` | WorkplaceSoftwareHeadingNode | Ninguna | +| Leyenda | Presentación fuera del canvas | No tiene nodo persistido | WorkplaceMapLegend | Ninguna | + +Fuentes: `workplace-map-model.ts`, `workstation-equipment.ts`, `current-operating-systems.ts`, `use-workplace-map-model.ts`, `workplace-map-layout.ts`, bajo las operaciones actuales de Companies. La misma tarjeta se usa en React Flow y WorkplaceCompactMap. + +## Asset + +- **Consultar:** AssetDetailPage, ruta de entidad real y contexto de compañía. `useAssetDetailPageController` lee inventario/catálogo; no cambia el activo. +- **Editar:** AssetEditorDialog → AssetForm → useAssetFormController → saveAsset → `POST /api/assets/:companyId/:id/update`. Plantilla fija al editar, schema existente, validación de referencias/estado y revisiones del agregado. Puede editar un activo retirado según sus restricciones actuales. Un activo asignado no puede retirarse vulnerando ASSET_ASSIGNED. Invalida `inventoryKeys.company(companyId)` y las conexiones remotas de esa compañía. +- **Historial:** pestaña de AssetDetailContent → AssetHistory. Reutiliza TimeLine, revisiones, relaciones, infraestructura y soporte. Lecturas `/api/assets/:companyId`, `/api/asset-infrastructure/:companyId` y `/api/asset-support/:companyId/:assetId`. Se admite un contenedor modal propio de Assets sobre este contenido, sin duplicar el historial. +- **Estado técnico:** campo del formulario real de edición, no operación rápida independiente confirmada. +- **Composición:** pertenece a Workstation. WorkstationEditorDialog → WorkstationForm → saveWorkstation → `POST /api/assets/:companyId/workstations/:id/update`, con If-Match de revisión. Retirar miembros y elegir principal se realizan allí, conservando validaciones, reservas, historial y recuperación de conflictos. +- **Borrado físico:** AssetDetailPage → DeleteAssetDialog, confirmación y repositorio; no equivale a retirar del puesto. Se excluye del mapa por su contexto de miembros actuales y por no ampliar operaciones destructivas. + +## Principal y soporte + +La ficha ya abre WorkstationSoftwareDialog → SoftwareInstallationsPanel para el principal. No se habilita «Gestionar software» en un periférico por su categoría o nombre. + +AssetSupportOverview abre AssetSupportManagementDialog → AssetSupport, también disponible en AssetDetailContent. La gestión corresponde al Asset, no al contexto remoto de una persona. `retired` restringe el alta/edición conforme al consumidor existente; las confirmaciones de soporte se conservan dentro de ese panel. Lectura y escrituras de `/api/asset-support/:companyId/:assetId`; caché `supportKeys.asset(companyId,assetId)`. + +Cambiar o retirar el principal se conduce al editor del puesto. Las instalaciones y perfiles siguen unidos a su activo; no se trasladan ni se eliminan desde el mapa. + +## SoftwareInstallation y Resource + +SoftwareInstallationsPanel utiliza SoftwareInstallationEditorDialog → SoftwareInstallationForm → softwareApi.save → `POST /api/software-installations/:companyId/:id/update`, con contrato Resources `3`, CSRF, origen y sesión. La pareja activo/producto es inmutable. El formulario permite únicamente las transiciones de SOFTWARE_STATE_TRANSITIONS, versión, notas y licencia disponible. Los terminales `removed` y `never_configured` no se editan y no aparecen en el mapa ordinario. La disponibilidad del activo/recurso y la unicidad de la instalación abierta se validan en mapSoftwareInput y el repositorio transaccional. + +SoftwareHistoryDialog muestra las revisiones de esa instalación. No existe una ficha independiente de instalación confirmada: no se inventa una ruta para ella. El borrado existente elimina instalación y revisiones mediante DeleteRecordDialog; se excluye de esta incorporación contextual. No elimina Resource. + +SoftwareInstallationForm invalida la consulta de instalaciones de la compañía, referencias de software, capacidades y candidatos afectados. Las opciones de producto y licencia se obtienen del mismo inventario/catálogo y referencias que el panel existente; la adaptación común extraída es softwareInstallationOptions, compartida por el panel y el acceso contextual. + +El producto se consulta con softwareReferenceHref, a partir de su referencia validada: `/companies/:companyId/resources/:id`, `/catalogs/global-applications/:id` o el href público de SO global. Las licencias son recursos particulares y solo se ofrece su ficha cuando está resuelta en la compañía. + +## Autenticación, autorización, estado y gates + +Assets, Workstation y SoftwareInstallation usan el guard público requireAuthenticated conectado en createIdentityRuntime; no existe RBAC granular de edición de estas tres operaciones. Se verificó el guard, no se infirió autorización del simple hecho de que exista sesión. El servidor sigue comprobando compañía, referencias y dominio. El frontend oculta operaciones mutables ante consulta denegada/error o contexto inconsistente; no sustituye al guard. + +La administración global utiliza **otro guard**, requireGlobalResourceManager, y autorización de Identity. No se reutiliza ni se deriva de poder editar instalaciones. Ningún menú del mapa modifica productos globales, plantillas, actividad o catálogo. + +Los gates de selección/asociación de Resources no equivalen a permiso administrativo. useResourceApplicationReferences resuelve usos existentes, incluidos inactivos, sin depender del gate de altas. Editar una instalación existente no crea una asociación nueva ni cambia su producto. Si falla la resolución se conserva la instalación y su historial; se omite navegación a un producto desconocido. El servidor conserva los gates y la compatibilidad del contrato `3`, incluidos SO globales. No se modifican estos contratos. + +Fuentes de seguridad: `identity-runtime.ts`, `require-authenticated.ts`, `software-installation.routes.ts`, `software-installation-input.mapper.ts`, `resource-reference-reader.ts`, `resource-application.routes.ts`, `use-resource-application-references.ts` y los contratos de Resources Global Scope y del catálogo global de SO. diff --git a/docs/auditorias/workplace-node-actions/02-matriz-acciones.md b/docs/auditorias/workplace-node-actions/02-matriz-acciones.md new file mode 100644 index 00000000..83ddc968 --- /dev/null +++ b/docs/auditorias/workplace-node-actions/02-matriz-acciones.md @@ -0,0 +1,25 @@ +# WD04.5 — Matriz de acciones auditadas + +| Acción | Nodo | Clasificación / contexto | Operación existente / UI reutilizable | Evidencia | +| --- | --- | --- | --- | --- | +| Abrir ficha del activo | Principal / asociado | CONFIRMADA, miembro resuelto en la compañía | BrowserLink → AssetDetailPage | workplace-map-model; AssetDetailPage | +| Editar activo | Principal / asociado | CONDICIONADA, inventario y catálogo disponibles, mismo guard de la ficha | AssetEditorDialog / AssetForm / saveAsset | AssetDetailPage; useAssetFormController | +| Gestionar equipamiento del puesto | Principal / asociado | CONDICIONADA, contexto Workstation válido y edición disponible | WorkstationEditorDialog existente | WorkstationDetailPage; WorkstationForm; If-Match | +| Gestionar software del principal | Principal | CONDICIONADA, principal actual confirmado, lectura de software disponible | WorkstationSoftwareDialog / SoftwareInstallationsPanel | WorkstationSoftware | +| Gestionar soporte del activo | Principal / asociado | CONDICIONADA, Asset actual; retirado conserva restricciones del panel | AssetSupportManagementDialog | AssetSupportOverview; AssetDetailContent | +| Historial del activo | Principal / asociado | CONFIRMADA con Asset resuelto | AssetHistory, contenido existente en modal de Assets | AssetDetailContent; AssetHistory | +| Cambiar estado técnico rápidamente | Equipo | NO DISPONIBLE como operación independiente | Solo campo de AssetEditorDialog | AssetIdentityFields; AssetForm | +| Retirar miembro / cambiar principal directamente | Equipo | EXCLUIDA como mutación rápida; se conduce a gestión | Editor de Workstation, no nuevo servicio | WorkstationFormController; WorkstationValues | +| Eliminar activo | Equipo | EXCLUIDA: borrado físico distinto de desvinculación, con referencias del puesto | DeleteAssetDialog conserva su acceso anterior en ficha | AssetDetailPage; DeleteAssetDialog | +| Gestionar software de periférico | Asociado | EXCLUIDA del contexto principal del mapa | La ficha del activo ofrece su gestión propia | WorkstationSoftware; modelo del mapa | +| Abrir ficha del producto de software | Instalación | CONDICIONADA a referencia resuelta; etiqueta aplicación/SO/producto según dato confirmado | softwareReferenceHref y BrowserLink | useAssetSoftware; softwareReferenceHref | +| Editar instalación | Instalación | CONDICIONADA, registro actual del principal; estado no terminal; datos de edición disponibles | SoftwareInstallationEditorDialog / SoftwareInstallationForm | SoftwareInstallationsPanel; SOFTWARE_STATE_TRANSITIONS | +| Historial de instalación | Instalación | CONFIRMADA, registro válido del principal, incluso producto sin resolver | SoftwareHistoryDialog | SoftwareInstallationsPanel | +| Abrir licencia | Instalación | CONDICIONADA, licencia particular resuelta en esa compañía | BrowserLink a ficha de Resource | SoftwareInstallationsPanel; SoftwareHistoryDialog | +| Abrir ficha independiente de instalación | Instalación | NO DISPONIBLE, no existe ruta de detalle confirmada | Se ofrece historial/edición reales | Rutas actuales de workspace y software | +| Retirar / finalizar / eliminar instalación como acción directa | Instalación | EXCLUIDA: no incorporar operaciones destructivas rápidas | Transiciones en editor; DeleteRecordDialog en gestión completa | SoftwareInstallationForm; SoftwareInstallationsPanel | +| Editar/desactivar producto global | Instalación / Resource global | EXCLUIDA: administración distinta de la instalación | Ficha global y guard administrativo propios, fuera del menú | Identity.requireGlobalResourceManager; rutas globales | +| Editar Resource particular desde la instalación | Instalación | EXCLUIDA: entidad diferente, se conserva navegación a su ficha | ResourceEditor desde su flujo propio | Fichas Resources | +| Menú de añadir / rótulo / leyenda | Presentación | NO DISPONIBLE, no representa entidad | Acción de añadir actual y presentación | workplace-map-layout; WorkplaceAddAssetNode | + +No se añaden elementos de borrado ni variantes destructivas al menú contextual. La gestión completa conserva sus confirmaciones existentes. Los errores parciales no convierten una referencia desconocida en un Asset ni en un producto global administrable. Los gates cerrados no conceden ni revocan permisos ficticios: se respetan las lecturas existentes y las validaciones del servidor. diff --git a/docs/auditorias/workplace-node-actions/03-contrato-ui.md b/docs/auditorias/workplace-node-actions/03-contrato-ui.md new file mode 100644 index 00000000..56f77347 --- /dev/null +++ b/docs/auditorias/workplace-node-actions/03-contrato-ui.md @@ -0,0 +1,25 @@ +# WD04.5 — Contrato de interfaz + +Auditoría y matriz completadas antes de implementar los menús. + +## Presentación e interacción + +WorkplaceNodeActionsMenu reutiliza DropdownMenu de shadcn/Base UI, elipsis Tabler y Button ghost. El trigger tiene nombre «Acciones de {{name}}», área compacta y foco visible. Se sitúa en la esquina superior derecha, como hermano del enlace principal; este conserva su hit area. Se reserva espacio dentro de la tarjeta sin cambiar las dimensiones de Dagre. No se anidan botones dentro de enlaces. + +Nodos de entidad reciben descriptores tipados de acciones de consulta o apertura de operaciones, preparados fuera del nodo. ID de presentación, UUID de Asset/instalación y UUID de Resource no se confunden. El adaptador decide las acciones conforme a la matriz; los nodos no hacen HTTP ni contienen reglas de dominio. + +Orden: navegación, edición, gestión específica, historial. Se agrupan con separadores solo entre grupos no vacíos. No hay submenús ni elementos ficticios para completar opciones. Se omiten los menús vacíos y los de presentación; una operación temporalmente no disponible puede mostrarse disabled con explicación traducida. + +## Canvas y compacto + +El trigger usa `nodrag nopan nowheel pointer-events-auto`; el portal de DropdownMenu evita clipping por el canvas y utiliza la pila de Base UI, sin capas globales manuales. Enter/Espacio, flechas, Escape y colisiones corresponden a la primitiva instalada. No se activan drag, pan, zoom, borrado o conexiones. Abrir un menú o diálogo no modifica nodos ni sus posiciones, por lo que no remonta la cámara. + +Las mismas tarjetas y el mismo catálogo de acciones se usan en WorkplaceCompactMap. Los títulos largos conservan un enlace accesible completo y espacio para el trigger. Los nuevos textos utilizan assets/companies es/en según el consumidor. + +## Diálogos, contexto y retorno + +La composición superior abre los diálogos reales. AssetEditorDialog, AssetSupportManagementDialog, WorkstationEditorDialog, WorkstationSoftwareDialog, SoftwareInstallationEditorDialog y SoftwareHistoryDialog conservan sus formularios, mutaciones, restricciones y confirmaciones. AssetHistory se presenta en un contenedor modal de Assets sin duplicar su contenido. + +Una selección de menú captura el trigger, la identidad del nodo, el puesto y el principal. Al cerrar se restaura el trigger conectado, o el trigger actual del mismo nodo tras refetch, o un control estable del mapa. Cambiar de puesto/principal cierra el contexto anterior. Si desaparece la entidad se conserva una salida accesible sin operar sobre un registro diferente. + +Las mutaciones siguen las invalidaciones existentes. La composición usa If-Match y su recuperación de conflictos; no se inventan precondiciones nuevas para Asset ni SoftwareInstallation. Su límite real de concurrencia consta en el informe WD04.5. Los errores de carga/guardado permanecen en el contexto y no ocultan el mapa completo. diff --git a/docs/auditorias/workplace-node-actions/04-trazabilidad.md b/docs/auditorias/workplace-node-actions/04-trazabilidad.md new file mode 100644 index 00000000..02574277 --- /dev/null +++ b/docs/auditorias/workplace-node-actions/04-trazabilidad.md @@ -0,0 +1,30 @@ +# WD04.5 — Trazabilidad de acciones + +| Acción de menú | Entidad / servicio real | Composición existente | Efecto y caché | +| --- | --- | --- | --- | +| Abrir activo | Asset | BrowserLink → AssetDetailPage | Navegación, no escribe | +| Editar activo | Asset / saveAsset | AssetEditorDialog → AssetForm | Revisión de Asset; inventario de compañía y conexiones remotas | +| Historial del activo | Asset y eventos relacionados | AssetHistory en modal de Assets | Solo lecturas de historial, infraestructura y soporte | +| Gestionar equipamiento | Workstation / saveWorkstation | Editor actual de Workstation | Composición/principal e historial, If-Match; inventario de compañía | +| Gestionar software | SoftwareInstallation | WorkstationSoftwareDialog → SoftwareInstallationsPanel | Operaciones y confirmaciones del panel actual | +| Gestionar soporte | AssetSupport | AssetSupportManagementDialog → AssetSupport | Operaciones y caché por activo existentes | +| Editar instalación | SoftwareInstallation / softwareApi.save | SoftwareInstallationEditorDialog → SoftwareInstallationForm | Instalaciones, referencias/candidatos/capacidades de software de esa compañía | +| Historial de instalación | SoftwareInstallation | SoftwareHistoryDialog | Solo lectura del historial recibido | +| Abrir producto | Resource particular/global o SO global | softwareReferenceHref + BrowserLink | Navegación a ficha pública según referencia; no administra catálogo | +| Abrir licencia | Resource particular | BrowserLink a ficha de la licencia resuelta | Navegación, no consume ni modifica licencia | + +El adaptador workplaceNodeActions y la composición WorkplaceNodeActionDialogs implementan esta matriz, sin nuevos endpoints, esquemas, migraciones ni permisos. Los nodos decorativos no tienen entradas. Las decisiones excluidas constan en 02-matriz-acciones.md. Los resultados ejecutados, capturas y límites se incorporan al apartado WD04.5 de docs/mapa-visual-del-puesto.md. + + +## Implementación y evidencias + +- `helpers/workplace-node-actions.ts`: descriptores discriminados de navegación/comando, orden, contexto de compañía, pertenencia, principal, estados y disponibilidad. Resuelve UUID reales; no analiza nombres para atribuir capacidades. +- `controllers/use-workplace-node-actions.ts`: incorpora descriptores a los datos de presentación y mantiene operación, contexto y retorno de foco efímeros. No modifica el modelo persistido ni el layout. +- `ui/workplace-node-actions-menu.tsx`: DropdownMenu/Tabler con portal y teclado, común a tarjetas de React Flow y compacto. +- `WorkplaceNodeActionDialogs`, `WorkplaceAssetActionDialog`, `WorkplaceSoftwareActionDialog` y `WorkplaceInstallationEditorDialog`: composición de diálogos existentes. `WorkplaceNodeUnavailableDialog` conserva una salida cuando desaparece el registro. +- `AssetHistoryDialog`: contenedor modal del historial existente del módulo Assets, exportado junto con sus editores y soporte. +- `useSoftwareInstallationEditorData` y `softwareInstallationOptions`: lecturas con las claves actuales y adaptación compartida con la gestión completa. El editor reutilizado añade únicamente estado de carga/error y retorno de foco opcionales. + +La auditoría se completó antes de estos componentes. No se añadieron operaciones de servidor, dependencias, contratos HTTP ni permisos. Las mutaciones conservan invalidaciones y confirmaciones anteriores. La comprobación de revisión de Workstation se reutiliza; Asset y SoftwareInstallation no disponen del mismo protocolo optimista y no se les atribuye una garantía nueva. + +Resultados técnicos y del navegador, capturas y límites: [informe WD04.5](../../mapa-visual-del-puesto.md#wd045--acciones-contextuales-en-nodos). Los fallos globales previos se consignan allí por separado. diff --git a/docs/componentes-de-interfaz.md b/docs/componentes-de-interfaz.md index 72a62985..c44ed9cb 100644 --- a/docs/componentes-de-interfaz.md +++ b/docs/componentes-de-interfaz.md @@ -1695,3 +1695,25 @@ UUID, tipo y scope. Lo consumen el panel de instalaciones, historial, puesto, ma selector del SO actual. Los resúmenes distinguen origen Global/Compañía; la creación rápida sigue siendo particular. Véanse la [decisión SO](architecture/decision-catalogo-global-sistemas-operativos.md) y el [registro de implementación](architecture/implementacion-catalogo-global-sistemas-operativos.md). + + +## Acciones contextuales del mapa de puesto (WD04.5) + +`WorkplaceNodeActionsMenu` compone el DropdownMenu instalado con un trigger Tabler +«Acciones de {{name}}», descriptores de enlace/comando y grupos ordenados. Es propio +del mapa; no constituye un sistema global de operaciones. La composición superior +resuelve entidades y disponibilidad y abre los diálogos de los módulos responsables. +Los custom nodes reciben solo presentación y callbacks, sin acceso HTTP. + +Las tarjetas del canvas y de `WorkplaceCompactMap` comparten el menú. El trigger es +hermano del enlace, lleva `nodrag nopan nowheel` y usa el portal de Base UI para evitar +recorte. Los diálogos aceptan `finalFocus` opcional: trigger conectado, nuevo trigger +del mismo nodo tras refetch o control estable del mapa. Los cambios de compañía, +puesto o principal descartan el contexto anterior. + +`AssetHistoryDialog` aporta únicamente la envoltura modal de `AssetHistory`. +`SoftwareInstallationEditorDialog` conserva su formulario y admite estado de lectura, +reintento y foco opcionales para el acceso contextual. Las opciones del panel y del +editor contextual se calculan con `softwareInstallationOptions`, sin duplicar reglas +de negocio. Véanse la [matriz auditada](auditorias/workplace-node-actions/02-matriz-acciones.md) +y el [informe](mapa-visual-del-puesto.md#wd045--acciones-contextuales-en-nodos). diff --git a/docs/mapa-visual-del-puesto.md b/docs/mapa-visual-del-puesto.md index 3e06aab0..a87575b7 100644 --- a/docs/mapa-visual-del-puesto.md +++ b/docs/mapa-visual-del-puesto.md @@ -342,3 +342,163 @@ Para repetir: iniciar `python3 scripts/visual-audit.py`, mantener abierto su ent Limitaciones: no existe un rol de solo lectura de Workstation con el que ejecutar S09 como usuario autenticado; se cubren la prop de autorización y el rechazo anónimo real. El formulario de alta conserva sus validaciones y errores existentes, pero esta auditoría no fuerza un fallo HTTP de creación. Las comprobaciones globales no están verdes por los fallos previos indicados. Se observaron avisos de claves duplicadas en flujos anteriores del inventario durante la preparación/regresión; ya aparecían al preparar la sesión, antes del flujo WD04.4, y no se amplía el alcance para corregirlos. El preparador de esta ejecución se cerró al finalizar: instalación temporal retirada y ausencia de `session.json` verificada; las capturas se conservan. + + +## WD04.5 — Acciones contextuales en nodos + +### Auditoría y alcance + +Antes de implementar se contrastaron las entidades, rutas, formularios, controladores, +guards y servicios reales. La auditoría queda en +[01 — inventario](auditorias/workplace-node-actions/01-inventario-entidades-acciones.md), +[02 — matriz](auditorias/workplace-node-actions/02-matriz-acciones.md), +[03 — contrato UI](auditorias/workplace-node-actions/03-contrato-ui.md) y +[04 — trazabilidad](auditorias/workplace-node-actions/04-trazabilidad.md). + +Los nodos `asset:` representan miembros reales de Workstation; el principal +es exclusivamente su `computerAssetId`. Los nodos `software:` representan +SoftwareInstallation del principal, con un UUID de producto Resource distinto y una +posible licencia particular. Añadir activo, rótulo y leyenda siguen siendo presentación +sin menú ni entidad persistida. + +| Nodo | Acciones incorporadas | +| --- | --- | +| Principal | Abrir ficha, editar activo, gestionar equipamiento del puesto, gestionar software del principal, gestionar soporte e historial del activo. | +| Activo asociado | Las anteriores excepto gestión de software del principal. | +| Instalación | Abrir producto resuelto (aplicación/SO/producto), abrir licencia particular resuelta, editar instalación no terminal e historial de instalación. | + +La edición de Asset modifica sus valores. La composición y el cambio de principal +siguen dentro del editor completo de Workstation. El editor de instalación mantiene +la pareja activo/producto inmutable y las transiciones admitidas. El enlace del producto +utiliza la referencia real para distinguir ficha particular, aplicación global y SO global. + +Se excluyen los atajos de borrado físico, retirar miembros, cambiar principal, cambiar +estado y finalizar instalaciones. La gestión completa conserva sus confirmaciones y +restricciones existentes. No hay edición de productos ni administración de catálogos +globales desde estos menús. No se infieren capacidades por nombre o categoría del activo. + +### Composición y reutilización + +| Pieza | Responsabilidad | +| --- | --- | +| `workplaceNodeActions` | Adaptador puro con acciones tipadas, identidad, pertenencia a compañía, estado y disponibilidad. | +| `useWorkplaceNodeActions` | Datos de presentación, selección efímera, contexto y foco; separado del modelo y del layout. | +| `WorkplaceNodeActionsMenu` | DropdownMenu shadcn/Base UI, Button ghost, elipsis Tabler, traducciones es/en, grupos, explicación disabled y teclado. | +| `WorkplaceNodeActionDialogs` y wrappers de activo/software | Componer editores, soporte, historial y gestión existentes, sin duplicar formularios ni mutaciones. | +| `AssetHistoryDialog` | Envoltura modal del contenido AssetHistory existente. | +| `useSoftwareInstallationEditorData` / `softwareInstallationOptions` | Consultas con las claves actuales y opciones compartidas con SoftwareInstallationsPanel. | +| `WorkplaceNodeUnavailableDialog` | Salida accesible si desaparece el registro seleccionado. | + +Se reutilizan AssetEditorDialog, AssetForm, AssetSupportManagementDialog, +WorkstationEditorDialog, WorkstationSoftwareDialog, SoftwareInstallationEditorDialog, +SoftwareInstallationForm y SoftwareHistoryDialog. Los diálogos añaden únicamente +props opcionales de foco o de lectura/reintento donde se necesitan; los consumidores +anteriores mantienen su comportamiento. No se introducen dependencias, APIs, esquemas, +migraciones ni permisos. Los nodos no contienen HTTP ni lógica de fetch. + +### Autorización, datos y errores + +Assets, composición e instalaciones utilizan actualmente `requireAuthenticated`, +validación de compañía y reglas del servidor. No hay permiso granular de edición ni +rol de lectura específico de Workstation. `canEdit=false` se cubre en el adaptador; +no se atribuye a un rol inexistente. La administración global conserva su guard distinto. +La sesión ordinaria de navegador no tiene privilegios de administración global. + +Las lecturas de referencias en uso permiten consultar productos globales/particulares +inactivos aunque los gates de nuevas asociaciones estén cerrados. Eso no concede +administración del producto. Ante producto desconocido se omite su enlace y se conserva +el historial de instalación. Los datos necesarios no disponibles deshabilitan la edición +con motivo traducido. Las cargas/errores del editor contextual se presentan dentro del +diálogo con reintento; un error parcial no oculta el mapa de equipamiento. + +Se mantienen las mutaciones e invalidaciones acotadas anteriores. Un guardado de Asset +actualiza inventario/conexiones remotas; una instalación actualiza sus consultas y +referencias de software. No se modifica optimistamente la composición. Workstation +conserva If-Match, aviso de conflicto y revisión explícita antes del reintento. Asset y +SoftwareInstallation **no tienen ese protocolo de revisión optimista**: WD04.5 conserva +su contrato y no promete prevenir sobrescrituras concurrentes en esas entidades. + +### React Flow, compacto y accesibilidad + +Las tarjetas compartidas incorporan el botón como hermano del enlace principal, con +espacio reservado y sin alterar nombres, estados o badge Principal. React Flow conserva +Dagre, aristas y cámara. El trigger usa `nodrag nopan nowheel pointer-events-auto`; el +portal de Base UI evita recorte por el canvas. No se habilitan drag, conexiones, selección +editable ni bloqueos globales de eventos. La vista compacta usa el mismo catálogo y tarjetas. + +Cada trigger tiene nombre «Acciones de {{name}}». Se mantienen roles de menú, flechas, +Enter/Espacio, Escape y foco visible. Al abrir un diálogo se delega el foco al modal; +al cerrar vuelve al trigger conectado, al nuevo trigger del nodo tras refetch o a +«Gestionar equipamiento». Cambiar compañía/puesto/principal descarta la operación +anterior. Se comprobó la retirada del nodo de instalación y el retorno al control estable. +Los estados tienen texto, además de color. El menú usa tokens de superficie y foco +visibles con contraste medido en temas claro y oscuro. + +### Validaciones WD04.5 + +Instalación desechable preparada con `scripts/visual-audit.py`, login real ordinario, +exclusivamente `metis_desk_test`. Fixtures reproducibles: 15 compañías; compañía principal +con 59 personas, 135 activos y 73 recursos, además de un puesto de 80 miembros y 60 perfiles. +Los recorridos modifican únicamente estos datos sintéticos y restauran los valores al terminar. + +| Comprobación ejecutada | Resultado | +| --- | --- | +| Typecheck dirigido Assets, Companies y Web | Correcto. | +| Pruebas dirigidas de acciones, software y ficha | 3 archivos aprobados. Cubren identidades, orden, principal/periféricos, permisos visuales, parciales, estados, referencias globales/particulares, SO global, contexto y es/en. | +| Assets | 29 archivos aprobados. | +| Companies | 50 archivos aprobados; persiste el fallo previo de companies-page.test.tsx. | +| Resources | Persiste el fallo previo de application/resource-scope.test.ts. | +| Identity | 5 archivos aprobados. | +| `pnpm test:global-software` | Integración HTTP/MariaDB: 13 pruebas aprobadas; regresiones: 50 aprobadas. Base desechable retirada por el runner. | +| Biome / ESLint dirigidos | Correctos, sin avisos, sobre los 25 archivos TS/TSX/JSON de WD04.5. | +| `pnpm build` final | Correcto; mantiene el aviso previo de tamaño del chunk principal. | +| `pnpm typecheck` global | Falla por locale opcional en vendor calendar.tsx:165, ajeno a esta intervención. Vendor permanece intacto. | +| `pnpm lint` / `pnpm check` globales | Fallan por deuda previa fuera de WD04.5. No se reforma código ajeno. | +| `pnpm test` global | Se detiene en el fallo previo de Resources application/resource-scope.test.ts. | +| Playwright MCP | **11 recorridos aprobados**, 322,543 s: siete regresiones del mapa y cuatro recorridos de acciones; sin errores JavaScript de página no capturados. | + +La ampliación del recorrido mantiene esperas deterministas por estado observable: +medición mediante locator del mapa montado y espera de los nodos retenidos tras error +parcial. El historial puede contener varias revisiones con la misma versión tras repetir +el escenario; se comprueba su presencia sin asumir unicidad del texto. Estos ajustes +corrigen la sincronización de las pruebas, sin relajar los contadores ni las condiciones +funcionales. Se repite la batería completa después de los ajustes. + +Los recorridos nuevos comprueban navegación real a Asset, edición/cancelación, error +HTTP y reintento con guardado real, historial y revisión añadida, preservación de toda +la composición, edición real de versión instalada, conflicto de composición, refetch +y cambio de principal. Abrir/cerrar menús y diálogos conserva URL y cámara. La batería +previa del mapa incluye vacíos, parciales, software, cobertura, densidad, soporte y enlaces. + +Se comprobaron 1600, 1440, 1280, 1024, 768 y 390 px, menús junto al borde, vista compacta, +nombres largos y ausencia de overflow global. Contraste mínimo medido del menú claro +18,92:1; oscuro con foco 14,52:1. La medición detectó primero 2,95:1 en el foco oscuro: +se corrigieron los tokens del componente y se repitió con resultado conforme. + +Evidencias locales en +`.artifacts/playwright/authenticated-dx1bl1j1/workstation-dashboard-wd043/visual-map-iteration-2/after/`: + +- `WD045-menu-{1600,1440,1280,1024,768,390}.png`, `WD045-dark-menu.png` y `WD045-long-name-menu.png`. +- `WD045-asset-editor.png`, `WD045-asset-save-error.png`, `WD045-installation-history.png`, `WD045-composition-conflict.png` y capturas de gestión/historial. +- `WD045-global-reference.png`, con referencia simulada en la frontera HTTP para probar el contrato de presentación global/inactivo; no se presenta como alta real de catálogo global. +- `measurements.json`: geometría, contraste, cámara, foco, escenarios y hashes de capturas. Las evidencias permanecen fuera de Git y no incluyen una copia versionada de la sesión. + +El zoom nativo aumentado se intentó mediante atajos del navegador headless, pero +innerWidth/devicePixelRatio no variaron: **no se declara verificado**. No se sustituyó +por CSS zoom. La autorización del catálogo global se cubre con la integración existente; +el navegador valida presentación con referencia simulada, no una mutación administrativa. +Se observaron avisos previos de claves duplicadas en el editor completo de equipamiento; +no se amplía el alcance para refactorizar ese flujo. No hay auditores especializados +instalados; las verificaciones realizadas son las disponibles en Playwright MCP. + +Skills consultadas: `frontend-design` como principal para conservar jerarquía, espacio +y composición; `shadcn` para API Base UI, portal, foco y diálogos; `vercel-composition-patterns` +para composición sin nuevos sistemas genéricos; `vercel-react-best-practices` para claves, +derivación y separación de estado remoto/local. Se consultaron `.agents/skills/`, +`skills-lock.json`, DESIGN.md y la matriz normativa. No se instalaron skills ni dependencias. + + +El preparador de WD04.5 se cerró al finalizar. Se confirmó la retirada de su instalación +temporal y la eliminación de `session.json`; se conservan 32 capturas y sus mediciones. +La revisión final de `git diff --check` y la compilación sintáctica del recorrido Python +son correctas. Los cambios simultáneos de otras tareas se mantienen fuera de esta intervención. diff --git a/docs/patron-de-listados-de-entidades.md b/docs/patron-de-listados-de-entidades.md index 44ce5d9e..969fa1c1 100644 --- a/docs/patron-de-listados-de-entidades.md +++ b/docs/patron-de-listados-de-entidades.md @@ -300,6 +300,22 @@ del UUID de campo, nunca de su nombre. Los filtros por plantilla no reconstruyen de columnas ni borran la elección local. No agregar columnas de historial completo a las filas: el historial sigue consultándose en la ficha correspondiente. +### Campos adicionales disponibles en Recursos + +El control Columnas del inventario de recursos de compañía aplica el mismo criterio que +Activos: incluye los campos activos del catálogo y los conservados en las instantáneas +actuales de los recursos, identificados por UUID, además de notas, fechas y autores de +alta/última modificación y los campos de integración de buzones, accesos y dominios. +Las columnas adicionales comienzan ocultas y se agrupan en Datos generales, Integración, +Registro y cambios y Características. La búsqueda admite también nombres de plantillas, +secciones, descripciones y unidades. Filtrar por plantilla o por texto no reduce las +columnas disponibles ni reinicia su selección. Las celdas sin valor muestran «—»; +cero, booleanos, fechas y unidades conservan su representación semántica. + +La pestaña Aplicaciones mantiene su listado remoto especializado de resúmenes globales y +locales; su contrato no incluye características ni revisiones completas. El historial +completo y las relaciones de cada recurso siguen en su ficha. + ### Adopción proporcional en catálogos y configuraciones — L04.2 Los catálogos navegables de activos, recursos y accesos y el listado de Procesos usan diff --git a/modules/assets/src/common/locales/en.json b/modules/assets/src/common/locales/en.json index c1af521d..2c568e1e 100644 --- a/modules/assets/src/common/locales/en.json +++ b/modules/assets/src/common/locales/en.json @@ -536,7 +536,8 @@ "relationshipCreated": "Relationship created", "relationshipEnded": "Relationship ended", "historyHint": "Asset, interface and connection changes, from newest to oldest.", - "noHistory": "This asset has no history yet." + "noHistory": "This asset has no history yet.", + "historyFor": "History for {{name}}" }, "assetColumns": { "technicalStatus": "Technical status", @@ -858,5 +859,23 @@ "savedRefreshError": "The asset was associated, but the map could not be refreshed. Retry the refresh; saving again is unnecessary.", "refreshing": "Asset associated. Refreshing the map…", "helpLabel": "About asset association" + }, + "workplaceNodeActions": { + "trigger": "Actions for {{name}}", + "openAsset": "Open asset details", + "editAsset": "Edit asset", + "manageEquipment": "Manage workstation equipment", + "manageSoftware": "Manage main computer software", + "manageSupport": "Manage asset support", + "assetHistory": "Asset history", + "openApplication": "Open application details", + "openOperatingSystem": "Open operating system details", + "openProduct": "Open product details", + "openLicense": "Open license details", + "editInstallation": "Edit installation", + "installationHistory": "Installation history", + "dataUnavailable": "Wait for the data to load or retry the query.", + "unavailableTitle": "Item unavailable", + "entityUnavailable": "This item is no longer available in this workstation. Close the dialog to continue with the current data." } } diff --git a/modules/assets/src/common/locales/es.json b/modules/assets/src/common/locales/es.json index fdc632b7..96c7aff1 100644 --- a/modules/assets/src/common/locales/es.json +++ b/modules/assets/src/common/locales/es.json @@ -536,7 +536,8 @@ "relationshipCreated": "Relación creada", "relationshipEnded": "Relación finalizada", "historyHint": "Cambios del activo, interfaces y conexiones, de más reciente a más antiguo.", - "noHistory": "Este activo todavía no tiene historial." + "noHistory": "Este activo todavía no tiene historial.", + "historyFor": "Historial de {{name}}" }, "assetColumns": { "technicalStatus": "Estado técnico", @@ -858,5 +859,23 @@ "savedRefreshError": "El activo se ha asociado, pero no se pudo actualizar el mapa. Reintenta la actualización; no es necesario volver a guardar.", "refreshing": "Activo asociado. Actualizando el mapa…", "helpLabel": "Ayuda sobre la asociación" + }, + "workplaceNodeActions": { + "trigger": "Acciones de {{name}}", + "openAsset": "Abrir ficha del activo", + "editAsset": "Editar activo", + "manageEquipment": "Gestionar equipamiento del puesto", + "manageSoftware": "Gestionar software del principal", + "manageSupport": "Gestionar soporte del activo", + "assetHistory": "Historial del activo", + "openApplication": "Abrir ficha de aplicación", + "openOperatingSystem": "Abrir ficha del sistema operativo", + "openProduct": "Abrir ficha del producto", + "openLicense": "Abrir ficha de licencia", + "editInstallation": "Editar instalación", + "installationHistory": "Historial de la instalación", + "dataUnavailable": "Espera a que se carguen los datos o reintenta la consulta.", + "unavailableTitle": "Elemento no disponible", + "entityUnavailable": "El elemento ya no está disponible en este puesto. Cierra el diálogo para continuar con los datos actuales." } } diff --git a/modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx b/modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx new file mode 100644 index 00000000..9946f661 --- /dev/null +++ b/modules/assets/src/web/assets/detail/ui/asset-history-dialog.tsx @@ -0,0 +1,51 @@ +import { FormBody, FormDialog } from "@repo/rdx-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import { useAssetDetailController } from "../controllers"; +import type { AssetDetailProps } from "../types"; + +import { AssetHistory } from "./asset-history"; + +/** Presenta el historial real del activo sin duplicar sus revisiones ni eventos relacionados. */ +export function AssetHistoryDialog({ + asset, + lookups, + onClose, + finalFocus, +}: { + asset: AssetDetailProps["asset"]; + lookups: AssetDetailProps["lookups"]; + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const { t } = useTranslation("assets"); + const { inventory } = useAssetDetailController({ asset, lookups }); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t("assetDetail.historyFor", { name: asset.values.name })} + wide + > + + + inventory.data?.assets.find((item) => item.id === id)?.values.name ?? "—" + } + lookups={lookups} + relationships={inventory.data?.relationships ?? []} + /> + + + ); +} diff --git a/modules/assets/src/web/index.ts b/modules/assets/src/web/index.ts index 878a57f1..64924e2e 100644 --- a/modules/assets/src/web/index.ts +++ b/modules/assets/src/web/index.ts @@ -1,6 +1,8 @@ export { AssetForm, AssetInventoryPage } from "./assets"; export { AssetDetailPage } from "./assets/detail/ui/asset-detail-page"; +export { AssetHistoryDialog } from "./assets/detail/ui/asset-history-dialog"; export { AssetSelect } from "./assets/select/ui/asset-select"; +export { AssetEditorDialog } from "./assets/shared/ui/asset-editor-dialog"; export { AssetSummaryCard } from "./assets/shared/ui/asset-summary-card"; export { BrandCatalogPage } from "./brands"; export { AssetCatalogPage } from "./catalog"; @@ -18,6 +20,7 @@ export { assetsEnglish, assetsSpanish } from "./shared"; export { inventoryApi } from "./shared/api"; export { inventoryKeys } from "./shared/queries"; export { AssetSupport } from "./support-connections"; +export { AssetSupportManagementDialog } from "./support-connections/list/ui/asset-support-management-dialog"; export { AssetSupportOverview } from "./support-connections/list/ui/asset-support-overview"; export { WorkstationEditorDialog, WorkstationForm, WorkstationsPage } from "./workstations"; export { WorkstationAssetAddDialog } from "./workstations/associate-assets/ui/workstation-asset-add-dialog"; diff --git a/modules/companies/package.json b/modules/companies/package.json index ed7ba76d..bcc86dc3 100644 --- a/modules/companies/package.json +++ b/modules/companies/package.json @@ -10,7 +10,7 @@ }, "scripts": { "typecheck": "tsc -p tsconfig.json", - "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx" + "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/domain/company.aggregate.test.ts src/api/domain/people.test.ts src/web/companies/shared/companies-page.test.tsx src/web/people/list/people-search.test.tsx src/web/companies/list/company-filters.test.tsx src/web/shared/helpers/company-list-query-state.test.ts src/api/domain/access/access.test.ts src/api/domain/mail-configuration.test.ts src/api/domain/mailbox.test.ts src/web/access/shared/access.test.tsx src/web/mail-configurations/shared/mail.test.tsx src/api/domain/work-profile.test.ts src/web/work-profiles/shared/profile.test.tsx src/api/domain/printer-configuration.test.ts src/web/printer-configurations/shared/printer.test.tsx src/api/domain/application-configuration.test.ts src/web/application-configurations/shared/application.test.tsx src/api/domain/certificate-configuration.test.ts src/web/certificate-configurations/shared/certificate.test.tsx src/web/work-environments/shared/work-environment.test.tsx src/api/domain/telework-authorization.test.ts src/web/telework-authorizations/shared/telework.test.tsx src/api/domain/remote-connection.test.ts src/api/domain/process.test.ts src/web/remote-connections/shared/remote.test.tsx src/web/processes/shared/processes.test.tsx src/web/shared/initials-avatar.test.tsx src/api/infrastructure/company-logo-processor.test.ts src/web/companies/shared/company-avatar.test.tsx src/web/shared/client-contracts.test.ts src/web/infrastructure/shared/helpers/printer-usage.test.ts src/web/workstations/detail/helpers/workstation-relations.test.ts src/web/workstations/detail/helpers/workplace-map-layout.test.ts src/web/workstations/detail/helpers/workstation-dashboard.test.ts src/web/workstations/detail/helpers/workstation-equipment.test.ts src/web/workstations/detail/helpers/workstation-profile-expansion.test.ts src/web/people/shared/helpers/person-organization.test.ts src/web/workstations/detail/ui/workstation-detail.test.tsx src/web/workspace/shared/workspace-routes.test.ts src/web/workspace/view/helpers/sidebar-preference.test.ts src/api/domain/software-installation.test.ts src/web/software-installations/shared/software.test.tsx src/web/software-installations/shared/current-operating-systems.test.tsx src/api/application/directory-context-plan.test.ts src/web/access/list/helpers/access-environment-filter.test.ts src/api/domain/folder-mapping-account.test.ts src/api/application/local-identity-plan.test.ts src/web/access/list/helpers/access-resource-filter.test.ts src/web/folder-mappings/shared/helpers/folder-account-options.test.ts src/web/local-identity-environments/shared/local-identities-ui.test.tsx src/web/workstations/detail/helpers/workplace-node-actions.test.tsx" }, "dependencies": { "@dagrejs/dagre": "3.1.2", diff --git a/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx b/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx index f2d060ad..2a35fcf4 100644 --- a/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx +++ b/modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx @@ -1,5 +1,6 @@ import { BrowserLink } from "@metis/core/client"; import { FormDialog } from "@repo/rdx-ui/components/form-dialog"; +import type { ComponentProps } from "react"; import { useTranslation } from "react-i18next"; import type { SoftwareInstallationDTO } from "../../../../common"; @@ -9,17 +10,20 @@ export function SoftwareHistoryDialog({ onClose, resourceName, resourceHref, + finalFocus, }: { onClose: () => void; configuration: SoftwareInstallationDTO; resourceName: (id: string) => string; - resourceHref: (id: string) => string; + resourceHref: (id: string) => string | undefined; + finalFocus?: ComponentProps["finalFocus"]; }) { const { t, i18n } = useTranslation("companies"); return ( { if (!open) { onClose(); @@ -30,41 +34,49 @@ export function SoftwareHistoryDialog({ wide >
    - {[...configuration.history].reverse().map((revision) => ( -
  1. -

    - {new Intl.DateTimeFormat(i18n.language, { - dateStyle: "medium", - timeStyle: "short", - }).format(new Date(revision.recordedAt))}{" "} - · {revision.actorName} -

    -

    - - {resourceName(revision.values.resourceId)} - -

    -

    {t(`mail.${revision.values.state}`)}

    - {revision.values.version && ( -

    {t("applications.versionValue", { version: revision.values.version })}

    - )} -

    - {t("software.licenseColumn")}:{" "} - {revision.values.licenseResourceId ? ( - - {resourceName(revision.values.licenseResourceId)} - - ) : ( - "—" + {[...configuration.history].reverse().map((revision) => { + const productHref = resourceHref(revision.values.resourceId); + + return ( +

  2. +

    + {new Intl.DateTimeFormat(i18n.language, { + dateStyle: "medium", + timeStyle: "short", + }).format(new Date(revision.recordedAt))}{" "} + · {revision.actorName} +

    +

    + {productHref ? ( + + {resourceName(revision.values.resourceId)} + + ) : ( + resourceName(revision.values.resourceId) + )} +

    +

    {t(`mail.${revision.values.state}`)}

    + {revision.values.version && ( +

    {t("applications.versionValue", { version: revision.values.version })}

    )} -

    - {revision.values.notes && ( -

    {revision.values.notes}

    - )} -
  3. - ))} +

    + {t("software.licenseColumn")}:{" "} + {revision.values.licenseResourceId ? ( + + {resourceName(revision.values.licenseResourceId)} + + ) : ( + "—" + )} +

    + {revision.values.notes && ( +

    {revision.values.notes}

    + )} + + ); + })}
); diff --git a/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx b/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx index 5f2eb606..72d1651f 100644 --- a/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx +++ b/modules/companies/src/web/software-installations/list/ui/software-installations-panel.tsx @@ -5,7 +5,6 @@ import { catalogKeys, inventoryApi as resourceApi, inventoryKeys as resourceKeys, - softwareReferenceHref, useSoftwareReferences, } from "@metis/resources/client"; import { @@ -29,6 +28,7 @@ import { useDetailTableContext } from "../../../shared/hooks/use-detail-table-co import { DeleteRecordDialog } from "../../../shared/ui/delete-record-dialog"; import { SoftwareHistoryDialog } from "../../history/ui/software-history-dialog"; import { softwareApi, softwareKeys } from "../../shared/api/software-api"; +import { softwareInstallationOptions } from "../../shared/helpers/software-installation-options"; import { SoftwareInstallationEditorDialog } from "../../shared/ui/software-installation-editor-dialog"; const ClosedSchema = z.boolean(); @@ -88,48 +88,20 @@ export function SoftwareInstallationsPanel({ resetPage, } = useDetailTableContext(stateScope, "software", state.status === "ready"); - const resource = (resourceId: string) => - resources.data?.resources.find((item) => item.id === resourceId); - - const usage = (resourceId: string) => { - const resolved = references.references.find((item) => item.id === resourceId); - - if (resolved) { - return resolved.kind; - } - const item = resource(resourceId); - const template = catalog.data?.items.find( - (template) => template.id === item?.values.templateId - ); - - if (template?.builtinKey === "template:software_license") { - return "license"; - } - if (template?.builtinKey === "template:os") { - return "os"; - } - if (template?.builtinKey === "template:application") { - return "application"; - } - - return template?.values.kind === "template" ? template.values.usage : undefined; - }; - - const name = (resourceId: string) => - references.references.find((item) => item.id === resourceId)?.name ?? - resource(resourceId)?.values.name ?? - "—"; + const { options, licenseOptions, name, href, usage } = softwareInstallationOptions({ + companyId, + resources: resources.data?.resources ?? [], + catalog: catalog.data?.items ?? [], + references: references.references, + installation: query.data?.configurations.find((item) => item.id === editor), + today: new Date().toISOString().slice(0, 10), + typeLabel: (kind) => t(`software.${kind}`), + unavailableLabel: t("software.licenseUnavailable"), + }); const isGlobal = (resourceId: string) => references.references.some((item) => item.id === resourceId && item.scope === "global"); - const href = (resourceId: string) => - softwareReferenceHref( - companyId, - resourceId, - references.references.find((item) => item.id === resourceId) - ); - const items = (query.data?.configurations ?? []).filter( (item) => item.values.assetId === assetId ); @@ -141,38 +113,6 @@ export function SoftwareInstallationsPanel({ (closed || !["removed", "never_configured"].includes(item.values.state)) && matchesSearch(`${name(item.values.resourceId)} ${item.values.version ?? ""}`) ); - const options = (resources.data?.resources ?? []) - .filter( - (item) => - item.id === edited?.values.resourceId || - (item.values.active && ["os", "application"].includes(usage(item.id) ?? "")) - ) - .map((item) => ({ - value: item.id, - label: `${item.values.name} · ${t(`software.${usage(item.id) === "os" ? "os" : "application"}`)}`, - })); - - const expiryFieldId = catalog.data?.items.find((item) => item.builtinKey === "field:expires")?.id; - const today = new Date().toISOString().slice(0, 10); - const licenseOptions = (resources.data?.resources ?? []) - .filter( - (item) => - usage(item.id) === "license" && - (item.values.active || item.id === edited?.values.licenseResourceId) - ) - .map((item) => { - const expiresOn = expiryFieldId ? item.values.characteristics[expiryFieldId] : undefined; - const unavailable = - !item.values.active || (typeof expiresOn === "string" && expiresOn < today); - - return { - value: item.id, - label: unavailable - ? `${item.values.name} · ${t("software.licenseUnavailable")}` - : item.values.name, - disabled: unavailable, - }; - }); return (
diff --git a/modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts b/modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts new file mode 100644 index 00000000..4b4fc59d --- /dev/null +++ b/modules/companies/src/web/software-installations/shared/controllers/use-software-installation-editor-data.ts @@ -0,0 +1,55 @@ +import { useListQuery } from "@metis/core/client"; +import { catalogApi, catalogKeys, inventoryApi, inventoryKeys } from "@metis/resources/client"; +import { useTranslation } from "react-i18next"; + +import type { SoftwareInstallationDTO } from "../../../../common"; +import { useCompanyListState } from "../../../shared/hooks/use-company-list-state"; +import { softwareInstallationOptions } from "../helpers/software-installation-options"; +import { useAssetSoftware } from "../queries/use-asset-software"; + +/** Carga solo al abrir edición y comparte las mismas claves y opciones que la gestión existente. */ +export function useSoftwareInstallationEditorData( + companyId: string, + installation: SoftwareInstallationDTO +) { + const { t } = useTranslation("companies"); + const resources = useListQuery({ + queryKey: inventoryKeys.company(companyId), + queryFn: () => inventoryApi.get(companyId), + }); + const catalog = useListQuery({ + queryKey: catalogKeys.scope(companyId), + queryFn: () => catalogApi.get(companyId), + }); + const software = useAssetSoftware(companyId, installation.values.assetId); + const { state, denied } = useCompanyListState([ + resources, + catalog, + software.query, + software.references, + ]); + const options = softwareInstallationOptions({ + companyId, + installation, + resources: resources.data?.resources ?? [], + catalog: catalog.data?.items ?? [], + references: software.references.references, + today: new Date().toISOString().slice(0, 10), + typeLabel: (kind) => t(`software.${kind}`), + unavailableLabel: t("software.licenseUnavailable"), + }); + + return { + ...options, + state, + retry: denied + ? undefined + : () => + Promise.all([ + resources.refetch(), + catalog.refetch(), + software.query.refetch(), + software.references.refetch(), + ]), + }; +} diff --git a/modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx b/modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx index 0af112ec..23856d2e 100644 --- a/modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx +++ b/modules/companies/src/web/software-installations/shared/current-operating-systems.test.tsx @@ -310,3 +310,36 @@ test("SO global: selector conserva scope y destino SO; la versión instalada sig assert.equal(result.systems[0]?.version, "24H2"); assert.equal(result.unavailable, false); }); + +test("REG-SO-01/11: render global configurado, inactivo e histórico conserva nombre, versión y destino es/en", async () => { + for (const language of ["es", "en"]) { + for (const active of [true, false]) { + const global: SoftwareReference = { + ...windows, + scope: "global", + companyId: null, + active, + provider: "Microsoft", + family: "Windows", + productVersion: "11", + editionState: "known", + edition: "Pro", + href: `/catalogs/global-operating-systems/${windows.id}`, + }; + const html = await render({ language, references: [global] }); + + assert.ok(html.includes(windows.name)); + assert.ok(html.includes("24H2")); + assert.ok(html.includes(`href="${global.href}"`)); + assert.equal(html.includes("No registrado"), false); + const retired = await render({ + language, + references: [global], + configurations: [installation({ state: "removed" })], + }); + + assert.ok(retired.includes(language === "es" ? "No registrado" : "Not recorded")); + assert.equal(retired.includes(windows.name), false); + } + } +}); diff --git a/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts b/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts new file mode 100644 index 00000000..7a647158 --- /dev/null +++ b/modules/companies/src/web/software-installations/shared/helpers/software-installation-options.ts @@ -0,0 +1,94 @@ +import { softwareReferenceHref } from "@metis/resources/client"; +import type { CatalogItemDTO, ResourceDTO, SoftwareReference } from "@metis/resources/common"; + +import type { SoftwareInstallationDTO } from "../../../../common"; + +/** Inventario y acceso contextual usan las mismas opciones de edición y caducidad de licencia. */ +export function softwareInstallationOptions({ + companyId, + resources, + catalog, + references, + installation, + today, + typeLabel, + unavailableLabel, +}: { + companyId: string; + resources: readonly ResourceDTO[]; + catalog: readonly CatalogItemDTO[]; + references: readonly SoftwareReference[]; + installation: SoftwareInstallationDTO | undefined; + today: string; + typeLabel: (kind: "os" | "application") => string; + unavailableLabel: string; +}) { + const local = resources.filter((item) => item.companyId === companyId); + const resolved = references.filter( + (item) => item.scope === "global" || item.companyId === companyId + ); + + const resource = (id: string) => local.find((item) => item.id === id); + + const usage = (id: string) => { + const reference = resolved.find((item) => item.id === id); + + if (reference) { + return reference.kind; + } + const template = catalog.find((item) => item.id === resource(id)?.values.templateId); + + if (template?.builtinKey === "template:software_license") { + return "license"; + } + if (template?.builtinKey === "template:os") { + return "os"; + } + if (template?.builtinKey === "template:application") { + return "application"; + } + + return template?.values.kind === "template" ? template.values.usage : undefined; + }; + + const name = (id: string) => + resolved.find((item) => item.id === id)?.name ?? resource(id)?.values.name ?? "—"; + + const href = (id: string) => + softwareReferenceHref( + companyId, + id, + resolved.find((item) => item.id === id) + ); + + const options = local + .filter( + (item) => + item.id === installation?.values.resourceId || + (item.values.active && ["os", "application"].includes(usage(item.id) ?? "")) + ) + .map((item) => ({ + value: item.id, + label: `${item.values.name} · ${typeLabel(usage(item.id) === "os" ? "os" : "application")}`, + })); + const expiryId = catalog.find((item) => item.builtinKey === "field:expires")?.id; + const licenseOptions = local + .filter( + (item) => + usage(item.id) === "license" && + (item.values.active || item.id === installation?.values.licenseResourceId) + ) + .map((item) => { + const expiresOn = expiryId ? item.values.characteristics[expiryId] : undefined; + const unavailable = + !item.values.active || (typeof expiresOn === "string" && expiresOn < today); + + return { + value: item.id, + label: unavailable ? `${item.values.name} · ${unavailableLabel}` : item.values.name, + disabled: unavailable, + }; + }); + + return { options, licenseOptions, name, href, usage }; +} diff --git a/modules/companies/src/web/software-installations/shared/software.test.tsx b/modules/companies/src/web/software-installations/shared/software.test.tsx index 7ca152da..1ca13534 100644 --- a/modules/companies/src/web/software-installations/shared/software.test.tsx +++ b/modules/companies/src/web/software-installations/shared/software.test.tsx @@ -2,6 +2,7 @@ import assert from "node:assert/strict"; import { test } from "node:test"; import { applicationReferenceKeys, catalogKeys, inventoryKeys } from "@metis/resources/client"; +import { ResourceSchema } from "@metis/resources/common"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createInstance } from "i18next"; import type { ReactNode } from "react"; @@ -43,6 +44,39 @@ const item = SoftwareInstallationSchema.parse({ ], }); +function localResource(resourceId: string, templateId: string, name: string) { + const values = { name, templateId, active: true, notes: "", characteristics: {} }; + + return ResourceSchema.parse({ + id: resourceId, + companyId, + values, + specification: { + templateId, + templateName: name, + fields: [ + { + fieldId: id(40), + name: "Proveedor", + type: "text", + unit: "", + choices: [], + required: false, + }, + ], + }, + history: [ + { + id: id(41), + actorId: id(6), + actorName: "David", + recordedAt: "2026-10-12T10:00:00.000Z", + values, + }, + ], + }); +} + async function render( language: string, node: ReactNode, @@ -91,8 +125,8 @@ async function render( }); client.setQueryData(inventoryKeys.company(companyId), { resources: [ - { id: id(3), values: { name: "Windows 11 Pro", active: true, templateId: id(7) } }, - { id: id(8), values: { name: "Licencia Windows", active: true, templateId: id(9) } }, + localResource(id(3), id(7), "Windows 11 Pro"), + localResource(id(8), id(9), "Licencia Windows"), ], }); client.setQueryData(catalogKeys.scope(companyId), { diff --git a/modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx b/modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx index 6a6abc99..da352780 100644 --- a/modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx +++ b/modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx @@ -1,4 +1,6 @@ -import { FormDialog } from "@repo/rdx-ui/components/form-dialog"; +import { EntityListStatus } from "@repo/rdx-ui/components/entity-list-status"; +import { FormActions, FormBody, FormDialog } from "@repo/rdx-ui/components/form-dialog"; +import type { EntityListState } from "@repo/rdx-ui/lib/entity-list-state"; import type { ComponentProps } from "react"; import { useState } from "react"; import { useTranslation } from "react-i18next"; @@ -7,14 +9,23 @@ import { SoftwareInstallationForm } from "./software-installation-form"; export function SoftwareInstallationEditorDialog({ onClose, + finalFocus, + dataState, + onRetry, ...formProps -}: ComponentProps & { onClose: () => void }) { +}: ComponentProps & { + onClose: () => void; + finalFocus?: ComponentProps["finalFocus"]; + dataState?: EntityListState; + onRetry?: (() => Promise) | undefined; +}) { const [pending, setPending] = useState(false); const { t } = useTranslation("companies"); return ( { @@ -26,7 +37,16 @@ export function SoftwareInstallationEditorDialog({ size="medium" title={t(formProps.installation ? "software.edit" : "software.new")} > - + {dataState && dataState.status !== "ready" ? ( + <> + + + + {null} + + ) : ( + + )} ); } diff --git a/modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts b/modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts new file mode 100644 index 00000000..b6a9b874 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/controllers/use-workplace-node-actions.ts @@ -0,0 +1,123 @@ +import type { RefObject } from "react"; +import { useCallback, useMemo, useRef, useState } from "react"; +import { useTranslation } from "react-i18next"; + +import type { WorkplaceMapNode } from "../helpers/workplace-map-model"; +import type { WorkplaceNodeCommand } from "../helpers/workplace-node-actions"; +import { workplaceNodeActions } from "../helpers/workplace-node-actions"; + +import type { WorkstationDetailController } from "./use-workstation-detail-controller"; + +export type WorkplaceNodeOperation = { + context: string; + nodeId: string; + command: WorkplaceNodeCommand; +}; + +/** Estado efímero de operación y foco, separado de los datos remotos y del layout. */ +export function useWorkplaceNodeActions({ + companyId, + controller: c, + nodes, + canEdit, + container, + fallback, +}: { + companyId: string; + controller: WorkstationDetailController; + nodes: WorkplaceMapNode[]; + canEdit: boolean; + container: RefObject; + fallback: RefObject; +}) { + const { t } = useTranslation("assets"); + const context = `${companyId}:${c.workstation?.id}:${c.workstation?.values.computerAssetId ?? "none"}`; + const [selected, setSelected] = useState(); + const trigger = useRef(null); + const nodeId = useRef(undefined); + const open = useCallback( + (command: WorkplaceNodeCommand, source: HTMLButtonElement | null, id: string) => { + trigger.current = source; + nodeId.current = id; + setSelected({ context, nodeId: id, command }); + }, + [context] + ); + + const finalFocus = () => { + if (trigger.current?.isConnected && !trigger.current.disabled) { + return trigger.current; + } + const current = nodeId.current + ? container.current?.querySelector( + `[data-workplace-node-id="${CSS.escape(nodeId.current)}"] [data-workplace-node-menu]` + ) + : undefined; + + return current ?? fallback.current ?? true; + }; + + const workstation = c.workstation; + const assets = c.inventory.data; + const software = c.software.query.data; + const resources = c.configurationQueries.resources.data; + const references = c.software.references.data; + const equipmentReady = c.inventory.isSuccess; + const catalogReady = c.catalog.isSuccess; + const softwareReady = c.software.query.isSuccess; + const actionable = useMemo( + () => + nodes.map((node): WorkplaceMapNode => { + const presentation = { + nodeId: node.id, + actions: workstation + ? workplaceNodeActions(node, { + companyId, + workstation, + assets: assets?.assets ?? [], + installations: software?.configurations ?? [], + resources: resources?.resources ?? [], + references: references ?? [], + canEdit, + equipmentReady, + catalogReady, + softwareReady, + label: (key) => t(`workplaceNodeActions.${key}`), + }) + : [], + onAction: (command: WorkplaceNodeCommand, source: HTMLButtonElement | null) => + open(command, source, node.id), + }; + + return node.type === "equipment" + ? { ...node, data: { ...node.data, ...presentation } } + : { ...node, data: { ...node.data, ...presentation } }; + }), + [ + nodes, + workstation, + assets, + software, + resources, + references, + companyId, + canEdit, + equipmentReady, + catalogReady, + softwareReady, + t, + open, + ] + ); + + if (selected && selected.context !== context) { + setSelected(undefined); + } + + return { + nodes: actionable, + operation: selected?.context === context ? selected : undefined, + close: () => setSelected(undefined), + finalFocus, + }; +} diff --git a/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts b/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts index 9442d463..f9acd979 100644 --- a/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts +++ b/modules/companies/src/web/workstations/detail/helpers/workplace-map-model.ts @@ -4,9 +4,10 @@ import type { Node } from "@xyflow/react"; import type { SoftwareInstallationDTO } from "../../../../common/software-installations"; import { getAssetSoftwareInstallations } from "../../../software-installations/shared/helpers/current-operating-systems"; +import type { WorkplaceNodeActionPresentation } from "./workplace-node-actions"; import { workstationEquipment } from "./workstation-equipment"; -export type WorkplaceEquipmentData = { +export type WorkplaceEquipmentData = WorkplaceNodeActionPresentation & { name: string; href: string | undefined; subtitle: string; @@ -16,7 +17,7 @@ export type WorkplaceEquipmentData = { assigned: boolean; }; -export type WorkplaceSoftwareData = { +export type WorkplaceSoftwareData = WorkplaceNodeActionPresentation & { name: string; href: string | undefined; state: SoftwareInstallationDTO["values"]["state"]; diff --git a/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx b/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx new file mode 100644 index 00000000..77bd4b24 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.test.tsx @@ -0,0 +1,397 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { assetsEnglish, assetsSpanish } from "@metis/assets/client"; +import { AssetSchema, WorkstationSchema } from "@metis/assets/common"; +import { ResourceSchema, SoftwareReferenceSchema } from "@metis/resources/common"; +import { createInstance } from "i18next"; +import type { ReactNode } from "react"; +import { renderToStaticMarkup } from "react-dom/server"; +import { I18nextProvider } from "react-i18next"; + +import { SoftwareInstallationSchema } from "../../../../common"; +import { companiesEnglish, companiesSpanish } from "../../../shared"; +import { WorkplaceAddAssetNode } from "../ui/workplace-add-asset-node"; +import { WorkplaceEquipmentCard } from "../ui/workplace-equipment-card"; +import { WorkplaceNodeActionsMenu } from "../ui/workplace-node-actions-menu"; +import { WorkplaceSoftwareCard } from "../ui/workplace-software-card"; + +import type { WorkplaceMapNode } from "./workplace-map-model"; +import { workplaceMapModel } from "./workplace-map-model"; +import type { WorkplaceNodeActionContext } from "./workplace-node-actions"; +import { workplaceNodeActions } from "./workplace-node-actions"; + +const id = (n: number) => `0199b200-0000-7000-8000-${String(n).padStart(12, "0")}`; + +const actor = { + id: id(90), + actorId: id(91), + actorName: "Pruebas", + recordedAt: "2026-01-01T10:00:00.000Z", +}; +const fields = [ + { fieldId: id(80), name: "Serie", type: "text", unit: "", choices: [], required: false }, +]; +const assets = [2, 3].map((n) => { + const values = { + name: `Equipo ${n}`, + templateId: id(10), + siteId: null, + status: "operational", + notes: "", + characteristics: {}, + }; + + return AssetSchema.parse({ + id: id(n), + companyId: id(1), + values, + history: [{ ...actor, values }], + specification: { templateId: id(10), templateName: "Equipo", fields }, + displayStatus: "in_use", + assigned: true, + }); +}); +const values = { + name: "Puesto", + active: true, + siteId: null, + personId: null, + assetIds: [id(2), id(3)], + computerAssetId: id(2), +}; +const workstation = WorkstationSchema.parse({ + id: id(4), + companyId: id(1), + values, + history: [{ ...actor, values }], +}); +const softwareValues = { + assetId: id(2), + resourceId: id(5), + licenseResourceId: id(6), + version: "4.2", + state: "configured", + notes: null, +}; +const installation = SoftwareInstallationSchema.parse({ + id: id(7), + companyId: id(1), + values: softwareValues, + history: [{ ...actor, values: softwareValues }], + needsReview: false, +}); +const resource = ResourceSchema.parse({ + id: id(6), + companyId: id(1), + values: { name: "Licencia", templateId: id(10), active: true, notes: "", characteristics: {} }, + specification: { templateId: id(10), templateName: "Licencia", fields }, + history: [ + { + ...actor, + values: { + name: "Licencia", + templateId: id(10), + active: true, + notes: "", + characteristics: {}, + }, + }, + ], +}); +const reference = SoftwareReferenceSchema.parse({ + id: id(5), + templateId: id(10), + kind: "application", + scope: "global", + companyId: null, + name: "Aplicación global", + active: false, +}); +const model = workplaceMapModel({ + companyId: id(1), + workstation, + assets, + catalog: [], + installations: [installation], + softwareReference: () => ({ + name: reference.name, + href: `/catalogs/global-applications/${id(5)}`, + }), +}); +const context: WorkplaceNodeActionContext = { + companyId: id(1), + workstation, + assets, + installations: [installation], + resources: [resource], + references: [reference], + canEdit: true, + equipmentReady: true, + catalogReady: true, + softwareReady: true, + label: (key) => key, +}; + +function node(identity: string): WorkplaceMapNode { + const result = [...model.equipment, ...model.software].find((item) => item.id === identity); + + assert.ok(result); + + return result; +} + +test("WD04.5: acciones ordenadas del principal y periférico sin inferir software por categoría", () => { + assert.deepEqual( + workplaceNodeActions(node(`asset:${id(2)}`), context).map((item) => item.id), + ["asset", "edit-asset", "manage-equipment", "manage-software", "asset-support", "asset-history"] + ); + const secondary = workplaceNodeActions(node(`asset:${id(3)}`), context); + + assert.deepEqual( + secondary.map((item) => item.id), + ["asset", "edit-asset", "manage-equipment", "asset-support", "asset-history"] + ); + assert.equal( + secondary.some((item) => /delete|remove|principal/.test(item.id)), + false + ); + const edit = secondary.find((item) => item.id === "edit-asset"); + + assert.ok(edit?.kind === "command"); + assert.deepEqual(edit.command, { type: "edit-asset", assetId: id(3) }); +}); + +test("WD04.5: lectura sin permisos de edición, carga/error parcial y activos retirados", () => { + const principal = node(`asset:${id(2)}`); + + assert.deepEqual( + workplaceNodeActions(principal, { ...context, canEdit: false }).map((item) => item.id), + ["asset", "asset-history"] + ); + const pending = workplaceNodeActions(principal, { + ...context, + catalogReady: false, + softwareReady: false, + }); + + assert.ok( + pending.some( + (item) => item.kind === "command" && item.id === "edit-asset" && item.disabledReason + ) + ); + assert.ok( + pending.some( + (item) => item.kind === "command" && item.id === "manage-software" && item.disabledReason + ) + ); + const retired = assets.map((asset) => ({ + ...asset, + values: { ...asset.values, status: "retired" as const }, + })); + + assert.ok( + workplaceNodeActions(principal, { ...context, assets: retired }).some( + (item) => item.id === "edit-asset" + ) + ); + assert.equal(workplaceNodeActions(principal, { ...context, assets: [] }).length, 0); + assert.equal(workplaceNodeActions(principal, { ...context, companyId: id(99) }).length, 0); +}); + +test("WD04.5: distingue instalación, producto global/inactivo y licencia particular", () => { + const actions = workplaceNodeActions(node(`software:${id(7)}`), context); + + assert.deepEqual( + actions.map((item) => item.id), + ["product", "license", "edit-installation", "installation-history"] + ); + assert.ok( + actions.some( + (item) => item.kind === "link" && item.href === `/catalogs/global-applications/${id(5)}` + ) + ); + assert.ok( + actions.some( + (item) => + item.kind === "command" && + item.command.type === "edit-installation" && + item.command.installationId === installation.id + ) + ); + assert.equal( + actions.some((item) => /delete|admin|edit-resource/.test(item.id)), + false + ); + const readonly = workplaceNodeActions(node(`software:${id(7)}`), { ...context, canEdit: false }); + + assert.equal( + readonly.some((item) => item.id === "edit-installation"), + false + ); + const unresolved = workplaceNodeActions(node(`software:${id(7)}`), { + ...context, + references: [], + resources: [], + }); + + assert.deepEqual( + unresolved.map((item) => item.id), + ["edit-installation", "installation-history"] + ); + assert.ok(unresolved.some((item) => item.kind === "command" && item.disabledReason)); +}); + +test("WD04.5: producto particular y gates cerrados no crean acciones administrativas", () => { + const local = SoftwareReferenceSchema.parse({ + ...reference, + companyId: id(1), + scope: "company", + active: true, + }); + const actions = workplaceNodeActions(node(`software:${id(7)}`), { + ...context, + references: [local], + }); + + assert.ok( + actions.some( + (item) => item.kind === "link" && item.href === `/companies/${id(1)}/resources/${id(5)}` + ) + ); + // La resolución de usos existentes no utiliza el gate de nuevas asociaciones. + const unchanged = workplaceNodeActions(node(`software:${id(7)}`), context); + + assert.equal( + unchanged.some((item) => item.id === "edit-installation"), + true + ); + assert.equal( + unchanged.some((item) => item.id === "edit-product"), + false + ); +}); + +test("WD04.5: SO global utiliza la referencia pública y su etiqueta específica", () => { + const operatingSystem = SoftwareReferenceSchema.parse({ + ...reference, + kind: "os", + provider: "Proveedor", + family: "Sistema", + productVersion: "11", + editionState: "known", + edition: "Pro", + href: `/catalogs/global-operating-systems/${id(5)}`, + }); + + assert.ok(operatingSystem.kind === "os" && operatingSystem.scope === "global"); + const actions = workplaceNodeActions(node(`software:${id(7)}`), { + ...context, + references: [operatingSystem], + }); + + assert.ok( + actions.some( + (item) => + item.kind === "link" && + item.label === "openOperatingSystem" && + item.href === operatingSystem.href + ) + ); + assert.equal( + actions.some((item) => item.id === "edit-product"), + false + ); +}); + +test("WD04.5: estados terminales, refetch y cambio de principal o compañía no reutilizan acciones antiguas", () => { + const software = node(`software:${id(7)}`); + const removed = { + ...installation, + values: { ...installation.values, state: "removed" as const }, + }; + + assert.equal( + workplaceNodeActions(software, { ...context, installations: [removed] }).some( + (item) => item.id === "edit-installation" + ), + false + ); + assert.equal( + workplaceNodeActions(software, { + ...context, + workstation: { ...workstation, values: { ...values, computerAssetId: id(3) } }, + }).length, + 0 + ); + assert.equal( + workplaceNodeActions(software, { + ...context, + installations: [{ ...installation, companyId: id(99) }], + }).length, + 0 + ); + assert.equal(workplaceNodeActions(software, { ...context, installations: [] }).length, 0); + assert.deepEqual( + workplaceNodeActions(software, context), + workplaceNodeActions(software, { ...context }) + ); +}); + +async function render(language: string, children: ReactNode) { + const i18n = createInstance(); + + await i18n.init({ + lng: language, + resources: { + es: { assets: assetsSpanish, companies: companiesSpanish }, + en: { assets: assetsEnglish, companies: companiesEnglish }, + }, + }); + + return renderToStaticMarkup({children}); +} + +test("WD04.5: trigger es/en separado del enlace, tarjetas sin acciones y añadir sin menú", async () => { + for (const language of ["es", "en"]) { + const labels: Record = + language === "es" ? assetsSpanish.workplaceNodeActions : assetsEnglish.workplaceNodeActions; + const equipment = node(`asset:${id(2)}`); + const software = node(`software:${id(7)}`); + + assert.ok(equipment.type === "equipment" && software.type === "software"); + const actions = workplaceNodeActions(equipment, { + ...context, + label: (key) => labels[key] ?? key, + }); + const markup = await render( + language, + undefined }} /> + ); + + assert.ok(markup.includes(language === "es" ? "Acciones de Equipo 2" : "Actions for Equipo 2")); + assert.ok(markup.includes(`href="/companies/${id(1)}/assets/${id(2)}"`)); + assert.ok( + [...markup.matchAll(/]*>(.*?)<\/a>/gs)].every( + (match) => !match[1]?.includes("); + + assert.equal(noActions, ""); + const add = await render( + language, + undefined }} /> + ); + + assert.equal(add.includes("data-workplace-node-menu"), false); + const softwareMarkup = await render( + language, + + ); + + assert.ok(softwareMarkup.includes("data-workplace-node-menu")); + } +}); diff --git a/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts b/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts new file mode 100644 index 00000000..b6d15749 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/helpers/workplace-node-actions.ts @@ -0,0 +1,207 @@ +import type { AssetDTO, WorkstationDTO } from "@metis/assets/common"; +import { softwareReferenceHref } from "@metis/resources/client"; +import type { ResourceDTO, SoftwareReference } from "@metis/resources/common"; + +import type { SoftwareInstallationDTO } from "../../../../common"; + +import type { WorkplaceMapNode } from "./workplace-map-model"; + +export type WorkplaceNodeCommand = + | { type: "edit-asset" | "asset-history" | "asset-support"; assetId: string } + | { type: "manage-equipment" | "manage-software" } + | { type: "edit-installation" | "installation-history"; installationId: string }; + +type ActionPresentation = { + id: string; + label: string; + group: "navigation" | "editing" | "management" | "history"; +}; + +export type WorkplaceNodeAction = ActionPresentation & + ( + | { kind: "link"; href: string } + | { kind: "command"; command: WorkplaceNodeCommand; disabledReason?: string } + ); + +export type WorkplaceNodeActionPresentation = { + nodeId?: string | undefined; + actions?: readonly WorkplaceNodeAction[] | undefined; + onAction?: + | ((command: WorkplaceNodeCommand, trigger: HTMLButtonElement | null) => void) + | undefined; +}; + +export type WorkplaceNodeActionContext = { + companyId: string; + workstation: WorkstationDTO; + assets: readonly AssetDTO[]; + installations: readonly SoftwareInstallationDTO[]; + resources: readonly ResourceDTO[]; + references: readonly SoftwareReference[]; + canEdit: boolean; + equipmentReady: boolean; + catalogReady: boolean; + softwareReady: boolean; + label: (key: string) => string; +}; + +function assetActions(asset: AssetDTO, context: WorkplaceNodeActionContext) { + const { label, companyId, workstation } = context; + const actions: WorkplaceNodeAction[] = [ + { + id: "asset", + kind: "link", + href: `/companies/${companyId}/assets/${asset.id}`, + label: label("openAsset"), + group: "navigation", + }, + ]; + + if (context.canEdit) { + actions.push({ + id: "edit-asset", + kind: "command", + label: label("editAsset"), + group: "editing", + command: { type: "edit-asset", assetId: asset.id }, + ...(context.equipmentReady && context.catalogReady + ? {} + : { disabledReason: label("dataUnavailable") }), + }); + actions.push({ + id: "manage-equipment", + kind: "command", + label: label("manageEquipment"), + group: "management", + command: { type: "manage-equipment" }, + ...(context.equipmentReady ? {} : { disabledReason: label("dataUnavailable") }), + }); + if (workstation.values.computerAssetId === asset.id) { + actions.push({ + id: "manage-software", + kind: "command", + label: label("manageSoftware"), + group: "management", + command: { type: "manage-software" }, + ...(context.softwareReady ? {} : { disabledReason: label("dataUnavailable") }), + }); + } + actions.push({ + id: "asset-support", + kind: "command", + label: label("manageSupport"), + group: "management", + command: { type: "asset-support", assetId: asset.id }, + }); + } + actions.push({ + id: "asset-history", + kind: "command", + label: label("assetHistory"), + group: "history", + command: { type: "asset-history", assetId: asset.id }, + }); + + return actions; +} + +function installationActions( + installation: SoftwareInstallationDTO, + context: WorkplaceNodeActionContext +) { + const { label, companyId } = context; + const reference = context.references.find( + (item) => + item.id === installation.values.resourceId && + (item.scope === "global" || item.companyId === companyId) + ); + const resource = context.resources.find( + (item) => item.id === installation.values.resourceId && item.companyId === companyId + ); + const actions: WorkplaceNodeAction[] = []; + + if (reference || resource) { + actions.push({ + id: "product", + kind: "link", + href: softwareReferenceHref(companyId, installation.values.resourceId, reference), + label: label( + reference?.kind === "os" + ? "openOperatingSystem" + : reference?.kind === "application" + ? "openApplication" + : "openProduct" + ), + group: "navigation", + }); + } + const license = context.resources.find( + (item) => item.id === installation.values.licenseResourceId && item.companyId === companyId + ); + + if (license) { + actions.push({ + id: "license", + kind: "link", + href: `/companies/${companyId}/resources/${license.id}`, + label: label("openLicense"), + group: "navigation", + }); + } + if (context.canEdit && !["removed", "never_configured"].includes(installation.values.state)) { + actions.push({ + id: "edit-installation", + kind: "command", + label: label("editInstallation"), + group: "editing", + command: { type: "edit-installation", installationId: installation.id }, + ...(context.softwareReady && (reference || resource) + ? {} + : { disabledReason: label("dataUnavailable") }), + }); + } + actions.push({ + id: "installation-history", + kind: "command", + label: label("installationHistory"), + group: "history", + command: { type: "installation-history", installationId: installation.id }, + }); + + return actions; +} + +/** Resuelve UUID de dominio por identidad de presentación; no infiere capacidades por nombre ni categoría. */ +export function workplaceNodeActions( + node: WorkplaceMapNode, + context: WorkplaceNodeActionContext +): WorkplaceNodeAction[] { + if (context.workstation.companyId !== context.companyId) { + return []; + } + if (node.type === "equipment") { + const asset = context.assets.find( + (item) => + `asset:${item.id}` === node.id && + item.companyId === context.companyId && + context.workstation.values.assetIds.includes(item.id) + ); + + return asset ? assetActions(asset, context) : []; + } + const principalId = context.workstation.values.computerAssetId; + const principal = context.assets.find( + (item) => + item.id === principalId && + item.companyId === context.companyId && + context.workstation.values.assetIds.includes(item.id) + ); + const installation = context.installations.find( + (item) => + `software:${item.id}` === node.id && + item.companyId === context.companyId && + item.values.assetId === principal?.id + ); + + return principal && installation ? installationActions(installation, context) : []; +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx new file mode 100644 index 00000000..e9889c3b --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-asset-action-dialog.tsx @@ -0,0 +1,73 @@ +import { + AssetEditorDialog, + AssetHistoryDialog, + AssetSupportManagementDialog, +} from "@metis/assets/client"; +import type { ComponentProps } from "react"; + +import type { WorkstationDetailController } from "../controllers/use-workstation-detail-controller"; +import type { WorkplaceNodeCommand } from "../helpers/workplace-node-actions"; + +import { WorkplaceNodeUnavailableDialog } from "./workplace-node-unavailable-dialog"; + +export function WorkplaceAssetActionDialog({ + command, + controller: c, + companyId, + lookups, + onClose, + finalFocus, +}: { + command: Extract; + controller: WorkstationDetailController; + companyId: string; + lookups: ComponentProps["lookups"]; + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const asset = c.inventory.data?.assets.find( + (item) => + item.id === command.assetId && + item.companyId === companyId && + c.workstation?.values.assetIds.includes(item.id) + ); + + if (!asset) { + return ; + } + switch (command.type) { + case "edit-asset": + return c.catalog.data ? ( + + ) : ( + + ); + case "asset-history": + return ( + + ); + case "asset-support": + return ( + + ); + } +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx index 4ea4354f..cc615cd9 100644 --- a/modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx +++ b/modules/companies/src/web/workstations/detail/ui/workplace-equipment-card.tsx @@ -7,6 +7,8 @@ import { useTranslation } from "react-i18next"; import type { WorkplaceEquipmentData } from "../helpers/workplace-map-model"; +import { WorkplaceNodeActionsMenu } from "./workplace-node-actions-menu"; + export function WorkplaceEquipmentCard({ data }: { data: WorkplaceEquipmentData }) { const { t } = useTranslation("assets"); @@ -17,11 +19,12 @@ export function WorkplaceEquipmentCard({ data }: { data: WorkplaceEquipmentData data.principal && "min-h-[192px] border-secondary/50 bg-secondary/5 p-4 shadow-sm" )} data-workplace-equipment={data.principal ? "principal" : "associated"} + data-workplace-node-id={data.nodeId} >
)} + ); } diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx new file mode 100644 index 00000000..be733fc9 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-installation-editor-dialog.tsx @@ -0,0 +1,35 @@ +import type { ComponentProps } from "react"; + +import type { SoftwareInstallationDTO } from "../../../../common"; +import { useSoftwareInstallationEditorData } from "../../../software-installations/shared/controllers/use-software-installation-editor-data"; +import { SoftwareInstallationEditorDialog } from "../../../software-installations/shared/ui/software-installation-editor-dialog"; + +/** Compone el formulario existente con las consultas compartidas solo mientras está abierto. */ +export function WorkplaceInstallationEditorDialog({ + companyId, + installation, + onClose, + finalFocus, +}: { + companyId: string; + installation: SoftwareInstallationDTO; + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const data = useSoftwareInstallationEditorData(companyId, installation); + + return ( + + ); +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx new file mode 100644 index 00000000..2285b3e1 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-node-action-dialogs.tsx @@ -0,0 +1,92 @@ +import { WorkstationEditorDialog } from "@metis/assets/client"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +import type { WorkplaceNodeOperation } from "../controllers/use-workplace-node-actions"; +import type { WorkstationDetailController } from "../controllers/use-workstation-detail-controller"; + +import { WorkplaceAssetActionDialog } from "./workplace-asset-action-dialog"; +import { WorkplaceNodeUnavailableDialog } from "./workplace-node-unavailable-dialog"; +import { WorkplaceSoftwareActionDialog } from "./workplace-software-action-dialog"; +import { WorkstationSoftwareDialog } from "./workstation-software-dialog"; + +export function WorkplaceNodeActionDialogs({ + operation, + controller: c, + companyId, + lookups, + onClose, + finalFocus, +}: { + operation: WorkplaceNodeOperation | undefined; + controller: WorkstationDetailController; + companyId: string; + lookups: ComponentProps["lookups"]; + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const { t } = useTranslation("assets"); + + if (!operation) { + return null; + } + const command = operation.command; + + if ("assetId" in command) { + return ( + + ); + } + if ("installationId" in command) { + return ( + + ); + } + if (command.type === "manage-equipment") { + return c.workstation ? ( + + ) : ( + + ); + } + const computer = c.dashboard?.computer; + const canCreate = Boolean( + computer && c.workstation?.values.active && computer.values.status !== "retired" + ); + + return computer ? ( + + ) : ( + + ); +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx new file mode 100644 index 00000000..00cc0e1d --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-node-actions-menu.tsx @@ -0,0 +1,98 @@ +import { BrowserLink } from "@metis/core/client"; +import { EllipsisIcon } from "@repo/rdx-ui/lib/icons"; +import { Button } from "@repo/shadcn-ui/components/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@repo/shadcn-ui/components/dropdown-menu"; +import { Fragment, useRef } from "react"; +import { useTranslation } from "react-i18next"; + +import type { WorkplaceNodeActionPresentation } from "../helpers/workplace-node-actions"; + +// El foco usa tokens de superficie para conservar contraste también en el tema oscuro. +const itemClassName = + "text-popover-foreground focus:bg-muted focus:text-popover-foreground focus:**:text-popover-foreground focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"; + +/** El portal y el teclado pertenecen a Base UI; el menú solo presenta operaciones auditadas. */ +export function WorkplaceNodeActionsMenu({ + name, + actions, + onAction, +}: WorkplaceNodeActionPresentation & { name: string }) { + const { t } = useTranslation("assets"); + const trigger = useRef(null); + const openingDialog = useRef(false); + + if (!actions?.length) { + return null; + } + + return ( +
+ { + if (open) { + openingDialog.current = false; + } + }} + > + + } + > + + (openingDialog.current ? false : (trigger.current ?? true))} + > + {actions.map((action, index) => ( + + {index > 0 && actions[index - 1]?.group !== action.group && } + + {action.kind === "link" ? ( + } + > + {action.label} + + ) : ( + { + openingDialog.current = true; + onAction?.(action.command, trigger.current); + }} + > + + {action.label} + {action.disabledReason && ( + {action.disabledReason} + )} + + + )} + + + ))} + + +
+ ); +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx new file mode 100644 index 00000000..6bc9d5e9 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-node-unavailable-dialog.tsx @@ -0,0 +1,29 @@ +import { FormDialog } from "@repo/rdx-ui/components/form-dialog"; +import type { ComponentProps } from "react"; +import { useTranslation } from "react-i18next"; + +export function WorkplaceNodeUnavailableDialog({ + onClose, + finalFocus, +}: { + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const { t } = useTranslation("assets"); + + return ( + { + if (!open) { + onClose(); + } + }} + open + title={t("workplaceNodeActions.unavailableTitle")} + > +

{t("workplaceNodeActions.entityUnavailable")}

+
+ ); +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx new file mode 100644 index 00000000..22c0c3e2 --- /dev/null +++ b/modules/companies/src/web/workstations/detail/ui/workplace-software-action-dialog.tsx @@ -0,0 +1,66 @@ +import { softwareReferenceHref } from "@metis/resources/client"; +import type { ComponentProps } from "react"; + +import { SoftwareHistoryDialog } from "../../../software-installations/history/ui/software-history-dialog"; +import type { WorkstationDetailController } from "../controllers/use-workstation-detail-controller"; +import type { WorkplaceNodeCommand } from "../helpers/workplace-node-actions"; + +import { WorkplaceInstallationEditorDialog } from "./workplace-installation-editor-dialog"; +import { WorkplaceNodeUnavailableDialog } from "./workplace-node-unavailable-dialog"; + +export function WorkplaceSoftwareActionDialog({ + command, + controller: c, + companyId, + onClose, + finalFocus, +}: { + command: Extract; + controller: WorkstationDetailController; + companyId: string; + onClose: () => void; + finalFocus: ComponentProps["finalFocus"]; +}) { + const installation = c.software.query.data?.configurations.find( + (item) => + item.id === command.installationId && + item.companyId === companyId && + item.values.assetId === c.workstation?.values.computerAssetId + ); + + if (!installation) { + return ; + } + if (command.type === "edit-installation") { + return ( + + ); + } + + const product = (id: string) => + c.software.references.references.find( + (item) => item.id === id && (item.scope === "global" || item.companyId === companyId) + ); + + const resource = (id: string) => + c.configurationQueries.resources.data?.resources.find( + (item) => item.id === id && item.companyId === companyId + ); + + return ( + + product(id) || resource(id) ? softwareReferenceHref(companyId, id, product(id)) : undefined + } + resourceName={(id) => product(id)?.name ?? resource(id)?.values.name ?? "—"} + /> + ); +} diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx index 8e9f0ba8..bf28976f 100644 --- a/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx +++ b/modules/companies/src/web/workstations/detail/ui/workplace-software-card.tsx @@ -2,20 +2,24 @@ import { BrowserLink } from "@metis/core/client"; import { LayersIcon } from "@repo/rdx-ui/lib/icons"; import { Badge } from "@repo/shadcn-ui/components/badge"; import { Tooltip, TooltipContent, TooltipTrigger } from "@repo/shadcn-ui/components/tooltip"; +import { cn } from "@repo/shadcn-ui/lib/utils"; import { useTranslation } from "react-i18next"; import type { WorkplaceSoftwareData } from "../helpers/workplace-map-model"; +import { WorkplaceNodeActionsMenu } from "./workplace-node-actions-menu"; + export function WorkplaceSoftwareCard({ data }: { data: WorkplaceSoftwareData }) { const { t } = useTranslation("companies"); return (
); } diff --git a/modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx b/modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx index 19407646..98b07044 100644 --- a/modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx +++ b/modules/companies/src/web/workstations/detail/ui/workplace-visual-map-card.tsx @@ -8,12 +8,14 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { useWorkplaceMapModel } from "../controllers/use-workplace-map-model"; +import { useWorkplaceNodeActions } from "../controllers/use-workplace-node-actions"; import type { WorkstationDetailController } from "../controllers/use-workstation-detail-controller"; import { workplaceMapPreview } from "../helpers/workplace-map-preview"; import { WorkplaceMapCoverage } from "./workplace-map-coverage"; import { WorkplaceMapLegend } from "./workplace-map-legend"; import { WorkplaceMapPresentation } from "./workplace-map-presentation"; +import { WorkplaceNodeActionDialogs } from "./workplace-node-action-dialogs"; import { WorkstationAssets } from "./workstation-assets"; import { WorkstationEquipmentGuidance } from "./workstation-equipment-guidance"; import { WorkstationQueryFeedback } from "./workstation-query-feedback"; @@ -36,6 +38,7 @@ export function WorkplaceVisualMapCard({ const { t } = useTranslation("assets"); const container = useRef(null); const [width, setWidth] = useState(0); + const managementControl = useRef(null); const [adding, setAdding] = useState(false); const addReturn = useRef(null); const [expanded, setExpanded] = useState(false); @@ -48,6 +51,15 @@ export function WorkplaceVisualMapCard({ [model, equipmentKnown, softwareKnown] ); + const nodeActions = useWorkplaceNodeActions({ + companyId, + controller: c, + nodes: preview.nodes, + canEdit, + container, + fallback: managementControl, + }); + useEffect(() => { if (!container.current) { return; @@ -66,7 +78,7 @@ export function WorkplaceVisualMapCard({ if (!model) { return null; } - const { peripherals, nodes: visible } = preview; + const { peripherals } = preview; const addAsset = canEdit && c.workstation && equipmentKnown @@ -82,7 +94,7 @@ export function WorkplaceVisualMapCard({ return ( + } @@ -105,7 +117,11 @@ export function WorkplaceVisualMapCard({ count={model.equipment.length} principalMissing={model.principalState === "missing"} /> - +
{model.principal && ( <> @@ -132,6 +148,14 @@ export function WorkplaceVisualMapCard({ workstation={c.workstation} /> )} + void; + finalFocus?: ComponentProps["finalFocus"]; }) { const { t } = useTranslation("assets"); return ( { if (!open) { diff --git a/modules/resources/package.json b/modules/resources/package.json index cb1f38b2..d1dd4cf2 100644 --- a/modules/resources/package.json +++ b/modules/resources/package.json @@ -11,7 +11,7 @@ }, "scripts": { "typecheck": "tsc -p tsconfig.json", - "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx" + "test": "TSX_TSCONFIG_PATH=../../tsconfig.json node --import tsx --test src/api/application/application-coincidence.test.ts src/api/domain/resource-catalog.test.ts src/api/domain/resource.test.ts src/api/domain/resource-template-propagation.test.ts src/api/application/resource-lifecycle.test.ts src/web/catalog/shared/catalog.test.tsx src/web/resources/shared/resources.test.tsx src/web/resources/list/helpers/resource-columns.test.tsx src/web/resources/shared/resource-values.test.ts src/api/domain/template-sections.test.ts src/web/catalog-fields/select/catalog-field-selection.test.tsx src/api/domain/directory-domain.test.ts src/api/domain/network-share.test.ts src/api/domain/resource-scope.test.ts src/api/infrastructure/persistence/resource-scope-reader.test.ts src/api/application/resource-scope.test.ts src/api/application/resource-reference-contracts.test.ts src/api/domain/global-resource.test.ts src/web/global-applications/shared/global-applications.test.tsx src/api/domain/operating-system-identity.test.ts src/api/application/global-operating-system-contracts.test.ts src/api/application/global-operating-system-policy.test.ts src/web/resources/shared/ui/resource-characteristic-control.test.tsx" }, "dependencies": { "@metis/core": "workspace:*", diff --git a/modules/resources/src/common/locales/en.json b/modules/resources/src/common/locales/en.json index 859fe8a3..4a2d1a64 100644 --- a/modules/resources/src/common/locales/en.json +++ b/modules/resources/src/common/locales/en.json @@ -1,4 +1,15 @@ { + "resourceColumns": { + "groups": { + "general": "General information", + "integration": "Integration", + "audit": "Registration and changes" + }, + "createdAt": "Created at", + "createdBy": "Created by", + "updatedAt": "Last updated", + "updatedBy": "Updated by" + }, "templateIcon": { "label": "Icon", "none": "No icon", diff --git a/modules/resources/src/common/locales/es.json b/modules/resources/src/common/locales/es.json index e8689992..b6b7c56c 100644 --- a/modules/resources/src/common/locales/es.json +++ b/modules/resources/src/common/locales/es.json @@ -1,4 +1,15 @@ { + "resourceColumns": { + "groups": { + "general": "Datos generales", + "integration": "Integración", + "audit": "Registro y cambios" + }, + "createdAt": "Fecha de alta", + "createdBy": "Creado por", + "updatedAt": "Última modificación", + "updatedBy": "Modificado por" + }, "templateIcon": { "label": "Icono", "none": "Sin icono", diff --git a/modules/resources/src/web/resources/list/helpers/resource-additional-columns.tsx b/modules/resources/src/web/resources/list/helpers/resource-additional-columns.tsx new file mode 100644 index 00000000..5cc3d57c --- /dev/null +++ b/modules/resources/src/web/resources/list/helpers/resource-additional-columns.tsx @@ -0,0 +1,111 @@ +import type { EntityColumn } from "@repo/rdx-ui/components/entity-list"; +import type { TFunction } from "i18next"; + +import type { ResourceDTO, ResourceReferenceDTO } from "../../../../common/inventory"; + +/** Campos generales y de integración disponibles sin ampliar la ficha ni consultar su historial completo. */ +export function resourceAdditionalColumns({ + references, + locale, + t, +}: { + references: readonly ResourceReferenceDTO[]; + locale: string; + t: TFunction<"resources">; +}): EntityColumn[] { + const dateFormat = new Intl.DateTimeFormat(locale, { dateStyle: "medium", timeStyle: "short" }); + const referenceNames = new Map(references.map((item) => [item.id, item.name])); + + const mailboxKindOf = (resource: ResourceDTO) => { + const integration = resource.values.integration; + + return integration?.kind === "mailbox" ? t(integration.mailboxKind) : undefined; + }; + + const accountNameOf = (resource: ResourceDTO) => { + const integration = resource.values.integration; + + return integration?.kind === "mailbox" && integration.accountId + ? referenceNames.get(integration.accountId) + : undefined; + }; + + const columns: EntityColumn[] = [ + { + id: "notes", + groupId: "general", + label: t("notes"), + value: (resource) => resource.values.notes, + render: (resource) => + resource.values.notes.trim() ? ( +

+ {resource.values.notes} +

+ ) : null, + }, + ...(["created", "updated"] as const).flatMap((event): EntityColumn[] => { + const revisionOf = (resource: ResourceDTO) => + event === "created" ? resource.history[0] : resource.history.at(-1); + + return [ + { + id: `${event}At`, + groupId: "audit", + label: t(`resourceColumns.${event}At`), + value: (resource) => revisionOf(resource)?.recordedAt, + render: (resource) => { + const revision = revisionOf(resource); + + return revision ? dateFormat.format(new Date(revision.recordedAt)) : null; + }, + }, + { + id: `${event}By`, + groupId: "audit", + label: t(`resourceColumns.${event}By`), + value: (resource) => revisionOf(resource)?.actorName, + render: (resource) => revisionOf(resource)?.actorName, + }, + ]; + }), + { + id: "mailboxKind", + groupId: "integration", + label: t("mailboxKind"), + value: mailboxKindOf, + render: mailboxKindOf, + }, + { + id: "accountId", + groupId: "integration", + label: t("relatedAccount"), + value: accountNameOf, + render: accountNameOf, + }, + ...(["resourceTypeId", "systemId", "environmentId"] as const).map( + (key): EntityColumn => { + const referenceNameOf = (resource: ResourceDTO) => { + const integration = resource.values.integration; + const identity = + integration?.kind === "access" + ? integration[key] + : key === "resourceTypeId" + ? undefined + : resource.directory?.[key]; + + return identity ? referenceNames.get(identity) : undefined; + }; + + return { + id: key, + groupId: "integration", + label: t(key), + value: referenceNameOf, + render: referenceNameOf, + }; + } + ), + ]; + + return columns.map((column) => ({ ...column, defaultVisible: false })); +} diff --git a/modules/resources/src/web/resources/list/helpers/resource-characteristic-columns.ts b/modules/resources/src/web/resources/list/helpers/resource-characteristic-columns.ts new file mode 100644 index 00000000..36b60068 --- /dev/null +++ b/modules/resources/src/web/resources/list/helpers/resource-characteristic-columns.ts @@ -0,0 +1,136 @@ +import type { EntityColumn } from "@repo/rdx-ui/components/entity-list"; +import type { TFunction } from "i18next"; + +import type { CatalogItemDTO } from "../../../../common"; +import type { ResourceCharacteristic, ResourceDTO } from "../../../../common/inventory"; + +/** Une por identidad, conservando también campos de instantáneas que ya no están disponibles en el catálogo. */ +export function resourceCharacteristicColumns({ + resources, + catalog, + locale, + t, +}: { + resources: readonly ResourceDTO[]; + catalog: readonly CatalogItemDTO[]; + locale: string; + t: TFunction<"resources">; +}): EntityColumn[] { + const fields = new Map< + string, + Pick + >(); + const contexts = new Map>(); + + function addContext(fieldId: string, ...labels: string[]) { + const current = contexts.get(fieldId) ?? new Set(); + + for (const label of labels) { + if (label) { + current.add(label); + } + } + contexts.set(fieldId, current); + } + + // Las instantáneas retiradas tienen una etiqueta determinista aunque cambie el orden de las filas. + for (const resource of [...resources].sort((first, second) => + first.id.localeCompare(second.id) + )) { + for (const field of resource.specification.fields) { + if (!fields.has(field.fieldId)) { + fields.set(field.fieldId, field); + } + addContext( + field.fieldId, + field.name, + resource.specification.templateName, + resource.specification.sections?.find((section) => section.id === field.sectionId)?.name ?? + "" + ); + } + } + for (const item of catalog) { + if (item.values.kind === "field" && item.effectiveActive) { + fields.set(item.id, { fieldId: item.id, ...item.values }); + addContext(item.id, item.values.name, item.values.description, item.values.unit); + } + } + addTemplateContexts(catalog, addContext); + const collator = new Intl.Collator(locale, { sensitivity: "base", numeric: true }); + const sorted = [...fields.values()].sort( + (a, b) => collator.compare(a.name, b.name) || a.fieldId.localeCompare(b.fieldId) + ); + + const labelOf = (field: (typeof sorted)[number]) => field.name; + + const labels = sorted.map(labelOf); + const occurrences = new Map(); + + return sorted.map((field) => { + const label = labelOf(field); + const ordinal = (occurrences.get(label) ?? 0) + 1; + + occurrences.set(label, ordinal); + + return { + id: `characteristic-${field.fieldId}`, + // Un grupo principal común evita duplicar campos compartidos entre secciones o plantillas. + groupId: "characteristics", + keywords: [...(contexts.get(field.fieldId) ?? [])].sort(collator.compare), + label: labels.filter((item) => item === label).length > 1 ? `${label} (${ordinal})` : label, + defaultVisible: false, + value: (resource) => + resource.specification.fields.some((item) => item.fieldId === field.fieldId) + ? resource.values.characteristics[field.fieldId] + : undefined, + render: (resource) => { + const snapshot = resource.specification.fields.find( + (item) => item.fieldId === field.fieldId + ); + const value = resource.values.characteristics[field.fieldId]; + + return formatCharacteristic(snapshot, value, locale, t); + }, + }; + }); +} + +function addTemplateContexts( + catalog: readonly CatalogItemDTO[], + addContext: (fieldId: string, ...labels: string[]) => void +) { + for (const item of catalog) { + if (item.values.kind === "template") { + for (const field of item.values.fields) { + addContext( + field.fieldId, + item.values.name, + item.values.sections?.find((section) => section.id === field.sectionId)?.name ?? "" + ); + } + } + } +} + +function formatCharacteristic( + field: ResourceCharacteristic | undefined, + value: ResourceDTO["values"]["characteristics"][string] | undefined, + locale: string, + t: TFunction<"resources"> +) { + if (!field || value === undefined || value === "") { + return null; + } + if (typeof value === "boolean") { + return t(value ? "yes" : "no"); + } + if (field.type === "date" && typeof value === "string") { + return new Intl.DateTimeFormat(locale, { dateStyle: "medium", timeZone: "UTC" }).format( + new Date(`${value}T00:00:00Z`) + ); + } + const formatted = typeof value === "number" ? new Intl.NumberFormat(locale).format(value) : value; + + return field.unit ? `${formatted} ${field.unit}` : formatted; +} diff --git a/modules/resources/src/web/resources/list/helpers/resource-columns.test.tsx b/modules/resources/src/web/resources/list/helpers/resource-columns.test.tsx new file mode 100644 index 00000000..40f4929e --- /dev/null +++ b/modules/resources/src/web/resources/list/helpers/resource-columns.test.tsx @@ -0,0 +1,324 @@ +import assert from "node:assert/strict"; +import { test } from "node:test"; + +import { EntityTable } from "@repo/rdx-ui/components/entity-list"; +import { createInstance } from "i18next"; +import { renderToStaticMarkup } from "react-dom/server"; + +import { CatalogItemSchema } from "../../../../common"; +import type { ResourceDTO, ResourceReferenceDTO } from "../../../../common/inventory"; +import { ResourceSchema } from "../../../../common/inventory"; +import { resourcesEnglish, resourcesSpanish } from "../../../shared"; + +import { resourceAdditionalColumns } from "./resource-additional-columns"; +import { resourceCharacteristicColumns } from "./resource-characteristic-columns"; + +const id = (n: number) => `0199b200-0000-7000-8000-${String(n).padStart(12, "0")}`; + +const fields = [ + { fieldId: id(10), name: "RAM", type: "number", unit: "GB", choices: [], required: false }, + { fieldId: id(11), name: "Webcam", type: "boolean", unit: "", choices: [], required: false }, + { fieldId: id(12), name: "Garantía", type: "date", unit: "", choices: [], required: false }, + { fieldId: id(13), name: "Serie", type: "text", unit: "", choices: [], required: false }, + { fieldId: id(14), name: "Serie", type: "text", unit: "", choices: [], required: false }, +]; +const values = { + name: "Equipo principal", + templateId: id(2), + active: true, + notes: "Notas del equipo", + characteristics: { + [id(10)]: 0, + [id(11)]: false, + [id(12)]: "2024-02-29", + [id(13)]: "SERIE-A", + [id(14)]: "SERIE-B", + }, +}; +const resource = ResourceSchema.parse({ + id: id(3), + companyId: id(1), + values, + specification: { templateId: id(2), templateName: "Portátil", fields }, + history: [ + { id: id(4), actorId: id(5), actorName: "Ana", recordedAt: "2026-01-10T10:00:00.000Z", values }, + { + id: id(6), + actorId: id(5), + actorName: "David", + recordedAt: "2026-10-18T10:00:00.000Z", + values, + }, + ], +}); + +async function translator(language: string) { + const i18n = createInstance(); + + await i18n.init({ + lng: language, + resources: { es: { resources: resourcesSpanish }, en: { resources: resourcesEnglish } }, + }); + + return i18n.getFixedT(language, "resources"); +} + +test("columnas de características de recursos: identidad, campos nuevos de catálogo, instantáneas y nombres repetidos", async () => { + const catalog = [id(12), id(30)].map((identity) => + CatalogItemSchema.parse({ + id: identity, + companyId: null, + builtin: false, + active: true, + effectiveActive: true, + overridden: false, + bindings: [], + values: { + kind: "field", + name: identity === id(12) ? "Garantía renombrada" : "MPN", + type: "text", + unit: "", + choices: [], + description: "", + }, + }) + ); + const columns = resourceCharacteristicColumns({ + resources: [resource, resource], + catalog, + locale: "es", + t: await translator("es"), + }); + + assert.equal(columns.length, 6); + assert.equal(new Set(columns.map((column) => column.id)).size, 6); + assert.ok(columns.every((column) => column.defaultVisible === false)); + assert.equal( + columns.find((column) => column.id === `characteristic-${id(12)}`)?.label, + "Garantía renombrada" + ); + assert.equal( + columns.find((column) => column.id === `characteristic-${id(30)}`)?.render(resource), + null + ); + assert.deepEqual( + columns.filter((column) => column.label.startsWith("Serie")).map((column) => column.label), + ["Serie (1)", "Serie (2)"] + ); + assert.ok( + String( + columns.find((column) => column.id === `characteristic-${id(12)}`)?.render(resource) + ).includes("2024") + ); +}); + +test("columnas elegidas es/en: cero, falso, fecha localizada, unidades y guion para campos ajenos", async () => { + for (const locale of ["es", "en"]) { + const t = await translator(locale); + const columns = resourceCharacteristicColumns({ + resources: [resource], + catalog: [], + locale, + t, + }).map((column) => ({ ...column, defaultVisible: true })); + const other = { + ...resource, + id: id(31), + values: { ...resource.values, characteristics: {} }, + specification: { ...resource.specification, fields: [] }, + }; + const html = renderToStaticMarkup( + + ); + + assert.ok(html.includes("0 GB")); + assert.ok(html.includes(t("no"))); + assert.ok(html.includes("SERIE-A")); + assert.ok(html.includes("SERIE-B")); + assert.ok( + html.includes( + new Intl.DateTimeFormat(locale, { dateStyle: "medium", timeZone: "UTC" }).format( + new Date("2024-02-29T00:00:00Z") + ) + ) + ); + assert.equal((html.match(/>—<\/td>/g) ?? []).length, 5); + assert.equal( + columns.find((column) => column.id === `characteristic-${id(10)}`)?.value?.(resource), + 0 + ); + assert.equal( + columns.find((column) => column.id === `characteristic-${id(11)}`)?.value?.(resource), + false + ); + } +}); + +test("los campos compartidos conservan un único ID y todos sus contextos de catálogo e instantánea", async () => { + const template = (identity: string, name: string, sectionName: string) => + CatalogItemSchema.parse({ + id: identity, + companyId: null, + builtin: false, + active: true, + effectiveActive: true, + overridden: false, + bindings: [], + values: { + kind: "template", + name, + description: "", + sections: [{ id: id(80), name: sectionName, description: "" }], + fields: [{ fieldId: id(10), required: false, sectionId: id(80) }], + }, + }); + + const catalog = [ + template(id(81), "Servidor", "Memoria"), + template(id(82), "Sobremesa", "Rendimiento"), + ]; + const t = await translator("es"); + const columns = resourceCharacteristicColumns({ + resources: [resource, resource], + catalog, + locale: "es", + t, + }); + const ram = columns.find((column) => column.id === `characteristic-${id(10)}`); + + assert.equal(columns.filter((column) => column.id === ram?.id).length, 1); + assert.equal(ram?.groupId, "characteristics"); + for (const keyword of ["Servidor", "Sobremesa", "Memoria", "Rendimiento", "Portátil", "RAM"]) { + assert.ok(ram?.keywords?.includes(keyword), keyword); + } + assert.deepEqual( + resourceCharacteristicColumns({ + resources: [resource], + catalog: [...catalog].reverse(), + locale: "es", + t, + }).map((column) => [column.id, column.label, column.keywords]), + columns.map((column) => [column.id, column.label, column.keywords]) + ); + + const historicalAsset = { + ...resource, + id: id(88), + specification: { + ...resource.specification, + templateName: "Plantilla retirada", + fields: resource.specification.fields.map((field) => + field.fieldId === id(10) ? { ...field, name: "Memoria histórica" } : field + ), + }, + }; + + const historicalColumns = (items: readonly ResourceDTO[]) => + resourceCharacteristicColumns({ resources: items, catalog: [], locale: "es", t }).map( + (column) => [column.id, column.label, column.keywords] + ); + + assert.deepEqual( + historicalColumns([resource, historicalAsset]), + historicalColumns([historicalAsset, resource]) + ); + assert.ok( + resourceCharacteristicColumns({ + resources: [historicalAsset, resource], + catalog: [], + locale: "es", + t, + }) + .find((column) => column.id === `characteristic-${id(10)}`) + ?.keywords?.includes("Memoria histórica") + ); +}); + +test("columnas generales e integración es/en: notas, fechas, autores y referencias semánticas", async () => { + for (const locale of ["es", "en"]) { + const t = await translator(locale); + const references = [ + { + id: id(90), + kind: "account", + name: "administracion@ejemplo.test", + active: false, + systemId: null, + }, + { id: id(91), kind: "system", name: "Directorio", active: true, systemId: null }, + { id: id(92), kind: "environment", name: "Producción", active: true, systemId: id(91) }, + { + id: id(93), + kind: "resource_type", + name: "Carpeta compartida", + active: true, + systemId: null, + }, + ] satisfies ResourceReferenceDTO[]; + const columns = resourceAdditionalColumns({ references, locale, t }); + const mailbox = { + ...resource, + values: { + ...resource.values, + integration: { + kind: "mailbox", + addressFieldId: id(94), + contextFieldId: id(95), + mailboxKind: "corporate", + accountId: id(90), + }, + }, + } satisfies ResourceDTO; + const access = { + ...resource, + values: { + ...resource.values, + integration: { + kind: "access", + referenceFieldId: id(94), + resourceTypeId: id(93), + systemId: id(91), + environmentId: id(92), + }, + }, + } satisfies ResourceDTO; + + const value = (columnId: string, item: ResourceDTO) => + columns.find((column) => column.id === columnId)?.value?.(item); + + assert.ok(columns.every((column) => column.defaultVisible === false)); + assert.equal(value("mailboxKind", mailbox), t("corporate")); + assert.equal(value("accountId", mailbox), "administracion@ejemplo.test"); + assert.equal(value("accountId", resource), undefined); + assert.equal(value("resourceTypeId", access), "Carpeta compartida"); + assert.equal(value("systemId", access), "Directorio"); + assert.equal(value("environmentId", access), "Producción"); + assert.equal( + value("systemId", { + ...resource, + directory: { + capability: "directory:domain", + normalizedDns: "ejemplo.test", + systemId: id(91), + environmentId: id(92), + }, + }), + "Directorio" + ); + const html = renderToStaticMarkup( + ({ ...column, defaultVisible: true }))} + items={[mailbox, access, resource]} + locale={locale} + title="Recursos" + /> + ); + + assert.ok(html.includes("Ana")); + assert.ok(html.includes("David")); + assert.ok(html.includes("Notas del equipo")); + assert.ok(html.includes("administracion@ejemplo.test")); + assert.ok(html.includes(">—")); + assert.equal(html.includes("resourceColumns."), false); + } +}); diff --git a/modules/resources/src/web/resources/list/ui/resource-inventory-table.tsx b/modules/resources/src/web/resources/list/ui/resource-inventory-table.tsx index bd3f36a0..c59a9964 100644 --- a/modules/resources/src/web/resources/list/ui/resource-inventory-table.tsx +++ b/modules/resources/src/web/resources/list/ui/resource-inventory-table.tsx @@ -13,6 +13,8 @@ import { useTranslation } from "react-i18next"; import { ResourceTemplateIcon } from "../../../catalog-templates/shared/ui/resource-template-icon"; import type { useResourcesPageController } from "../controllers"; +import { resourceAdditionalColumns } from "../helpers/resource-additional-columns"; +import { resourceCharacteristicColumns } from "../helpers/resource-characteristic-columns"; export function ResourceInventoryTable({ controller, @@ -49,9 +51,16 @@ export function ResourceInventoryTable({ return ( item.values.name, hideable: false, @@ -82,6 +91,7 @@ export function ResourceInventoryTable({ }, { id: "template", + groupId: "general", label: t("template"), value: (item) => item.specification.templateName, render: (item) => { @@ -101,6 +111,7 @@ export function ResourceInventoryTable({ }, { id: "state", + groupId: "general", label: t("status"), value: (item) => t(item.values.active ? "active" : "inactive"), render: (item) => ( @@ -109,8 +120,20 @@ export function ResourceInventoryTable({ ), }, + ...resourceAdditionalColumns({ + references: query.data?.references ?? [], + locale: i18n.language, + t, + }), + ...resourceCharacteristicColumns({ + resources: denied ? [] : (query.data?.resources ?? []), + catalog: catalog.data?.items ?? [], + locale: i18n.language, + t, + }), { id: "actions", + groupId: "general", label: t("actions"), hideable: false, render: (item) => ( diff --git a/package.json b/package.json index 06010745..97ab56da 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "test:global-software": "python3 scripts/resource-scope-test.py --software --regressions", "test:application-coincidences": "python3 scripts/resource-scope-test.py --coincidences --regressions", "test:global-profiles": "python3 scripts/resource-scope-test.py --profiles --regressions", - "test:global-operating-systems": "python3 scripts/resource-scope-test.py --operating-systems --regressions" + "test:global-operating-systems": "python3 scripts/resource-scope-test.py --operating-systems --regressions", + "test:global-operating-systems:closure": "python3 scripts/resource-scope-test.py --operating-systems-closure --regressions" }, "devDependencies": { "@biomejs/biome": "2.4.11", diff --git a/scripts/__pycache__/workplace-visual-map.test.cpython-312.pyc b/scripts/__pycache__/workplace-visual-map.test.cpython-312.pyc new file mode 100644 index 00000000..016c2f1a Binary files /dev/null and b/scripts/__pycache__/workplace-visual-map.test.cpython-312.pyc differ diff --git a/scripts/global-operating-systems-ui-audit.py b/scripts/global-operating-systems-ui-audit.py index e7ebcda0..082d5f04 100644 --- a/scripts/global-operating-systems-ui-audit.py +++ b/scripts/global-operating-systems-ui-audit.py @@ -34,6 +34,16 @@ def verify(context, fixture, admin_password): def shot(client, name): screenshots.append(capture(client, directory, 'global-os-' + name)) + def text_contrast(client, selector): + return context['result_json'](code(client, """return await page.evaluate(selector=>{ + const canvas=document.createElement('canvas');canvas.width=canvas.height=1;const ctx=canvas.getContext('2d',{willReadFrequently:true}); + const rgba=color=>{ctx.clearRect(0,0,1,1);ctx.fillStyle=color;ctx.fillRect(0,0,1,1);return [...ctx.getImageData(0,0,1,1).data].map((v,i)=>i===3?v/255:v)}; + const over=(a,b)=>{const alpha=a[3]+b[3]*(1-a[3]);return [...a.slice(0,3).map((v,i)=>(v*a[3]+b[i]*b[3]*(1-a[3]))/alpha),alpha]}; + const bg=e=>e?over(rgba(getComputedStyle(e).backgroundColor),bg(e.parentElement)):[255,255,255,1]; + const lum=c=>c.slice(0,3).map(v=>v/255).map(v=>v<=.04045?v/12.92:((v+.055)/1.055)**2.4).reduce((sum,v,i)=>sum+v*[.2126,.7152,.0722][i],0); + return [...document.querySelectorAll(selector)].filter(e=>e.getBoundingClientRect().width&&e.innerText.trim()).map(e=>{const a=lum(over(rgba(getComputedStyle(e).color),bg(e))),b=lum(bg(e));return {text:e.innerText.slice(0,80),ratio:(Math.max(a,b)+.05)/(Math.min(a,b)+.05)}}); + },""" + json.dumps(selector) + ");")) + def report(): data = {'checks': checks, 'screenshots': screenshots, 'measurements': measurements, 'database': 'metis_desk_test', 'companies': 15, 'principal': {'people': 50, 'assetsAtLeast': 50, 'resourcesAtLeast': 50, 'profiles': 50, 'workstations': 50}, @@ -87,14 +97,7 @@ def verify(context, fixture, admin_password): tool(client, 'browser_resize', {'width': width, 'height': 1000 if width > 768 else 844}) code(client, "if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error('Desbordamiento de página');") shot(client, f'list-{theme}-{width}') - contrast = context['result_json'](code(client, """return await page.evaluate(()=>{ - const canvas=document.createElement('canvas');canvas.width=canvas.height=1;const ctx=canvas.getContext('2d',{willReadFrequently:true}); - const rgba=color=>{ctx.clearRect(0,0,1,1);ctx.fillStyle=color;ctx.fillRect(0,0,1,1);return [...ctx.getImageData(0,0,1,1).data].map((v,i)=>i===3?v/255:v)}; - const over=(a,b)=>{const alpha=a[3]+b[3]*(1-a[3]);return [...a.slice(0,3).map((v,i)=>(v*a[3]+b[i]*b[3]*(1-a[3]))/alpha),alpha]}; - const bg=e=>e?over(rgba(getComputedStyle(e).backgroundColor),bg(e.parentElement)):[255,255,255,1]; - const lum=c=>c.slice(0,3).map(v=>v/255).map(v=>v<=.04045?v/12.92:((v+.055)/1.055)**2.4).reduce((sum,v,i)=>sum+v*[.2126,.7152,.0722][i],0); - return [...document.querySelectorAll('main h1,main p,main table a,main th')].filter(e=>e.getBoundingClientRect().width&&e.innerText.trim()).map(e=>{const a=lum(over(rgba(getComputedStyle(e).color),bg(e))),b=lum(bg(e));return {text:e.innerText.slice(0,80),ratio:(Math.max(a,b)+.05)/(Math.min(a,b)+.05)}}); - });""")) + contrast = text_contrast(client, 'main h1,main p,main table a,main th') if not contrast or any(item['ratio'] < 4.5 for item in contrast): raise RuntimeError('Contraste de texto insuficiente en ' + theme + ': ' + json.dumps(contrast)) measurements.append({'theme': theme, 'contrast': contrast}) @@ -178,6 +181,43 @@ def verify(context, fixture, admin_password): shot(client, 'mixed-picker') checks.append('mixed-picker-global-local-no-replacement') code(client, "await page.keyboard.press('Escape'); await page.keyboard.press('Escape');") + # Revalida los consumidores y diálogos modificados después del cierre anterior. + for theme in ['light', 'dark']: + for width in [320, 390, 768, 1280, 1600]: + tool(client, 'browser_resize', {'width': width, 'height': 1000 if width > 768 else 844}) + tool(client, 'browser_navigate', {'url': asset_url}) + code(client, "await page.locator('[data-current-operating-systems]').getByRole('link',{name:'Windows 11 Pro',exact:true}).first().waitFor(); await page.evaluate(theme=>document.documentElement.classList.toggle('dark',theme==='dark')," + json.dumps(theme) + "); if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error('Overflow activo');") + shot(client, f'consumer-asset-{theme}-{width}') + tool(client, 'browser_navigate', {'url': station_url}) + code(client, "await page.locator('[data-workplace-software] a[href=\"" + global_href + "\"]').waitFor(); await page.evaluate(theme=>document.documentElement.classList.toggle('dark',theme==='dark')," + json.dumps(theme) + "); await page.locator('[data-workplace-map]').scrollIntoViewIfNeeded(); if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error('Overflow puesto');") + code(client, "page.osNode=page.locator('[data-workplace-software]').filter({has:page.locator('a[href=\"" + global_href + "\"]')}); await page.osNode.locator('[data-workplace-node-menu]').focus(); await page.keyboard.press('Enter'); await page.getByRole('menu').waitFor(); await page.keyboard.press('ArrowDown'); if(!await page.evaluate(()=>!!document.activeElement?.closest('[role=menu]')))throw Error('Teclado menú');") + shot(client, f'consumer-menu-{theme}-{width}') + contrast = text_contrast(client, '[role=menuitem]') + if not contrast or any(item['ratio'] < 4.5 for item in contrast): + raise RuntimeError('Contraste del menú insuficiente: ' + json.dumps(contrast)) + focus = context['result_json'](code(client, "return await page.evaluate(()=>{const style=getComputedStyle(document.activeElement);return {outline:style.outlineWidth,shadow:style.boxShadow}});")) + if focus['outline'] == '0px' and focus['shadow'] == 'none': + raise RuntimeError('Foco sin indicador visible') + measurements.append({'consumerMenu': width, 'theme': theme, 'contrast': contrast, 'focus': focus}) + code(client, "await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click(); await page.getByRole('dialog').locator('a[href=\"" + global_href + "\"]').waitFor(); if(await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth+1))throw Error('Overflow historial');") + shot(client, f'consumer-history-{theme}-{width}') + code(client, "await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden'}); if(!await page.osNode.locator('[data-workplace-node-menu]').evaluate(el=>el===document.activeElement))throw Error('Foco historial'); await page.keyboard.press('Enter'); await page.getByRole('menuitem',{name:'Editar instalación',exact:true}).click(); await page.getByRole('dialog').getByRole('textbox',{name:'Versión',exact:true}).waitFor(); await page.keyboard.press('Tab'); if(!await page.evaluate(()=>!!document.activeElement?.closest('[role=dialog]')))throw Error('Tab diálogo');") + shot(client, f'consumer-editor-{theme}-{width}') + code(client, "await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden'}); if(!await page.osNode.locator('[data-workplace-node-menu]').evaluate(el=>el===document.activeElement))throw Error('Foco edición');") + measurements.append({'consumerViewport': width, 'theme': theme, 'overflow': False, 'keyboardMenu': True, 'dialogTab': True, 'focusReturn': True}) + checks.extend(['consumer-asset-workstation-light-dark-320-390-768-1280-1600', 'map-global-os-menu-keyboard', 'map-installation-history-global-reference', 'map-installation-editor-tab-escape-focus']) + tool(client, 'browser_resize', {'width': 1280, 'height': 1000}) + code(client, "await page.osNode.locator('[data-workplace-node-menu]').click(); await page.getByRole('menuitem',{name:'Editar instalación',exact:true}).click(); await page.getByRole('textbox',{name:'Versión',exact:true}).fill('25H2'); await page.getByRole('button',{name:'Guardar',exact:true}).click(); await page.getByRole('dialog').waitFor({state:'hidden'}); await page.locator('[data-current-operating-systems]').getByText('Versión 25H2',{exact:true}).waitFor();") + shot(client, 'consumer-version-updated') + checks.append('version-save-refreshes-workstation') + tool(client, 'browser_navigate', {'url': asset_url}) + code(client, "await page.locator('[data-current-operating-systems]').getByText('Versión 25H2',{exact:true}).waitFor(); await page.locator('[data-current-operating-systems]').locator('a[href=\"/companies/" + company + "/resources/" + local['id'] + "\"]').click(); await page.getByRole('heading',{name:'Windows 11 Pro',exact:true}).waitFor();") + checks.append('version-refreshes-asset-local-navigation-preserved') + tool(client, 'browser_navigate', {'url': station_url}) + code(client, "await page.getByLabel('Menú de usuario',{exact:true}).click(); await page.getByRole('combobox',{name:'Idioma',exact:true}).click(); await page.getByRole('option',{name:'English',exact:true}).click(); await page.getByLabel('User menu',{exact:true}).click(); await page.locator('[data-workplace-software]').filter({has:page.locator('a[href=\"" + global_href + "\"]')}).locator('[data-workplace-node-menu]').click(); await page.getByRole('menuitem',{name:'Edit installation',exact:true}).click(); await page.getByRole('textbox',{name:'Version',exact:true}).waitFor();") + shot(client, 'consumer-english-editor') + code(client, "await page.keyboard.press('Escape'); await page.getByRole('dialog').waitFor({state:'hidden'});") + checks.append('consumer-english-menu-editor') finally: report() print('SO global: recorrido MCP verificado. Evidencias: ' + str(directory.relative_to(context['ROOT'])), flush=True) diff --git a/scripts/resource-scope-test.py b/scripts/resource-scope-test.py index d33420d6..973fb6a0 100644 --- a/scripts/resource-scope-test.py +++ b/scripts/resource-scope-test.py @@ -23,6 +23,7 @@ def main(): parser.add_argument("--preflight", action="store_true") parser.add_argument("--coincidences", action="store_true", help="Ejecuta R2.6 de solo lectura en MariaDB desechable") parser.add_argument("--profiles", action="store_true", help="Ejecuta R2.5 sobre MariaDB desechable") + parser.add_argument("--operating-systems-closure", action="store_true", help="Cierre DB-SO, evolución y concurrencia en MariaDB desechable") parser.add_argument("--operating-systems", action="store_true", help="Ejecuta SO globales en MariaDB desechable") parser.add_argument("--software", action="store_true", help="Ejecuta R2.4 sobre MariaDB desechable") parser.add_argument("--catalog", action="store_true", help="Ejecuta R2.3 sobre MariaDB desechable") @@ -30,7 +31,7 @@ def main(): parser.add_argument("--regressions", action="store_true", help="Ejecuta las regresiones HTTP/MariaDB sobre el esquema expandido") parser.add_argument("--monorepo", action="store_true", help="Añade tests de paquetes sin cargar .env") options = parser.parse_args() - artifacts = ROOT / (".artifacts/resources-global-operating-systems" if options.operating_systems else ".artifacts/resources-global-scope/r2-6" if options.coincidences else ".artifacts/resources-global-scope/r2-5" if options.profiles else ".artifacts/resources-global-scope/r2-4" if options.software else (".artifacts/resources-global-scope/r2-3" if options.catalog else (".artifacts/resources-global-scope/r2-2" if options.security else ".artifacts/resources-global-scope/r2-1b"))) + artifacts = ROOT / (".artifacts/resources-global-operating-systems-closure" if options.operating_systems_closure else ".artifacts/resources-global-operating-systems" if options.operating_systems else ".artifacts/resources-global-scope/r2-6" if options.coincidences else ".artifacts/resources-global-scope/r2-5" if options.profiles else ".artifacts/resources-global-scope/r2-4" if options.software else (".artifacts/resources-global-scope/r2-3" if options.catalog else (".artifacts/resources-global-scope/r2-2" if options.security else ".artifacts/resources-global-scope/r2-1b"))) artifacts.mkdir(parents=True, exist_ok=True) container = "metis-scope-test-" + uuid.uuid4().hex[:12] password = secrets.token_urlsafe(32) @@ -55,7 +56,7 @@ def main(): "DB_NAME": "metis_desk_test", "DB_USER": "scope_test", "DB_PASSWORD": password, "NODE_ENV": "test", "SESSION_SECRET": secrets.token_urlsafe(48), "APP_ORIGIN": "http://localhost:5173", "METIS_RESOURCE_SCOPE_PRIVATE": temporary, "METIS_RESOURCE_SCOPE_DISPOSABLE": container, "METIS_RESOURCE_SCOPE_ARTIFACTS": str(artifacts)} - target = "apps/server/src/global-operating-systems.integration.test.ts" if options.operating_systems else "apps/server/src/application-coincidences.integration.test.ts" if options.coincidences else "apps/server/src/global-profile-applications.integration.test.ts" if options.profiles else "apps/server/src/global-software.integration.test.ts" if options.software else "apps/server/src/resource-scope.preflight.ts" if options.preflight else ("apps/server/src/global-applications.integration.test.ts" if options.catalog else ("apps/server/src/resource-authorization.integration.test.ts" if options.security else "apps/server/src/resource-scope.integration.test.ts")) + target = "apps/server/src/global-operating-systems-closure.integration.test.ts" if options.operating_systems_closure else "apps/server/src/global-operating-systems.integration.test.ts" if options.operating_systems else "apps/server/src/application-coincidences.integration.test.ts" if options.coincidences else "apps/server/src/global-profile-applications.integration.test.ts" if options.profiles else "apps/server/src/global-software.integration.test.ts" if options.software else "apps/server/src/resource-scope.preflight.ts" if options.preflight else ("apps/server/src/global-applications.integration.test.ts" if options.catalog else ("apps/server/src/resource-authorization.integration.test.ts" if options.security else "apps/server/src/resource-scope.integration.test.ts")) args = ["node", "--import", "tsx"] if not options.preflight: args += ["--test", "--test-isolation=none"] diff --git a/scripts/workplace-visual-map.test.py b/scripts/workplace-visual-map.test.py index 28eee09f..0e2785c9 100644 --- a/scripts/workplace-visual-map.test.py +++ b/scripts/workplace-visual-map.test.py @@ -36,8 +36,8 @@ class WorkplaceVisualMapTests(BASE['WorkstationDashboardTests']): self.tool('browser_resize', {'width': width, 'height': height}) self.map_ready(pending=True) self.code("await page.getByRole('heading',{name:'Mapa visual del puesto',exact:true}).scrollIntoViewIfNeeded();return true;") - geometry = self.code("""return await page.evaluate(()=>{ - const map=document.querySelector('[data-workplace-map]');const box=map.getBoundingClientRect(); + geometry = self.code("""return await page.locator('[data-workplace-map]').evaluate(map=>{ + const box=map.getBoundingClientRect(); const nodes=[...map.querySelectorAll('article')].map(e=>{const b=e.getBoundingClientRect();return {text:e.innerText,kind:e.dataset.workplaceEquipment??'software',x:b.x,y:b.y,width:b.width,height:b.height,scrollWidth:e.scrollWidth,clientWidth:e.clientWidth,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight}}); const canvas=map.querySelector('[data-workplace-canvas]')?.getBoundingClientRect();const heading=map.querySelector('.react-flow__node-softwareHeading');const h=heading?.getBoundingClientRect();return {viewport:innerWidth,scrollWidth:document.documentElement.scrollWidth,mapWidth:box.width,canvas:!!canvas,canvasBounds:canvas?{left:canvas.left,right:canvas.right,top:canvas.top,bottom:canvas.bottom,height:canvas.height}:null,heading:h?{x:h.x,y:h.y,width:h.width,height:h.height,text:heading.innerText,tabIndex:heading.getAttribute('tabindex')}:null,handlesHidden:[...map.querySelectorAll('.react-flow__handle')].every(e=>getComputedStyle(e).opacity==='0'),nodes,edges:map.querySelectorAll('.react-flow__edge').length}; });""") @@ -186,6 +186,7 @@ class WorkplaceVisualMapTests(BASE['WorkstationDashboardTests']): self.record('refetch-retained', retained) self.code("page.__mapSoftwareFailure=true;await page.evaluate(()=>{Object.defineProperty(document,'visibilityState',{configurable:true,value:'hidden'});window.dispatchEvent(new Event('visibilitychange'));Object.defineProperty(document,'visibilityState',{configurable:true,value:'visible'});window.dispatchEvent(new Event('visibilitychange'));delete document.visibilityState;});await page.getByRole('region',{name:'Mapa visual del puesto',exact:true}).getByRole('alert').first().waitFor();return true;") self.assertEqual(self.code("return await page.locator('[data-workplace-coverage=software]').count();"),0) + self.code("await page.waitForFunction(()=>document.querySelectorAll('[data-workplace-map] article').length===5);return true;") self.assertEqual(self.code("return await page.locator('[data-workplace-map] article').count();"),5) self.capture('software-stale-no-total') @@ -209,6 +210,175 @@ class WorkplaceVisualMapTests(BASE['WorkstationDashboardTests']): for value in values['results']: self.assertGreaterEqual(value['contrast'],4.5,value['text']) + def node_actions_ready(self): + self.tool('browser_resize', {'width':1440,'height':900}) + self.map_ready(pending=True) + self.code("await page.locator('[data-workplace-equipment=principal] [data-workplace-node-menu]').waitFor();return true;") + + def open_node_menu(self, selector, keyboard=False): + self.code("const button=page.locator("+json.dumps(selector)+").getByRole('button',{name:/^Acciones de/});"+("await button.focus();await button.press('Enter');" if keyboard else "await button.click();")+"await page.getByRole('menu').waitFor();return true;") + + def node_menu_contrast(self): + values=self.code("""return await page.getByRole('menu').evaluate(menu=>{ + const canvas=document.createElement('canvas');canvas.width=canvas.height=1;const ctx=canvas.getContext('2d',{willReadFrequently:true}); + const rgba=color=>{ctx.clearRect(0,0,1,1);ctx.fillStyle=color;ctx.fillRect(0,0,1,1);return [...ctx.getImageData(0,0,1,1).data].map((x,i)=>i===3?x/255:x)}; + const over=(a,b)=>{const alpha=a[3]+b[3]*(1-a[3]);return [...a.slice(0,3).map((v,i)=>(v*a[3]+b[i]*b[3]*(1-a[3]))/alpha),alpha]}; + const bg=e=>e?over(rgba(getComputedStyle(e).backgroundColor),bg(e.parentElement)):[255,255,255,1]; + const luminance=c=>c.slice(0,3).map(x=>x/255).map(x=>x<=.04045?x/12.92:((x+.055)/1.055)**2.4).reduce((a,x,i)=>a+x*[.2126,.7152,.0722][i],0); + const ratio=(a,b)=>{const l=[luminance(a),luminance(b)].sort((a,b)=>b-a);return (l[0]+.05)/(l[1]+.05)}; + return [...menu.querySelectorAll('[role=menuitem]')].map(e=>({text:e.innerText,contrast:ratio(over(rgba(getComputedStyle(e).color),bg(e)),bg(e))})); + });""") + for item in values: + self.assertGreaterEqual(item['contrast'],4.5,item['text']) + return values + + def software_http(self, path, body=None): + return self.code("""const origin=__ORIGIN__,path=__PATH__,data=__BODY__; + const session=await page.request.get(origin+'/api/auth/session');const {csrfToken}=await session.json(); + const response=data===null?await page.request.get(origin+'/api'+path,{headers:{'X-Metis-Resources-Contract':'3'}}):await page.request.post(origin+'/api'+path,{data,headers:{origin,'x-csrf-token':csrfToken,'X-Metis-Resources-Contract':'3'}}); + if(!response.ok())throw Error('HTTP sintético '+response.status());return response.json();""".replace('__ORIGIN__',json.dumps(self.origin)).replace('__PATH__',json.dumps(path)).replace('__BODY__',json.dumps(body))) + + def test_node_actions_navigation_keyboard_and_dialogs(self): + self.node_actions_ready() + principal='[data-workplace-equipment=principal]' + peripheral='[data-workplace-equipment=associated]' + before=self.code("return {url:page.url(),camera:await page.locator('.react-flow__viewport').getAttribute('style')};") + self.open_node_menu(principal,keyboard=True) + labels=self.code("return await page.getByRole('menuitem').allTextContents();") + self.assertEqual(labels,['Abrir ficha del activo','Editar activo','Gestionar equipamiento del puesto','Gestionar software del principal','Gestionar soporte del activo','Historial del activo']) + keyboard=self.code("await page.keyboard.press('ArrowDown');return await page.evaluate(()=>({role:document.activeElement.getAttribute('role'),text:document.activeElement.textContent,outline:getComputedStyle(document.activeElement).outlineStyle}));") + self.assertEqual(keyboard['role'],'menuitem') + self.code("await page.keyboard.press('Escape');return true;") + self.assertTrue(self.code("return await page.locator('[data-workplace-equipment=principal] [data-workplace-node-menu]').evaluate(e=>e===document.activeElement);")) + self.code("await page.keyboard.press('Space');await page.getByRole('menu').waitFor();await page.keyboard.press('Escape');return true;") + self.open_node_menu(peripheral) + self.assertNotIn('Gestionar software del principal',self.code("return await page.getByRole('menuitem').allTextContents();")) + self.code("await page.getByRole('menuitem',{name:'Editar activo',exact:true}).click();await page.getByRole('dialog',{name:'Editar activo',exact:true}).waitFor();return true;") + self.capture('WD045-asset-editor') + self.code("await page.getByRole('dialog').getByRole('button',{name:'Cancelar',exact:true}).click();await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + self.assertTrue(self.code("return await page.locator('[data-workplace-equipment=associated] [data-workplace-node-menu]').evaluate(e=>e===document.activeElement);")) + for action,title in [('Historial del activo',None),('Gestionar soporte del activo','Gestionar soporte'),('Gestionar equipamiento del puesto','Editar puesto'),('Gestionar software del principal',None)]: + self.open_node_menu(principal) + self.code("await page.getByRole('menuitem',{name:"+json.dumps(action)+",exact:true}).click();await page.getByRole('dialog').waitFor();return true;") + if title: + self.assertEqual(self.code("return await page.getByRole('dialog').getAttribute('aria-labelledby').then(async id=>page.locator('[id='+JSON.stringify(id)+']').textContent());").strip(),title) + self.capture('WD045-'+action.replace(' ','-')) + self.code("await page.keyboard.press('Escape');await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + after=self.code("return {url:page.url(),camera:await page.locator('.react-flow__viewport').getAttribute('style')};") + self.assertEqual(before,after) + self.record('WD045-keyboard-and-camera',{'keyboard':keyboard,'before':before,'after':after}) + self.assertEqual(self.code("return await page.locator('[data-workplace-add] [data-workplace-node-menu]').count();"),0) + self.open_node_menu(peripheral) + href=self.code("return await page.getByRole('menuitem',{name:'Abrir ficha del activo',exact:true}).getAttribute('href');") + self.code("await page.getByRole('menuitem',{name:'Abrir ficha del activo',exact:true}).click();await page.locator('main h1').waitFor();return true;") + self.assertTrue(self.code("return page.url();").endswith(href)) + + def test_node_actions_mutations_history_and_error(self): + self.node_actions_ready() + company=self.fixture['companyId'] + inventory=self.api('/assets/'+company) + station=next(w for w in inventory['workstations'] if w['id']==self.fixture['main']) + member=next(a for a in inventory['assets'] if a['id'] in station['values']['assetIds'] and a['id']!=self.fixture['host']) + software=self.software_http('/software-installations/'+company) + installation=next(i for i in software['configurations'] if i['values']['assetId']==self.fixture['host'] and i['values']['state']=='configured') + peripheral='[data-workplace-node-id='+json.dumps('asset:'+member['id'])+']' + installed='[data-workplace-node-id='+json.dumps('software:'+installation['id'])+']' + try: + self.open_node_menu(peripheral) + self.code("await page.getByRole('menuitem',{name:'Editar activo',exact:true}).click();await page.getByRole('dialog',{name:'Editar activo',exact:true}).getByRole('textbox',{name:'Nombre',exact:true}).fill('MON-WD045 · Nombre largo de administración y documentación con tildes');return true;") + pattern='**/api/assets/'+company+'/'+member['id']+'/update' + self.code("await page.route("+json.dumps(pattern)+",r=>r.fulfill({status:500,json:{code:'INTERNAL_ERROR'}}));await page.getByRole('dialog').getByRole('button',{name:'Guardar',exact:true}).click();await page.getByRole('dialog').getByRole('alert').waitFor();return true;") + self.capture('WD045-asset-save-error') + self.code("await page.unroute("+json.dumps(pattern)+");await page.getByRole('dialog').getByRole('button',{name:'Guardar',exact:true}).click();await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + saved=self.api('/assets/'+company) + changed=next(a for a in saved['assets'] if a['id']==member['id']) + unchanged=next(w for w in saved['workstations'] if w['id']==station['id']) + self.assertEqual(changed['values']['name'],'MON-WD045 · Nombre largo de administración y documentación con tildes') + self.assertEqual(unchanged['values'],station['values']) + self.assertEqual(len(changed['history']),len(member['history'])+1) + self.assertTrue(self.code("return await page.locator("+json.dumps(peripheral)+").getByRole('button',{name:/^Acciones de/}).evaluate(e=>e===document.activeElement);")) + self.open_node_menu(peripheral) + self.capture('WD045-long-name-menu') + self.code("await page.keyboard.press('Escape');return true;") + self.open_node_menu(installed,keyboard=True) + self.code("await page.getByRole('menuitem',{name:'Editar instalación',exact:true}).click();await page.getByRole('dialog',{name:'Editar instalación',exact:true}).getByRole('textbox',{name:'Versión',exact:true}).fill('WD04.5-validated');await page.getByRole('dialog').getByRole('button',{name:'Guardar',exact:true}).click();await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + updated=next(i for i in self.software_http('/software-installations/'+company)['configurations'] if i['id']==installation['id']) + self.assertEqual(updated['values']['version'],'WD04.5-validated') + self.assertEqual(updated['values']['resourceId'],installation['values']['resourceId']) + self.assertEqual(len(updated['history']),len(installation['history'])+1) + self.open_node_menu(installed) + self.code("await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click();await page.getByRole('dialog').getByText('Versión: WD04.5-validated',{exact:true}).first().waitFor();return true;") + self.capture('WD045-installation-history') + self.code("await page.keyboard.press('Escape');return true;") + self.record('WD045-real-writes',{'assetHistory':len(changed['history']),'installationHistory':len(updated['history']),'compositionPreserved':unchanged['values']==station['values']}) + finally: + self.code("await page.unroute("+json.dumps('**/api/assets/'+company+'/'+member['id']+'/update')+");return true;") + self.api('/assets/'+company+'/'+member['id']+'/update',{'values':member['values']}) + self.software_http('/software-installations/'+company+'/'+installation['id']+'/update',{'values':installation['values']}) + + def test_node_actions_composition_conflict_and_context(self): + self.node_actions_ready() + company=self.fixture['companyId'] + inventory=self.api('/assets/'+company) + station=next(w for w in inventory['workstations'] if w['id']==self.fixture['main']) + try: + self.open_node_menu('[data-workplace-equipment=principal]') + self.code("await page.getByRole('menuitem',{name:'Gestionar equipamiento del puesto',exact:true}).click();await page.getByRole('dialog',{name:'Editar puesto',exact:true}).waitFor();return true;") + self.api('/assets/'+company+'/workstations/'+station['id']+'/update',{'values':dict(station['values'],name='WD04.5 cambio concurrente')}) + self.code("await page.getByRole('dialog').getByRole('button',{name:'Guardar',exact:true}).click();await page.getByRole('dialog').getByRole('alert').filter({hasText:'Otro usuario ha modificado'}).waitFor();return true;") + self.capture('WD045-composition-conflict') + self.code("await page.getByRole('button',{name:'Actualizar puesto y revisar selección',exact:true}).click();await page.getByRole('dialog').getByRole('textbox',{name:'Nombre',exact:true}).fill('WD04.5 composición revisada');await page.getByRole('dialog').getByRole('button',{name:'Guardar',exact:true}).click();await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + current=next(w for w in self.api('/assets/'+company)['workstations'] if w['id']==station['id']) + self.assertEqual(current['values']['assetIds'],station['values']['assetIds']) + self.assertEqual(current['values']['computerAssetId'],station['values']['computerAssetId']) + self.open_node_menu('[data-workplace-software] >> nth=0') + self.code("await page.getByRole('menuitem',{name:'Historial de la instalación',exact:true}).click();await page.getByRole('dialog').waitFor();return true;") + replacement=next(a for a in station['values']['assetIds'] if a!=self.fixture['host']) + self.api('/assets/'+company+'/workstations/'+station['id']+'/update',{'values':dict(current['values'],computerAssetId=replacement)}) + self.code("const response=page.waitForResponse(r=>r.url().endsWith('/api/assets/"+company+"')&&r.status()===200);await page.context().setOffline(true);await page.context().setOffline(false);await response;await page.getByRole('dialog').waitFor({state:'hidden'});return true;") + self.assertEqual(self.code("return await page.locator('[data-workplace-software]').count();"),0) + self.assertTrue(self.code("return await page.getByRole('button',{name:'Gestionar equipamiento',exact:true}).evaluate(e=>e===document.activeElement);")) + self.record('WD045-conflict-and-context',{'principalUnchangedAfterSave':True,'oldInstallationDialogClosed':True}) + finally: + self.api('/assets/'+company+'/workstations/'+station['id']+'/update',{'values':station['values']}) + + def test_node_actions_responsive_global_and_theme(self): + for width,height in [(1600,1000),(1440,900),(1280,900),(1024,768),(768,1024),(390,844)]: + self.tool('browser_resize',{'width':width,'height':height}) + self.map_ready() + self.open_node_menu('[data-workplace-software] >> nth=0') + geometry=self.code("return await page.getByRole('menu').evaluate(e=>{const r=e.getBoundingClientRect();return {width:innerWidth,scrollWidth:document.documentElement.scrollWidth,left:r.left,right:r.right,top:r.top,bottom:r.bottom,height:innerHeight}});") + self.assertLessEqual(geometry['scrollWidth'],width) + self.assertGreaterEqual(geometry['left'],0) + self.assertLessEqual(geometry['right'],width) + self.assertGreaterEqual(geometry['top'],0) + self.assertLessEqual(geometry['bottom'],height) + self.record('WD045-menu-bounds-'+str(width),geometry) + self.record('WD045-menu-contrast-'+str(width),self.node_menu_contrast()) + self.capture('WD045-menu-'+str(width)) + self.code("await page.keyboard.press('Escape');return true;") + self.code("await page.evaluate(()=>document.documentElement.classList.add('dark'));return true;") + self.addCleanup(self.code,"await page.evaluate(()=>document.documentElement.classList.remove('dark'));return true;") + self.open_node_menu('[data-workplace-equipment=principal]',keyboard=True) + self.record('WD045-dark-contrast',self.node_menu_contrast()) + self.capture('WD045-dark-menu') + self.code("await page.keyboard.press('Escape');const before=await page.evaluate(()=>({width:innerWidth,dpr:devicePixelRatio}));await page.keyboard.down('Control');await page.keyboard.press('+');await page.keyboard.press('+');await page.keyboard.up('Control');const after=await page.evaluate(()=>({width:innerWidth,dpr:devicePixelRatio}));page.__wd045Zoom={before,after,confirmed:before.width!==after.width||before.dpr!==after.dpr};return true;") + self.record('WD045-native-zoom',self.code("return page.__wd045Zoom;")) + self.code("await page.keyboard.press('Control+0');await page.evaluate(()=>document.documentElement.classList.remove('dark'));return true;") + self.tool('browser_resize',{'width':1440,'height':900}) + # Frontera HTTP simulada: referencia existente a producto global/inactivo. + self.code("await page.route('**/api/resource-application-references/*/resolve',async route=>{const response=await route.fetch();const data=await response.json();for(const item of data.items){if(item.status==='resolved'&&item.reference.kind==='application')item.reference={...item.reference,scope:'global',companyId:null,active:false}}await route.fulfill({response,json:data})});return true;") + self.addCleanup(self.code,"await page.unroute('**/api/resource-application-references/*/resolve');return true;") + self.map_ready() + self.code("const article=page.locator('[data-workplace-software]').filter({hasText:'Gestor documental de ejemplo'});await article.getByRole('button',{name:/^Acciones de/}).click();await page.getByRole('menu').waitFor();return true;") + state=self.code("return {href:await page.getByRole('menuitem',{name:'Abrir ficha de aplicación',exact:true}).getAttribute('href'),labels:await page.getByRole('menuitem').allTextContents()};") + self.assertTrue(state['href'].startswith('/catalogs/global-applications/')) + self.assertNotIn('Editar aplicación global',state['labels']) + self.assertIn('Editar instalación',state['labels']) + self.capture('WD045-global-reference') + self.record('WD045-global-reference-contract',state) + self.code("await page.keyboard.press('Escape');return true;") + if __name__ == '__main__': unittest.main(defaultTest=[ @@ -219,4 +389,8 @@ if __name__ == '__main__': 'WorkplaceVisualMapTests.test_principal_only_and_resize', 'WorkplaceVisualMapTests.test_software_coverage_states_and_refetch', 'WorkplaceVisualMapTests.test_contrast_and_reduced_motion', + 'WorkplaceVisualMapTests.test_node_actions_navigation_keyboard_and_dialogs', + 'WorkplaceVisualMapTests.test_node_actions_mutations_history_and_error', + 'WorkplaceVisualMapTests.test_node_actions_composition_conflict_and_context', + 'WorkplaceVisualMapTests.test_node_actions_responsive_global_and_theme', ])