@oneuptime/common 10.7.1 → 10.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/CloudResource.ts +846 -0
- package/Models/DatabaseModels/CloudResourceInstance.ts +276 -0
- package/Models/DatabaseModels/CloudResourceLabelRule.ts +510 -0
- package/Models/DatabaseModels/CloudResourceOwnerRule.ts +592 -0
- package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/CloudResourceOwnerUser.ts +486 -0
- package/Models/DatabaseModels/Host.ts +209 -0
- package/Models/DatabaseModels/Index.ts +36 -0
- package/Models/DatabaseModels/RumApplication.ts +731 -0
- package/Models/DatabaseModels/RumApplicationClient.ts +229 -0
- package/Models/DatabaseModels/RumApplicationLabelRule.ts +510 -0
- package/Models/DatabaseModels/RumApplicationOwnerRule.ts +592 -0
- package/Models/DatabaseModels/RumApplicationOwnerTeam.ts +486 -0
- package/Models/DatabaseModels/RumApplicationOwnerUser.ts +485 -0
- package/Models/DatabaseModels/ServerlessFunction.ts +881 -0
- package/Models/DatabaseModels/ServerlessFunctionInstance.ts +212 -0
- package/Models/DatabaseModels/ServerlessFunctionLabelRule.ts +510 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerRule.ts +592 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerUser.ts +486 -0
- package/Models/DatabaseModels/Service.ts +268 -0
- package/Models/DatabaseModels/TelemetryException.ts +15 -1
- package/Models/DatabaseModels/WorkflowLog.ts +52 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.ts +21 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts +108 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts +205 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts +195 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.ts +202 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.ts +156 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts +149 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.ts +149 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.ts +95 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +22 -0
- package/Server/Infrastructure/Queue.ts +11 -0
- package/Server/Services/CloudResourceInstanceService.ts +76 -0
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +175 -0
- package/Server/Services/CloudResourceLabelRuleService.ts +14 -0
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +192 -0
- package/Server/Services/CloudResourceOwnerRuleService.ts +14 -0
- package/Server/Services/CloudResourceOwnerTeamService.ts +10 -0
- package/Server/Services/CloudResourceOwnerUserService.ts +10 -0
- package/Server/Services/CloudResourceService.ts +342 -0
- package/Server/Services/ExceptionAggregationService.ts +3 -0
- package/Server/Services/HostService.ts +42 -0
- package/Server/Services/LogAggregationService.ts +3 -0
- package/Server/Services/MetricAggregationService.ts +3 -0
- package/Server/Services/OpenTelemetryIngestService.ts +148 -1
- package/Server/Services/RumApplicationClientService.ts +69 -0
- package/Server/Services/RumApplicationLabelRuleEngineService.ts +175 -0
- package/Server/Services/RumApplicationLabelRuleService.ts +14 -0
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +192 -0
- package/Server/Services/RumApplicationOwnerRuleService.ts +14 -0
- package/Server/Services/RumApplicationOwnerTeamService.ts +10 -0
- package/Server/Services/RumApplicationOwnerUserService.ts +10 -0
- package/Server/Services/RumApplicationService.ts +301 -0
- package/Server/Services/ServerlessFunctionInstanceService.ts +61 -0
- package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +182 -0
- package/Server/Services/ServerlessFunctionLabelRuleService.ts +14 -0
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +199 -0
- package/Server/Services/ServerlessFunctionOwnerRuleService.ts +14 -0
- package/Server/Services/ServerlessFunctionOwnerTeamService.ts +10 -0
- package/Server/Services/ServerlessFunctionOwnerUserService.ts +10 -0
- package/Server/Services/ServerlessFunctionService.ts +351 -0
- package/Server/Services/ServiceService.ts +95 -8
- package/Server/Services/TraceAggregationService.ts +3 -0
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +39 -0
- package/Server/Types/Workflow/ComponentCode.ts +9 -0
- package/Server/Types/Workflow/Components/Index.ts +2 -0
- package/Server/Types/Workflow/Components/Sleep.ts +105 -0
- package/Server/Types/Workflow/Workflow.ts +6 -0
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +150 -0
- package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +193 -0
- package/Tests/UI/Components/DuplicateModel.test.tsx +2 -2
- package/Types/Monitor/KubernetesAlertTemplates.ts +239 -14
- package/Types/Permission.ts +692 -1
- package/Types/Telemetry/ServiceType.ts +3 -0
- package/Types/Workflow/ComponentID.ts +1 -0
- package/Types/Workflow/Components/Sleep.ts +71 -0
- package/Types/Workflow/Components.ts +2 -0
- package/Types/Workflow/WorkflowStatus.ts +1 -0
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +159 -32
- package/UI/Components/Navbar/NavBar.tsx +72 -123
- package/UI/Components/Navbar/NavBarMenuModal.tsx +642 -0
- package/UI/Components/Workflow/WorkflowStatus.tsx +3 -0
- package/build/dist/Models/DatabaseModels/CloudResource.js +871 -0
- package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceInstance.js +300 -0
- package/build/dist/Models/DatabaseModels/CloudResourceInstance.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js +520 -0
- package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js +601 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Host.js +215 -0
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +36 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplication.js +751 -0
- package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplicationClient.js +252 -0
- package/build/dist/Models/DatabaseModels/RumApplicationClient.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js +520 -0
- package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js +601 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunction.js +908 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunction.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js +234 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js +520 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js +601 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Service.js +276 -0
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowLog.js +53 -0
- package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js +53 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js +82 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js +82 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js +83 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js +67 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js +60 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js +60 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js +45 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js +27 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +3 -0
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceInstanceService.js +76 -0
- package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +160 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleService.js +13 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +179 -0
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/CloudResourceOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js +9 -0
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceService.js +287 -0
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -0
- package/build/dist/Server/Services/ExceptionAggregationService.js +3 -0
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +29 -1
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +3 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +3 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +98 -2
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationClientService.js +70 -0
- package/build/dist/Server/Services/RumApplicationClientService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +160 -0
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationLabelRuleService.js +13 -0
- package/build/dist/Server/Services/RumApplicationLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +179 -0
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/RumApplicationOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/RumApplicationOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationOwnerUserService.js +9 -0
- package/build/dist/Server/Services/RumApplicationOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationService.js +259 -0
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +64 -0
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +160 -0
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js +13 -0
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +179 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js +9 -0
- package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/ServerlessFunctionService.js +299 -0
- package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -0
- package/build/dist/Server/Services/ServiceService.js +63 -7
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +3 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +39 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
- package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Sleep.js +85 -0
- package/build/dist/Server/Types/Workflow/Components/Sleep.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +90 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
- package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +121 -0
- package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +1 -0
- package/build/dist/Tests/UI/Components/DuplicateModel.test.js +2 -2
- package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +1 -1
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +210 -14
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
- package/build/dist/Types/Permission.js +609 -1
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +3 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/Types/Workflow/ComponentID.js +1 -0
- package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Sleep.js +64 -0
- package/build/dist/Types/Workflow/Components/Sleep.js.map +1 -0
- package/build/dist/Types/Workflow/Components.js +2 -0
- package/build/dist/Types/Workflow/Components.js.map +1 -1
- package/build/dist/Types/Workflow/WorkflowStatus.js +1 -0
- package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +113 -19
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js +34 -66
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +412 -0
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -0
- package/build/dist/UI/Components/Workflow/WorkflowStatus.js +3 -0
- package/build/dist/UI/Components/Workflow/WorkflowStatus.js.map +1 -1
- package/package.json +1 -1
- package/UI/Components/Navbar/NavBarMenu.tsx +0 -183
- package/UI/Components/Navbar/NavBarMenuItem.tsx +0 -146
- package/build/dist/UI/Components/Navbar/NavBarMenu.js +0 -82
- package/build/dist/UI/Components/Navbar/NavBarMenu.js.map +0 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +0 -109
- package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +0 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Bucket A (Serverless): label-rule + owner-rule tables that drive automatic
|
|
5
|
+
* label attachment and owner assignment when a ServerlessFunction is created.
|
|
6
|
+
* Mirrors the Host*Rule shape (match criteria via labels + name/description
|
|
7
|
+
* regex; actions via labelsToAdd / ownerUsers / ownerTeams).
|
|
8
|
+
*/
|
|
9
|
+
export class AddServerlessFunctionRuleTables1780938407319
|
|
10
|
+
implements MigrationInterface
|
|
11
|
+
{
|
|
12
|
+
public name = "AddServerlessFunctionRuleTables1780938407319";
|
|
13
|
+
|
|
14
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
15
|
+
// Label rule table
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`CREATE TABLE "ServerlessFunctionLabelRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_SrvlessFnLabelRule" PRIMARY KEY ("_id"))`,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`CREATE INDEX "IDX_SrvlessFnLabelRule_projectId" ON "ServerlessFunctionLabelRule" ("projectId") `,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`CREATE INDEX "IDX_SrvlessFnLabelRule_name" ON "ServerlessFunctionLabelRule" ("name") `,
|
|
24
|
+
);
|
|
25
|
+
await queryRunner.query(
|
|
26
|
+
`CREATE INDEX "IDX_SrvlessFnLabelRule_enabled" ON "ServerlessFunctionLabelRule" ("isEnabled") `,
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
// Owner rule table
|
|
30
|
+
await queryRunner.query(
|
|
31
|
+
`CREATE TABLE "ServerlessFunctionOwnerRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "notifyOwners" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_SrvlessFnOwnerRule" PRIMARY KEY ("_id"))`,
|
|
32
|
+
);
|
|
33
|
+
await queryRunner.query(
|
|
34
|
+
`CREATE INDEX "IDX_SrvlessFnOwnerRule_projectId" ON "ServerlessFunctionOwnerRule" ("projectId") `,
|
|
35
|
+
);
|
|
36
|
+
await queryRunner.query(
|
|
37
|
+
`CREATE INDEX "IDX_SrvlessFnOwnerRule_name" ON "ServerlessFunctionOwnerRule" ("name") `,
|
|
38
|
+
);
|
|
39
|
+
await queryRunner.query(
|
|
40
|
+
`CREATE INDEX "IDX_SrvlessFnOwnerRule_enabled" ON "ServerlessFunctionOwnerRule" ("isEnabled") `,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
// Join tables
|
|
44
|
+
await queryRunner.query(
|
|
45
|
+
`CREATE TABLE "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleMatchLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`,
|
|
46
|
+
);
|
|
47
|
+
await queryRunner.query(
|
|
48
|
+
`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_rule" ON "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId") `,
|
|
49
|
+
);
|
|
50
|
+
await queryRunner.query(
|
|
51
|
+
`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_label" ON "SrvlessFnLabelRuleMatchLabel" ("labelId") `,
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
await queryRunner.query(
|
|
55
|
+
`CREATE TABLE "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleAddLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`,
|
|
56
|
+
);
|
|
57
|
+
await queryRunner.query(
|
|
58
|
+
`CREATE INDEX "IDX_SrvlessFnLRAddLabel_rule" ON "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId") `,
|
|
59
|
+
);
|
|
60
|
+
await queryRunner.query(
|
|
61
|
+
`CREATE INDEX "IDX_SrvlessFnLRAddLabel_label" ON "SrvlessFnLabelRuleAddLabel" ("labelId") `,
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
await queryRunner.query(
|
|
65
|
+
`CREATE TABLE "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleMatchLabel" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "labelId"))`,
|
|
66
|
+
);
|
|
67
|
+
await queryRunner.query(
|
|
68
|
+
`CREATE INDEX "IDX_SrvlessFnORMatchLabel_rule" ON "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId") `,
|
|
69
|
+
);
|
|
70
|
+
await queryRunner.query(
|
|
71
|
+
`CREATE INDEX "IDX_SrvlessFnORMatchLabel_label" ON "SrvlessFnOwnerRuleMatchLabel" ("labelId") `,
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
await queryRunner.query(
|
|
75
|
+
`CREATE TABLE "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleUser" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "userId"))`,
|
|
76
|
+
);
|
|
77
|
+
await queryRunner.query(
|
|
78
|
+
`CREATE INDEX "IDX_SrvlessFnORUser_rule" ON "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId") `,
|
|
79
|
+
);
|
|
80
|
+
await queryRunner.query(
|
|
81
|
+
`CREATE INDEX "IDX_SrvlessFnORUser_user" ON "SrvlessFnOwnerRuleUser" ("userId") `,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
await queryRunner.query(
|
|
85
|
+
`CREATE TABLE "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleTeam" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "teamId"))`,
|
|
86
|
+
);
|
|
87
|
+
await queryRunner.query(
|
|
88
|
+
`CREATE INDEX "IDX_SrvlessFnORTeam_rule" ON "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId") `,
|
|
89
|
+
);
|
|
90
|
+
await queryRunner.query(
|
|
91
|
+
`CREATE INDEX "IDX_SrvlessFnORTeam_team" ON "SrvlessFnOwnerRuleTeam" ("teamId") `,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
// Foreign keys: rule tables -> Project / User
|
|
95
|
+
await queryRunner.query(
|
|
96
|
+
`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
97
|
+
);
|
|
98
|
+
await queryRunner.query(
|
|
99
|
+
`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
100
|
+
);
|
|
101
|
+
await queryRunner.query(
|
|
102
|
+
`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
103
|
+
);
|
|
104
|
+
await queryRunner.query(
|
|
105
|
+
`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
106
|
+
);
|
|
107
|
+
await queryRunner.query(
|
|
108
|
+
`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
109
|
+
);
|
|
110
|
+
await queryRunner.query(
|
|
111
|
+
`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// Foreign keys: join tables
|
|
115
|
+
await queryRunner.query(
|
|
116
|
+
`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
117
|
+
);
|
|
118
|
+
await queryRunner.query(
|
|
119
|
+
`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
120
|
+
);
|
|
121
|
+
await queryRunner.query(
|
|
122
|
+
`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
123
|
+
);
|
|
124
|
+
await queryRunner.query(
|
|
125
|
+
`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
126
|
+
);
|
|
127
|
+
await queryRunner.query(
|
|
128
|
+
`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
129
|
+
);
|
|
130
|
+
await queryRunner.query(
|
|
131
|
+
`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
132
|
+
);
|
|
133
|
+
await queryRunner.query(
|
|
134
|
+
`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
135
|
+
);
|
|
136
|
+
await queryRunner.query(
|
|
137
|
+
`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
138
|
+
);
|
|
139
|
+
await queryRunner.query(
|
|
140
|
+
`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
141
|
+
);
|
|
142
|
+
await queryRunner.query(
|
|
143
|
+
`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
148
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleTeam"`);
|
|
149
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleUser"`);
|
|
150
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleMatchLabel"`);
|
|
151
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleAddLabel"`);
|
|
152
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleMatchLabel"`);
|
|
153
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionOwnerRule"`);
|
|
154
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionLabelRule"`);
|
|
155
|
+
}
|
|
156
|
+
}
|
package/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Bucket A (Cloud): label-rule + owner-rule tables that drive automatic label
|
|
5
|
+
* attachment and owner assignment when a CloudResource is created.
|
|
6
|
+
*/
|
|
7
|
+
export class AddCloudResourceRuleTables1780940721814
|
|
8
|
+
implements MigrationInterface
|
|
9
|
+
{
|
|
10
|
+
public name = "AddCloudResourceRuleTables1780940721814";
|
|
11
|
+
|
|
12
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
13
|
+
await queryRunner.query(
|
|
14
|
+
`CREATE TABLE "CloudResourceLabelRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResLabelRule" PRIMARY KEY ("_id"))`,
|
|
15
|
+
);
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`CREATE INDEX "IDX_CloudResLabelRule_projectId" ON "CloudResourceLabelRule" ("projectId") `,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`CREATE INDEX "IDX_CloudResLabelRule_name" ON "CloudResourceLabelRule" ("name") `,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`CREATE INDEX "IDX_CloudResLabelRule_enabled" ON "CloudResourceLabelRule" ("isEnabled") `,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
await queryRunner.query(
|
|
27
|
+
`CREATE TABLE "CloudResourceOwnerRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "notifyOwners" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResOwnerRule" PRIMARY KEY ("_id"))`,
|
|
28
|
+
);
|
|
29
|
+
await queryRunner.query(
|
|
30
|
+
`CREATE INDEX "IDX_CloudResOwnerRule_projectId" ON "CloudResourceOwnerRule" ("projectId") `,
|
|
31
|
+
);
|
|
32
|
+
await queryRunner.query(
|
|
33
|
+
`CREATE INDEX "IDX_CloudResOwnerRule_name" ON "CloudResourceOwnerRule" ("name") `,
|
|
34
|
+
);
|
|
35
|
+
await queryRunner.query(
|
|
36
|
+
`CREATE INDEX "IDX_CloudResOwnerRule_enabled" ON "CloudResourceOwnerRule" ("isEnabled") `,
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
await queryRunner.query(
|
|
40
|
+
`CREATE TABLE "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleMatchLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`,
|
|
41
|
+
);
|
|
42
|
+
await queryRunner.query(
|
|
43
|
+
`CREATE INDEX "IDX_CloudResLRMatchLabel_rule" ON "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId") `,
|
|
44
|
+
);
|
|
45
|
+
await queryRunner.query(
|
|
46
|
+
`CREATE INDEX "IDX_CloudResLRMatchLabel_label" ON "CloudResLabelRuleMatchLabel" ("labelId") `,
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
await queryRunner.query(
|
|
50
|
+
`CREATE TABLE "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleAddLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`,
|
|
51
|
+
);
|
|
52
|
+
await queryRunner.query(
|
|
53
|
+
`CREATE INDEX "IDX_CloudResLRAddLabel_rule" ON "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId") `,
|
|
54
|
+
);
|
|
55
|
+
await queryRunner.query(
|
|
56
|
+
`CREATE INDEX "IDX_CloudResLRAddLabel_label" ON "CloudResLabelRuleAddLabel" ("labelId") `,
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
await queryRunner.query(
|
|
60
|
+
`CREATE TABLE "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleMatchLabel" PRIMARY KEY ("cloudResourceOwnerRuleId", "labelId"))`,
|
|
61
|
+
);
|
|
62
|
+
await queryRunner.query(
|
|
63
|
+
`CREATE INDEX "IDX_CloudResORMatchLabel_rule" ON "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId") `,
|
|
64
|
+
);
|
|
65
|
+
await queryRunner.query(
|
|
66
|
+
`CREATE INDEX "IDX_CloudResORMatchLabel_label" ON "CloudResOwnerRuleMatchLabel" ("labelId") `,
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
await queryRunner.query(
|
|
70
|
+
`CREATE TABLE "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleUser" PRIMARY KEY ("cloudResourceOwnerRuleId", "userId"))`,
|
|
71
|
+
);
|
|
72
|
+
await queryRunner.query(
|
|
73
|
+
`CREATE INDEX "IDX_CloudResORUser_rule" ON "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId") `,
|
|
74
|
+
);
|
|
75
|
+
await queryRunner.query(
|
|
76
|
+
`CREATE INDEX "IDX_CloudResORUser_user" ON "CloudResOwnerRuleUser" ("userId") `,
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
await queryRunner.query(
|
|
80
|
+
`CREATE TABLE "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleTeam" PRIMARY KEY ("cloudResourceOwnerRuleId", "teamId"))`,
|
|
81
|
+
);
|
|
82
|
+
await queryRunner.query(
|
|
83
|
+
`CREATE INDEX "IDX_CloudResORTeam_rule" ON "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId") `,
|
|
84
|
+
);
|
|
85
|
+
await queryRunner.query(
|
|
86
|
+
`CREATE INDEX "IDX_CloudResORTeam_team" ON "CloudResOwnerRuleTeam" ("teamId") `,
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
await queryRunner.query(
|
|
90
|
+
`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
91
|
+
);
|
|
92
|
+
await queryRunner.query(
|
|
93
|
+
`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
94
|
+
);
|
|
95
|
+
await queryRunner.query(
|
|
96
|
+
`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
97
|
+
);
|
|
98
|
+
await queryRunner.query(
|
|
99
|
+
`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
100
|
+
);
|
|
101
|
+
await queryRunner.query(
|
|
102
|
+
`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
103
|
+
);
|
|
104
|
+
await queryRunner.query(
|
|
105
|
+
`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
await queryRunner.query(
|
|
109
|
+
`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
110
|
+
);
|
|
111
|
+
await queryRunner.query(
|
|
112
|
+
`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
113
|
+
);
|
|
114
|
+
await queryRunner.query(
|
|
115
|
+
`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
116
|
+
);
|
|
117
|
+
await queryRunner.query(
|
|
118
|
+
`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
119
|
+
);
|
|
120
|
+
await queryRunner.query(
|
|
121
|
+
`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
122
|
+
);
|
|
123
|
+
await queryRunner.query(
|
|
124
|
+
`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
125
|
+
);
|
|
126
|
+
await queryRunner.query(
|
|
127
|
+
`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
128
|
+
);
|
|
129
|
+
await queryRunner.query(
|
|
130
|
+
`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
131
|
+
);
|
|
132
|
+
await queryRunner.query(
|
|
133
|
+
`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
134
|
+
);
|
|
135
|
+
await queryRunner.query(
|
|
136
|
+
`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
141
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleTeam"`);
|
|
142
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleUser"`);
|
|
143
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleMatchLabel"`);
|
|
144
|
+
await queryRunner.query(`DROP TABLE "CloudResLabelRuleAddLabel"`);
|
|
145
|
+
await queryRunner.query(`DROP TABLE "CloudResLabelRuleMatchLabel"`);
|
|
146
|
+
await queryRunner.query(`DROP TABLE "CloudResourceOwnerRule"`);
|
|
147
|
+
await queryRunner.query(`DROP TABLE "CloudResourceLabelRule"`);
|
|
148
|
+
}
|
|
149
|
+
}
|
package/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Bucket A (RUM): label-rule + owner-rule tables that drive automatic label
|
|
5
|
+
* attachment and owner assignment when a RumApplication is created.
|
|
6
|
+
*/
|
|
7
|
+
export class AddRumApplicationRuleTables1780940998002
|
|
8
|
+
implements MigrationInterface
|
|
9
|
+
{
|
|
10
|
+
public name = "AddRumApplicationRuleTables1780940998002";
|
|
11
|
+
|
|
12
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
13
|
+
await queryRunner.query(
|
|
14
|
+
`CREATE TABLE "RumApplicationLabelRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_RumAppLabelRule" PRIMARY KEY ("_id"))`,
|
|
15
|
+
);
|
|
16
|
+
await queryRunner.query(
|
|
17
|
+
`CREATE INDEX "IDX_RumAppLabelRule_projectId" ON "RumApplicationLabelRule" ("projectId") `,
|
|
18
|
+
);
|
|
19
|
+
await queryRunner.query(
|
|
20
|
+
`CREATE INDEX "IDX_RumAppLabelRule_name" ON "RumApplicationLabelRule" ("name") `,
|
|
21
|
+
);
|
|
22
|
+
await queryRunner.query(
|
|
23
|
+
`CREATE INDEX "IDX_RumAppLabelRule_enabled" ON "RumApplicationLabelRule" ("isEnabled") `,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
await queryRunner.query(
|
|
27
|
+
`CREATE TABLE "RumApplicationOwnerRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "notifyOwners" boolean NOT NULL DEFAULT true, "nameRegexPattern" character varying(500), "descriptionRegexPattern" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_RumAppOwnerRule" PRIMARY KEY ("_id"))`,
|
|
28
|
+
);
|
|
29
|
+
await queryRunner.query(
|
|
30
|
+
`CREATE INDEX "IDX_RumAppOwnerRule_projectId" ON "RumApplicationOwnerRule" ("projectId") `,
|
|
31
|
+
);
|
|
32
|
+
await queryRunner.query(
|
|
33
|
+
`CREATE INDEX "IDX_RumAppOwnerRule_name" ON "RumApplicationOwnerRule" ("name") `,
|
|
34
|
+
);
|
|
35
|
+
await queryRunner.query(
|
|
36
|
+
`CREATE INDEX "IDX_RumAppOwnerRule_enabled" ON "RumApplicationOwnerRule" ("isEnabled") `,
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
await queryRunner.query(
|
|
40
|
+
`CREATE TABLE "RumAppLabelRuleMatchLabel" ("rumApplicationLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppLabelRuleMatchLabel" PRIMARY KEY ("rumApplicationLabelRuleId", "labelId"))`,
|
|
41
|
+
);
|
|
42
|
+
await queryRunner.query(
|
|
43
|
+
`CREATE INDEX "IDX_RumAppLRMatchLabel_rule" ON "RumAppLabelRuleMatchLabel" ("rumApplicationLabelRuleId") `,
|
|
44
|
+
);
|
|
45
|
+
await queryRunner.query(
|
|
46
|
+
`CREATE INDEX "IDX_RumAppLRMatchLabel_label" ON "RumAppLabelRuleMatchLabel" ("labelId") `,
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
await queryRunner.query(
|
|
50
|
+
`CREATE TABLE "RumAppLabelRuleAddLabel" ("rumApplicationLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppLabelRuleAddLabel" PRIMARY KEY ("rumApplicationLabelRuleId", "labelId"))`,
|
|
51
|
+
);
|
|
52
|
+
await queryRunner.query(
|
|
53
|
+
`CREATE INDEX "IDX_RumAppLRAddLabel_rule" ON "RumAppLabelRuleAddLabel" ("rumApplicationLabelRuleId") `,
|
|
54
|
+
);
|
|
55
|
+
await queryRunner.query(
|
|
56
|
+
`CREATE INDEX "IDX_RumAppLRAddLabel_label" ON "RumAppLabelRuleAddLabel" ("labelId") `,
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
await queryRunner.query(
|
|
60
|
+
`CREATE TABLE "RumAppOwnerRuleMatchLabel" ("rumApplicationOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleMatchLabel" PRIMARY KEY ("rumApplicationOwnerRuleId", "labelId"))`,
|
|
61
|
+
);
|
|
62
|
+
await queryRunner.query(
|
|
63
|
+
`CREATE INDEX "IDX_RumAppORMatchLabel_rule" ON "RumAppOwnerRuleMatchLabel" ("rumApplicationOwnerRuleId") `,
|
|
64
|
+
);
|
|
65
|
+
await queryRunner.query(
|
|
66
|
+
`CREATE INDEX "IDX_RumAppORMatchLabel_label" ON "RumAppOwnerRuleMatchLabel" ("labelId") `,
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
await queryRunner.query(
|
|
70
|
+
`CREATE TABLE "RumAppOwnerRuleUser" ("rumApplicationOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleUser" PRIMARY KEY ("rumApplicationOwnerRuleId", "userId"))`,
|
|
71
|
+
);
|
|
72
|
+
await queryRunner.query(
|
|
73
|
+
`CREATE INDEX "IDX_RumAppORUser_rule" ON "RumAppOwnerRuleUser" ("rumApplicationOwnerRuleId") `,
|
|
74
|
+
);
|
|
75
|
+
await queryRunner.query(
|
|
76
|
+
`CREATE INDEX "IDX_RumAppORUser_user" ON "RumAppOwnerRuleUser" ("userId") `,
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
await queryRunner.query(
|
|
80
|
+
`CREATE TABLE "RumAppOwnerRuleTeam" ("rumApplicationOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleTeam" PRIMARY KEY ("rumApplicationOwnerRuleId", "teamId"))`,
|
|
81
|
+
);
|
|
82
|
+
await queryRunner.query(
|
|
83
|
+
`CREATE INDEX "IDX_RumAppORTeam_rule" ON "RumAppOwnerRuleTeam" ("rumApplicationOwnerRuleId") `,
|
|
84
|
+
);
|
|
85
|
+
await queryRunner.query(
|
|
86
|
+
`CREATE INDEX "IDX_RumAppORTeam_team" ON "RumAppOwnerRuleTeam" ("teamId") `,
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
await queryRunner.query(
|
|
90
|
+
`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
91
|
+
);
|
|
92
|
+
await queryRunner.query(
|
|
93
|
+
`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
94
|
+
);
|
|
95
|
+
await queryRunner.query(
|
|
96
|
+
`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
97
|
+
);
|
|
98
|
+
await queryRunner.query(
|
|
99
|
+
`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
100
|
+
);
|
|
101
|
+
await queryRunner.query(
|
|
102
|
+
`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
103
|
+
);
|
|
104
|
+
await queryRunner.query(
|
|
105
|
+
`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
await queryRunner.query(
|
|
109
|
+
`ALTER TABLE "RumAppLabelRuleMatchLabel" ADD CONSTRAINT "FK_RumAppLRMatchLabel_rule" FOREIGN KEY ("rumApplicationLabelRuleId") REFERENCES "RumApplicationLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
110
|
+
);
|
|
111
|
+
await queryRunner.query(
|
|
112
|
+
`ALTER TABLE "RumAppLabelRuleMatchLabel" ADD CONSTRAINT "FK_RumAppLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
113
|
+
);
|
|
114
|
+
await queryRunner.query(
|
|
115
|
+
`ALTER TABLE "RumAppLabelRuleAddLabel" ADD CONSTRAINT "FK_RumAppLRAddLabel_rule" FOREIGN KEY ("rumApplicationLabelRuleId") REFERENCES "RumApplicationLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
116
|
+
);
|
|
117
|
+
await queryRunner.query(
|
|
118
|
+
`ALTER TABLE "RumAppLabelRuleAddLabel" ADD CONSTRAINT "FK_RumAppLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
119
|
+
);
|
|
120
|
+
await queryRunner.query(
|
|
121
|
+
`ALTER TABLE "RumAppOwnerRuleMatchLabel" ADD CONSTRAINT "FK_RumAppORMatchLabel_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
122
|
+
);
|
|
123
|
+
await queryRunner.query(
|
|
124
|
+
`ALTER TABLE "RumAppOwnerRuleMatchLabel" ADD CONSTRAINT "FK_RumAppORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
125
|
+
);
|
|
126
|
+
await queryRunner.query(
|
|
127
|
+
`ALTER TABLE "RumAppOwnerRuleUser" ADD CONSTRAINT "FK_RumAppORUser_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
128
|
+
);
|
|
129
|
+
await queryRunner.query(
|
|
130
|
+
`ALTER TABLE "RumAppOwnerRuleUser" ADD CONSTRAINT "FK_RumAppORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
131
|
+
);
|
|
132
|
+
await queryRunner.query(
|
|
133
|
+
`ALTER TABLE "RumAppOwnerRuleTeam" ADD CONSTRAINT "FK_RumAppORTeam_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
134
|
+
);
|
|
135
|
+
await queryRunner.query(
|
|
136
|
+
`ALTER TABLE "RumAppOwnerRuleTeam" ADD CONSTRAINT "FK_RumAppORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
141
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleTeam"`);
|
|
142
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleUser"`);
|
|
143
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleMatchLabel"`);
|
|
144
|
+
await queryRunner.query(`DROP TABLE "RumAppLabelRuleAddLabel"`);
|
|
145
|
+
await queryRunner.query(`DROP TABLE "RumAppLabelRuleMatchLabel"`);
|
|
146
|
+
await queryRunner.query(`DROP TABLE "RumApplicationOwnerRule"`);
|
|
147
|
+
await queryRunner.query(`DROP TABLE "RumApplicationLabelRule"`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Bucket B: live-inventory child tables for the new telemetry resource types.
|
|
5
|
+
* - ServerlessFunctionInstance (faas.instance)
|
|
6
|
+
* - CloudResourceInstance (service.instance.id + container cpu/mem)
|
|
7
|
+
* - RumApplicationClient (browser.platform / device.model, coarse by platform)
|
|
8
|
+
* Populated from the ingest auto-discovery path; not user-editable.
|
|
9
|
+
*/
|
|
10
|
+
export class AddTelemetryResourceInventoryTables1780941762204
|
|
11
|
+
implements MigrationInterface
|
|
12
|
+
{
|
|
13
|
+
public name = "AddTelemetryResourceInventoryTables1780941762204";
|
|
14
|
+
|
|
15
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
16
|
+
// ServerlessFunctionInstance
|
|
17
|
+
await queryRunner.query(
|
|
18
|
+
`CREATE TABLE "ServerlessFunctionInstance" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "serverlessFunctionId" uuid NOT NULL, "instanceName" character varying(100) NOT NULL, "lastSeenAt" TIMESTAMP WITH TIME ZONE NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_SrvlessFnInstance" PRIMARY KEY ("_id"))`,
|
|
19
|
+
);
|
|
20
|
+
await queryRunner.query(
|
|
21
|
+
`CREATE INDEX "IDX_SrvlessFnInstance_projectId" ON "ServerlessFunctionInstance" ("projectId") `,
|
|
22
|
+
);
|
|
23
|
+
await queryRunner.query(
|
|
24
|
+
`CREATE INDEX "IDX_SrvlessFnInstance_fnId" ON "ServerlessFunctionInstance" ("serverlessFunctionId") `,
|
|
25
|
+
);
|
|
26
|
+
await queryRunner.query(
|
|
27
|
+
`CREATE UNIQUE INDEX "UQ_SrvlessFnInstance" ON "ServerlessFunctionInstance" ("projectId", "serverlessFunctionId", "instanceName") `,
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
// CloudResourceInstance
|
|
31
|
+
await queryRunner.query(
|
|
32
|
+
`CREATE TABLE "CloudResourceInstance" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "cloudResourceId" uuid NOT NULL, "instanceName" character varying(100) NOT NULL, "latestCpuPercent" numeric, "latestMemoryBytes" bigint, "lastSeenAt" TIMESTAMP WITH TIME ZONE NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResInstance" PRIMARY KEY ("_id"))`,
|
|
33
|
+
);
|
|
34
|
+
await queryRunner.query(
|
|
35
|
+
`CREATE INDEX "IDX_CloudResInstance_projectId" ON "CloudResourceInstance" ("projectId") `,
|
|
36
|
+
);
|
|
37
|
+
await queryRunner.query(
|
|
38
|
+
`CREATE INDEX "IDX_CloudResInstance_resId" ON "CloudResourceInstance" ("cloudResourceId") `,
|
|
39
|
+
);
|
|
40
|
+
await queryRunner.query(
|
|
41
|
+
`CREATE UNIQUE INDEX "UQ_CloudResInstance" ON "CloudResourceInstance" ("projectId", "cloudResourceId", "instanceName") `,
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// RumApplicationClient
|
|
45
|
+
await queryRunner.query(
|
|
46
|
+
`CREATE TABLE "RumApplicationClient" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "rumApplicationId" uuid NOT NULL, "clientName" character varying(100) NOT NULL, "clientType" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_RumAppClient" PRIMARY KEY ("_id"))`,
|
|
47
|
+
);
|
|
48
|
+
await queryRunner.query(
|
|
49
|
+
`CREATE INDEX "IDX_RumAppClient_projectId" ON "RumApplicationClient" ("projectId") `,
|
|
50
|
+
);
|
|
51
|
+
await queryRunner.query(
|
|
52
|
+
`CREATE INDEX "IDX_RumAppClient_appId" ON "RumApplicationClient" ("rumApplicationId") `,
|
|
53
|
+
);
|
|
54
|
+
await queryRunner.query(
|
|
55
|
+
`CREATE UNIQUE INDEX "UQ_RumAppClient" ON "RumApplicationClient" ("projectId", "rumApplicationId", "clientName") `,
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
// Foreign keys
|
|
59
|
+
await queryRunner.query(
|
|
60
|
+
`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
61
|
+
);
|
|
62
|
+
await queryRunner.query(
|
|
63
|
+
`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_fn" FOREIGN KEY ("serverlessFunctionId") REFERENCES "ServerlessFunction"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
64
|
+
);
|
|
65
|
+
await queryRunner.query(
|
|
66
|
+
`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
await queryRunner.query(
|
|
70
|
+
`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
71
|
+
);
|
|
72
|
+
await queryRunner.query(
|
|
73
|
+
`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_res" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
74
|
+
);
|
|
75
|
+
await queryRunner.query(
|
|
76
|
+
`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
await queryRunner.query(
|
|
80
|
+
`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
81
|
+
);
|
|
82
|
+
await queryRunner.query(
|
|
83
|
+
`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_app" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
|
84
|
+
);
|
|
85
|
+
await queryRunner.query(
|
|
86
|
+
`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
91
|
+
await queryRunner.query(`DROP TABLE "RumApplicationClient"`);
|
|
92
|
+
await queryRunner.query(`DROP TABLE "CloudResourceInstance"`);
|
|
93
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionInstance"`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Adds RumApplication.sdkLanguage (the telemetry.sdk.language resource
|
|
5
|
+
* attribute, e.g. webjs / swift / android). Used to scope a RUM
|
|
6
|
+
* application's client-side telemetry apart from a same-named backend
|
|
7
|
+
* service that shares the same service.name.
|
|
8
|
+
*/
|
|
9
|
+
export class AddRumApplicationSdkLanguage1780985763463
|
|
10
|
+
implements MigrationInterface
|
|
11
|
+
{
|
|
12
|
+
public name = "AddRumApplicationSdkLanguage1780985763463";
|
|
13
|
+
|
|
14
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
15
|
+
await queryRunner.query(
|
|
16
|
+
`ALTER TABLE "RumApplication" ADD "sdkLanguage" character varying(100)`,
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
21
|
+
await queryRunner.query(
|
|
22
|
+
`ALTER TABLE "RumApplication" DROP COLUMN "sdkLanguage"`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Cloud resources are re-keyed from per-service.name to per cloud
|
|
5
|
+
* *environment* (cloud.platform + cloud.account.id + cloud.region). The old
|
|
6
|
+
* per-service rows no longer match the new composite resourceIdentifier and
|
|
7
|
+
* would linger as stale entries, so clear CloudResource and its child rows.
|
|
8
|
+
* Discovery recreates environment-level rows from live telemetry on the next
|
|
9
|
+
* ingest. Project-level rule tables are intentionally left untouched.
|
|
10
|
+
*/
|
|
11
|
+
export class RecastCloudResourcesByEnvironment1780987192743
|
|
12
|
+
implements MigrationInterface
|
|
13
|
+
{
|
|
14
|
+
public name = "RecastCloudResourcesByEnvironment1780987192743";
|
|
15
|
+
|
|
16
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
17
|
+
await queryRunner.query(`DELETE FROM "CloudResourceInstance"`);
|
|
18
|
+
await queryRunner.query(`DELETE FROM "CloudResourceLabel"`);
|
|
19
|
+
await queryRunner.query(`DELETE FROM "CloudResourceOwnerUser"`);
|
|
20
|
+
await queryRunner.query(`DELETE FROM "CloudResourceOwnerTeam"`);
|
|
21
|
+
await queryRunner.query(`DELETE FROM "CloudResource"`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public async down(): Promise<void> {
|
|
25
|
+
/*
|
|
26
|
+
* Irreversible data cleanup — environment-level rows re-discover from
|
|
27
|
+
* live telemetry, so there is nothing to restore on down().
|
|
28
|
+
*/
|
|
29
|
+
}
|
|
30
|
+
}
|