@oneuptime/common 10.7.2 → 10.8.1
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/API/TelemetryAPI.ts +78 -25
- 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 +44 -16
- 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 +131 -4
- 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/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/API/TelemetryAPI.js +61 -23
- package/build/dist/Server/API/TelemetryAPI.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 +36 -10
- 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 +108 -4
- 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/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,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Phase 2: Cloud platform compute resource type. Creates the CloudResource
|
|
3
|
+
* resource table, its owner-user / owner-team tables, and the label join
|
|
4
|
+
* table — mirroring the ServerlessFunction shape so the polymorphic telemetry
|
|
5
|
+
* serviceId can point at a CloudResource row.
|
|
6
|
+
*/
|
|
7
|
+
export class AddCloudResourceTables1780935387827 {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.name = "AddCloudResourceTables1780935387827";
|
|
10
|
+
}
|
|
11
|
+
async up(queryRunner) {
|
|
12
|
+
await queryRunner.query(`CREATE TABLE "CloudResource" ("_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, "slug" character varying(100) NOT NULL, "description" character varying(500), "resourceIdentifier" character varying(100) NOT NULL, "cloudPlatform" character varying(100), "cloudProvider" character varying(100), "cloudRegion" character varying(100), "cloudAccountId" character varying(100), "runtimeName" character varying(100), "runtimeVersion" character varying(100), "otelCollectorStatus" character varying(100) DEFAULT 'disconnected', "agentVersion" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE, "retainTelemetryDataForDays" integer, "telemetryRetentionConfig" jsonb, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_CloudResource" PRIMARY KEY ("_id"))`);
|
|
13
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResource_projectId" ON "CloudResource" ("projectId") `);
|
|
14
|
+
await queryRunner.query(`CREATE UNIQUE INDEX "UQ_CloudResource_project_resId" ON "CloudResource" ("projectId", "resourceIdentifier") `);
|
|
15
|
+
await queryRunner.query(`CREATE TABLE "CloudResourceOwnerTeam" ("_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, "teamId" uuid NOT NULL, "cloudResourceId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_CloudResourceOwnerTeam" PRIMARY KEY ("_id"))`);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_projectId" ON "CloudResourceOwnerTeam" ("projectId") `);
|
|
17
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_teamId" ON "CloudResourceOwnerTeam" ("teamId") `);
|
|
18
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_resId" ON "CloudResourceOwnerTeam" ("cloudResourceId") `);
|
|
19
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerTeam_notified" ON "CloudResourceOwnerTeam" ("isOwnerNotified") `);
|
|
20
|
+
await queryRunner.query(`CREATE TABLE "CloudResourceOwnerUser" ("_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, "userId" uuid NOT NULL, "cloudResourceId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_CloudResourceOwnerUser" PRIMARY KEY ("_id"))`);
|
|
21
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_projectId" ON "CloudResourceOwnerUser" ("projectId") `);
|
|
22
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_userId" ON "CloudResourceOwnerUser" ("userId") `);
|
|
23
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_resId" ON "CloudResourceOwnerUser" ("cloudResourceId") `);
|
|
24
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerUser_notified" ON "CloudResourceOwnerUser" ("isOwnerNotified") `);
|
|
25
|
+
await queryRunner.query(`CREATE TABLE "CloudResourceLabel" ("cloudResourceId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResourceLabel" PRIMARY KEY ("cloudResourceId", "labelId"))`);
|
|
26
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResourceLabel_resId" ON "CloudResourceLabel" ("cloudResourceId") `);
|
|
27
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResourceLabel_labelId" ON "CloudResourceLabel" ("labelId") `);
|
|
28
|
+
// Foreign keys: CloudResource
|
|
29
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
30
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
31
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" ADD CONSTRAINT "FK_CloudResource_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
32
|
+
// Foreign keys: CloudResourceOwnerTeam
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_teamId" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" ADD CONSTRAINT "FK_CloudResOwnerTeam_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
38
|
+
// Foreign keys: CloudResourceOwnerUser
|
|
39
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_userId" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
43
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" ADD CONSTRAINT "FK_CloudResOwnerUser_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
44
|
+
// Foreign keys: CloudResourceLabel join table
|
|
45
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabel" ADD CONSTRAINT "FK_CloudResourceLabel_resId" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabel" ADD CONSTRAINT "FK_CloudResourceLabel_labelId" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
47
|
+
}
|
|
48
|
+
async down(queryRunner) {
|
|
49
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabel" DROP CONSTRAINT "FK_CloudResourceLabel_labelId"`);
|
|
50
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabel" DROP CONSTRAINT "FK_CloudResourceLabel_resId"`);
|
|
51
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_deletedBy"`);
|
|
52
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_createdBy"`);
|
|
53
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_resId"`);
|
|
54
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_userId"`);
|
|
55
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerUser" DROP CONSTRAINT "FK_CloudResOwnerUser_projectId"`);
|
|
56
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_deletedBy"`);
|
|
57
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_createdBy"`);
|
|
58
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_resId"`);
|
|
59
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_teamId"`);
|
|
60
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerTeam" DROP CONSTRAINT "FK_CloudResOwnerTeam_projectId"`);
|
|
61
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_deletedBy"`);
|
|
62
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_createdBy"`);
|
|
63
|
+
await queryRunner.query(`ALTER TABLE "CloudResource" DROP CONSTRAINT "FK_CloudResource_projectId"`);
|
|
64
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResourceLabel_labelId"`);
|
|
65
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResourceLabel_resId"`);
|
|
66
|
+
await queryRunner.query(`DROP TABLE "CloudResourceLabel"`);
|
|
67
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_notified"`);
|
|
68
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_resId"`);
|
|
69
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_userId"`);
|
|
70
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerUser_projectId"`);
|
|
71
|
+
await queryRunner.query(`DROP TABLE "CloudResourceOwnerUser"`);
|
|
72
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_notified"`);
|
|
73
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_resId"`);
|
|
74
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_teamId"`);
|
|
75
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResOwnerTeam_projectId"`);
|
|
76
|
+
await queryRunner.query(`DROP TABLE "CloudResourceOwnerTeam"`);
|
|
77
|
+
await queryRunner.query(`DROP INDEX "public"."UQ_CloudResource_project_resId"`);
|
|
78
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_CloudResource_projectId"`);
|
|
79
|
+
await queryRunner.query(`DROP TABLE "CloudResource"`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=1780935387827-AddCloudResourceTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780935387827-AddCloudResourceTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Phase 3: Browser / Mobile RUM resource type. Creates the RumApplication
|
|
3
|
+
* resource table, its owner-user / owner-team tables, and the label join
|
|
4
|
+
* table — mirroring the other telemetry-resource shapes so the polymorphic
|
|
5
|
+
* telemetry serviceId can point at a RumApplication row. RUM is keyed per
|
|
6
|
+
* application (service.name), never per end-user device.
|
|
7
|
+
*/
|
|
8
|
+
export class AddRumApplicationTables1780936579718 {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.name = "AddRumApplicationTables1780936579718";
|
|
11
|
+
}
|
|
12
|
+
async up(queryRunner) {
|
|
13
|
+
await queryRunner.query(`CREATE TABLE "RumApplication" ("_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, "slug" character varying(100) NOT NULL, "description" character varying(500), "appIdentifier" character varying(100) NOT NULL, "clientType" character varying(100), "otelCollectorStatus" character varying(100) DEFAULT 'disconnected', "agentVersion" character varying(100), "lastSeenAt" TIMESTAMP WITH TIME ZONE, "retainTelemetryDataForDays" integer, "telemetryRetentionConfig" jsonb, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_RumApplication" PRIMARY KEY ("_id"))`);
|
|
14
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumApplication_projectId" ON "RumApplication" ("projectId") `);
|
|
15
|
+
await queryRunner.query(`CREATE UNIQUE INDEX "UQ_RumApplication_project_appId" ON "RumApplication" ("projectId", "appIdentifier") `);
|
|
16
|
+
await queryRunner.query(`CREATE TABLE "RumApplicationOwnerTeam" ("_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, "teamId" uuid NOT NULL, "rumApplicationId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_RumApplicationOwnerTeam" PRIMARY KEY ("_id"))`);
|
|
17
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_projectId" ON "RumApplicationOwnerTeam" ("projectId") `);
|
|
18
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_teamId" ON "RumApplicationOwnerTeam" ("teamId") `);
|
|
19
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_appId" ON "RumApplicationOwnerTeam" ("rumApplicationId") `);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerTeam_notified" ON "RumApplicationOwnerTeam" ("isOwnerNotified") `);
|
|
21
|
+
await queryRunner.query(`CREATE TABLE "RumApplicationOwnerUser" ("_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, "userId" uuid NOT NULL, "rumApplicationId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_RumApplicationOwnerUser" PRIMARY KEY ("_id"))`);
|
|
22
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_projectId" ON "RumApplicationOwnerUser" ("projectId") `);
|
|
23
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_userId" ON "RumApplicationOwnerUser" ("userId") `);
|
|
24
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_appId" ON "RumApplicationOwnerUser" ("rumApplicationId") `);
|
|
25
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerUser_notified" ON "RumApplicationOwnerUser" ("isOwnerNotified") `);
|
|
26
|
+
await queryRunner.query(`CREATE TABLE "RumApplicationLabel" ("rumApplicationId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumApplicationLabel" PRIMARY KEY ("rumApplicationId", "labelId"))`);
|
|
27
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumApplicationLabel_appId" ON "RumApplicationLabel" ("rumApplicationId") `);
|
|
28
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumApplicationLabel_labelId" ON "RumApplicationLabel" ("labelId") `);
|
|
29
|
+
// Foreign keys: RumApplication
|
|
30
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
31
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
32
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" ADD CONSTRAINT "FK_RumApplication_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
33
|
+
// Foreign keys: RumApplicationOwnerTeam
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_teamId" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
38
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" ADD CONSTRAINT "FK_RumAppOwnerTeam_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
39
|
+
// Foreign keys: RumApplicationOwnerUser
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_projectId" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_userId" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
43
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
44
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" ADD CONSTRAINT "FK_RumAppOwnerUser_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
45
|
+
// Foreign keys: RumApplicationLabel join table
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabel" ADD CONSTRAINT "FK_RumApplicationLabel_appId" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
47
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabel" ADD CONSTRAINT "FK_RumApplicationLabel_labelId" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
48
|
+
}
|
|
49
|
+
async down(queryRunner) {
|
|
50
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabel" DROP CONSTRAINT "FK_RumApplicationLabel_labelId"`);
|
|
51
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabel" DROP CONSTRAINT "FK_RumApplicationLabel_appId"`);
|
|
52
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_deletedBy"`);
|
|
53
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_createdBy"`);
|
|
54
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_appId"`);
|
|
55
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_userId"`);
|
|
56
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerUser" DROP CONSTRAINT "FK_RumAppOwnerUser_projectId"`);
|
|
57
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_deletedBy"`);
|
|
58
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_createdBy"`);
|
|
59
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_appId"`);
|
|
60
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_teamId"`);
|
|
61
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerTeam" DROP CONSTRAINT "FK_RumAppOwnerTeam_projectId"`);
|
|
62
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_deletedBy"`);
|
|
63
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_createdBy"`);
|
|
64
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" DROP CONSTRAINT "FK_RumApplication_projectId"`);
|
|
65
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumApplicationLabel_labelId"`);
|
|
66
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumApplicationLabel_appId"`);
|
|
67
|
+
await queryRunner.query(`DROP TABLE "RumApplicationLabel"`);
|
|
68
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_notified"`);
|
|
69
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_appId"`);
|
|
70
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_userId"`);
|
|
71
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerUser_projectId"`);
|
|
72
|
+
await queryRunner.query(`DROP TABLE "RumApplicationOwnerUser"`);
|
|
73
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_notified"`);
|
|
74
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_appId"`);
|
|
75
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_teamId"`);
|
|
76
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumAppOwnerTeam_projectId"`);
|
|
77
|
+
await queryRunner.query(`DROP TABLE "RumApplicationOwnerTeam"`);
|
|
78
|
+
await queryRunner.query(`DROP INDEX "public"."UQ_RumApplication_project_appId"`);
|
|
79
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_RumApplication_projectId"`);
|
|
80
|
+
await queryRunner.query(`DROP TABLE "RumApplication"`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=1780936579718-AddRumApplicationTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780936579718-AddRumApplicationTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Bucket A (Serverless): label-rule + owner-rule tables that drive automatic
|
|
3
|
+
* label attachment and owner assignment when a ServerlessFunction is created.
|
|
4
|
+
* Mirrors the Host*Rule shape (match criteria via labels + name/description
|
|
5
|
+
* regex; actions via labelsToAdd / ownerUsers / ownerTeams).
|
|
6
|
+
*/
|
|
7
|
+
export class AddServerlessFunctionRuleTables1780938407319 {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.name = "AddServerlessFunctionRuleTables1780938407319";
|
|
10
|
+
}
|
|
11
|
+
async up(queryRunner) {
|
|
12
|
+
// Label rule table
|
|
13
|
+
await queryRunner.query(`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"))`);
|
|
14
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_projectId" ON "ServerlessFunctionLabelRule" ("projectId") `);
|
|
15
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_name" ON "ServerlessFunctionLabelRule" ("name") `);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLabelRule_enabled" ON "ServerlessFunctionLabelRule" ("isEnabled") `);
|
|
17
|
+
// Owner rule table
|
|
18
|
+
await queryRunner.query(`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"))`);
|
|
19
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_projectId" ON "ServerlessFunctionOwnerRule" ("projectId") `);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_name" ON "ServerlessFunctionOwnerRule" ("name") `);
|
|
21
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnOwnerRule_enabled" ON "ServerlessFunctionOwnerRule" ("isEnabled") `);
|
|
22
|
+
// Join tables
|
|
23
|
+
await queryRunner.query(`CREATE TABLE "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleMatchLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`);
|
|
24
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_rule" ON "SrvlessFnLabelRuleMatchLabel" ("serverlessFunctionLabelRuleId") `);
|
|
25
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRMatchLabel_label" ON "SrvlessFnLabelRuleMatchLabel" ("labelId") `);
|
|
26
|
+
await queryRunner.query(`CREATE TABLE "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnLabelRuleAddLabel" PRIMARY KEY ("serverlessFunctionLabelRuleId", "labelId"))`);
|
|
27
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRAddLabel_rule" ON "SrvlessFnLabelRuleAddLabel" ("serverlessFunctionLabelRuleId") `);
|
|
28
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnLRAddLabel_label" ON "SrvlessFnLabelRuleAddLabel" ("labelId") `);
|
|
29
|
+
await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleMatchLabel" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "labelId"))`);
|
|
30
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORMatchLabel_rule" ON "SrvlessFnOwnerRuleMatchLabel" ("serverlessFunctionOwnerRuleId") `);
|
|
31
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORMatchLabel_label" ON "SrvlessFnOwnerRuleMatchLabel" ("labelId") `);
|
|
32
|
+
await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleUser" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "userId"))`);
|
|
33
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORUser_rule" ON "SrvlessFnOwnerRuleUser" ("serverlessFunctionOwnerRuleId") `);
|
|
34
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORUser_user" ON "SrvlessFnOwnerRuleUser" ("userId") `);
|
|
35
|
+
await queryRunner.query(`CREATE TABLE "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_SrvlessFnOwnerRuleTeam" PRIMARY KEY ("serverlessFunctionOwnerRuleId", "teamId"))`);
|
|
36
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORTeam_rule" ON "SrvlessFnOwnerRuleTeam" ("serverlessFunctionOwnerRuleId") `);
|
|
37
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnORTeam_team" ON "SrvlessFnOwnerRuleTeam" ("teamId") `);
|
|
38
|
+
// Foreign keys: rule tables -> Project / User
|
|
39
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionLabelRule" ADD CONSTRAINT "FK_SrvlessFnLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
43
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
44
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionOwnerRule" ADD CONSTRAINT "FK_SrvlessFnOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
45
|
+
// Foreign keys: join tables
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
47
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
48
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_rule" FOREIGN KEY ("serverlessFunctionLabelRuleId") REFERENCES "ServerlessFunctionLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
49
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnLabelRuleAddLabel" ADD CONSTRAINT "FK_SrvlessFnLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
50
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
51
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleMatchLabel" ADD CONSTRAINT "FK_SrvlessFnORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
52
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
53
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleUser" ADD CONSTRAINT "FK_SrvlessFnORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
54
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_rule" FOREIGN KEY ("serverlessFunctionOwnerRuleId") REFERENCES "ServerlessFunctionOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
55
|
+
await queryRunner.query(`ALTER TABLE "SrvlessFnOwnerRuleTeam" ADD CONSTRAINT "FK_SrvlessFnORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
56
|
+
}
|
|
57
|
+
async down(queryRunner) {
|
|
58
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleTeam"`);
|
|
59
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleUser"`);
|
|
60
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnOwnerRuleMatchLabel"`);
|
|
61
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleAddLabel"`);
|
|
62
|
+
await queryRunner.query(`DROP TABLE "SrvlessFnLabelRuleMatchLabel"`);
|
|
63
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionOwnerRule"`);
|
|
64
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionLabelRule"`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=1780938407319-AddServerlessFunctionRuleTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780938407319-AddServerlessFunctionRuleTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Bucket A (Cloud): label-rule + owner-rule tables that drive automatic label
|
|
3
|
+
* attachment and owner assignment when a CloudResource is created.
|
|
4
|
+
*/
|
|
5
|
+
export class AddCloudResourceRuleTables1780940721814 {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = "AddCloudResourceRuleTables1780940721814";
|
|
8
|
+
}
|
|
9
|
+
async up(queryRunner) {
|
|
10
|
+
await queryRunner.query(`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"))`);
|
|
11
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_projectId" ON "CloudResourceLabelRule" ("projectId") `);
|
|
12
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_name" ON "CloudResourceLabelRule" ("name") `);
|
|
13
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLabelRule_enabled" ON "CloudResourceLabelRule" ("isEnabled") `);
|
|
14
|
+
await queryRunner.query(`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"))`);
|
|
15
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_projectId" ON "CloudResourceOwnerRule" ("projectId") `);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_name" ON "CloudResourceOwnerRule" ("name") `);
|
|
17
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResOwnerRule_enabled" ON "CloudResourceOwnerRule" ("isEnabled") `);
|
|
18
|
+
await queryRunner.query(`CREATE TABLE "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleMatchLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`);
|
|
19
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLRMatchLabel_rule" ON "CloudResLabelRuleMatchLabel" ("cloudResourceLabelRuleId") `);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLRMatchLabel_label" ON "CloudResLabelRuleMatchLabel" ("labelId") `);
|
|
21
|
+
await queryRunner.query(`CREATE TABLE "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResLabelRuleAddLabel" PRIMARY KEY ("cloudResourceLabelRuleId", "labelId"))`);
|
|
22
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLRAddLabel_rule" ON "CloudResLabelRuleAddLabel" ("cloudResourceLabelRuleId") `);
|
|
23
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResLRAddLabel_label" ON "CloudResLabelRuleAddLabel" ("labelId") `);
|
|
24
|
+
await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleMatchLabel" PRIMARY KEY ("cloudResourceOwnerRuleId", "labelId"))`);
|
|
25
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORMatchLabel_rule" ON "CloudResOwnerRuleMatchLabel" ("cloudResourceOwnerRuleId") `);
|
|
26
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORMatchLabel_label" ON "CloudResOwnerRuleMatchLabel" ("labelId") `);
|
|
27
|
+
await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleUser" PRIMARY KEY ("cloudResourceOwnerRuleId", "userId"))`);
|
|
28
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORUser_rule" ON "CloudResOwnerRuleUser" ("cloudResourceOwnerRuleId") `);
|
|
29
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORUser_user" ON "CloudResOwnerRuleUser" ("userId") `);
|
|
30
|
+
await queryRunner.query(`CREATE TABLE "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_CloudResOwnerRuleTeam" PRIMARY KEY ("cloudResourceOwnerRuleId", "teamId"))`);
|
|
31
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORTeam_rule" ON "CloudResOwnerRuleTeam" ("cloudResourceOwnerRuleId") `);
|
|
32
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResORTeam_team" ON "CloudResOwnerRuleTeam" ("teamId") `);
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceLabelRule" ADD CONSTRAINT "FK_CloudResLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
38
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceOwnerRule" ADD CONSTRAINT "FK_CloudResOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
39
|
+
await queryRunner.query(`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "CloudResLabelRuleMatchLabel" ADD CONSTRAINT "FK_CloudResLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_rule" FOREIGN KEY ("cloudResourceLabelRuleId") REFERENCES "CloudResourceLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "CloudResLabelRuleAddLabel" ADD CONSTRAINT "FK_CloudResLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
43
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
44
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleMatchLabel" ADD CONSTRAINT "FK_CloudResORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
45
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleUser" ADD CONSTRAINT "FK_CloudResORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
47
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_rule" FOREIGN KEY ("cloudResourceOwnerRuleId") REFERENCES "CloudResourceOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
48
|
+
await queryRunner.query(`ALTER TABLE "CloudResOwnerRuleTeam" ADD CONSTRAINT "FK_CloudResORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
49
|
+
}
|
|
50
|
+
async down(queryRunner) {
|
|
51
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleTeam"`);
|
|
52
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleUser"`);
|
|
53
|
+
await queryRunner.query(`DROP TABLE "CloudResOwnerRuleMatchLabel"`);
|
|
54
|
+
await queryRunner.query(`DROP TABLE "CloudResLabelRuleAddLabel"`);
|
|
55
|
+
await queryRunner.query(`DROP TABLE "CloudResLabelRuleMatchLabel"`);
|
|
56
|
+
await queryRunner.query(`DROP TABLE "CloudResourceOwnerRule"`);
|
|
57
|
+
await queryRunner.query(`DROP TABLE "CloudResourceLabelRule"`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=1780940721814-AddCloudResourceRuleTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780940721814-AddCloudResourceRuleTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Bucket A (RUM): label-rule + owner-rule tables that drive automatic label
|
|
3
|
+
* attachment and owner assignment when a RumApplication is created.
|
|
4
|
+
*/
|
|
5
|
+
export class AddRumApplicationRuleTables1780940998002 {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = "AddRumApplicationRuleTables1780940998002";
|
|
8
|
+
}
|
|
9
|
+
async up(queryRunner) {
|
|
10
|
+
await queryRunner.query(`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"))`);
|
|
11
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLabelRule_projectId" ON "RumApplicationLabelRule" ("projectId") `);
|
|
12
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLabelRule_name" ON "RumApplicationLabelRule" ("name") `);
|
|
13
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLabelRule_enabled" ON "RumApplicationLabelRule" ("isEnabled") `);
|
|
14
|
+
await queryRunner.query(`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"))`);
|
|
15
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerRule_projectId" ON "RumApplicationOwnerRule" ("projectId") `);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerRule_name" ON "RumApplicationOwnerRule" ("name") `);
|
|
17
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppOwnerRule_enabled" ON "RumApplicationOwnerRule" ("isEnabled") `);
|
|
18
|
+
await queryRunner.query(`CREATE TABLE "RumAppLabelRuleMatchLabel" ("rumApplicationLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppLabelRuleMatchLabel" PRIMARY KEY ("rumApplicationLabelRuleId", "labelId"))`);
|
|
19
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLRMatchLabel_rule" ON "RumAppLabelRuleMatchLabel" ("rumApplicationLabelRuleId") `);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLRMatchLabel_label" ON "RumAppLabelRuleMatchLabel" ("labelId") `);
|
|
21
|
+
await queryRunner.query(`CREATE TABLE "RumAppLabelRuleAddLabel" ("rumApplicationLabelRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppLabelRuleAddLabel" PRIMARY KEY ("rumApplicationLabelRuleId", "labelId"))`);
|
|
22
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLRAddLabel_rule" ON "RumAppLabelRuleAddLabel" ("rumApplicationLabelRuleId") `);
|
|
23
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppLRAddLabel_label" ON "RumAppLabelRuleAddLabel" ("labelId") `);
|
|
24
|
+
await queryRunner.query(`CREATE TABLE "RumAppOwnerRuleMatchLabel" ("rumApplicationOwnerRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleMatchLabel" PRIMARY KEY ("rumApplicationOwnerRuleId", "labelId"))`);
|
|
25
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORMatchLabel_rule" ON "RumAppOwnerRuleMatchLabel" ("rumApplicationOwnerRuleId") `);
|
|
26
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORMatchLabel_label" ON "RumAppOwnerRuleMatchLabel" ("labelId") `);
|
|
27
|
+
await queryRunner.query(`CREATE TABLE "RumAppOwnerRuleUser" ("rumApplicationOwnerRuleId" uuid NOT NULL, "userId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleUser" PRIMARY KEY ("rumApplicationOwnerRuleId", "userId"))`);
|
|
28
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORUser_rule" ON "RumAppOwnerRuleUser" ("rumApplicationOwnerRuleId") `);
|
|
29
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORUser_user" ON "RumAppOwnerRuleUser" ("userId") `);
|
|
30
|
+
await queryRunner.query(`CREATE TABLE "RumAppOwnerRuleTeam" ("rumApplicationOwnerRuleId" uuid NOT NULL, "teamId" uuid NOT NULL, CONSTRAINT "PK_RumAppOwnerRuleTeam" PRIMARY KEY ("rumApplicationOwnerRuleId", "teamId"))`);
|
|
31
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORTeam_rule" ON "RumAppOwnerRuleTeam" ("rumApplicationOwnerRuleId") `);
|
|
32
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppORTeam_team" ON "RumAppOwnerRuleTeam" ("teamId") `);
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationLabelRule" ADD CONSTRAINT "FK_RumAppLabelRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_createdBy" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
38
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationOwnerRule" ADD CONSTRAINT "FK_RumAppOwnerRule_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
39
|
+
await queryRunner.query(`ALTER TABLE "RumAppLabelRuleMatchLabel" ADD CONSTRAINT "FK_RumAppLRMatchLabel_rule" FOREIGN KEY ("rumApplicationLabelRuleId") REFERENCES "RumApplicationLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "RumAppLabelRuleMatchLabel" ADD CONSTRAINT "FK_RumAppLRMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "RumAppLabelRuleAddLabel" ADD CONSTRAINT "FK_RumAppLRAddLabel_rule" FOREIGN KEY ("rumApplicationLabelRuleId") REFERENCES "RumApplicationLabelRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "RumAppLabelRuleAddLabel" ADD CONSTRAINT "FK_RumAppLRAddLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
43
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleMatchLabel" ADD CONSTRAINT "FK_RumAppORMatchLabel_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
44
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleMatchLabel" ADD CONSTRAINT "FK_RumAppORMatchLabel_label" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
45
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleUser" ADD CONSTRAINT "FK_RumAppORUser_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleUser" ADD CONSTRAINT "FK_RumAppORUser_user" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
47
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleTeam" ADD CONSTRAINT "FK_RumAppORTeam_rule" FOREIGN KEY ("rumApplicationOwnerRuleId") REFERENCES "RumApplicationOwnerRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
48
|
+
await queryRunner.query(`ALTER TABLE "RumAppOwnerRuleTeam" ADD CONSTRAINT "FK_RumAppORTeam_team" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
49
|
+
}
|
|
50
|
+
async down(queryRunner) {
|
|
51
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleTeam"`);
|
|
52
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleUser"`);
|
|
53
|
+
await queryRunner.query(`DROP TABLE "RumAppOwnerRuleMatchLabel"`);
|
|
54
|
+
await queryRunner.query(`DROP TABLE "RumAppLabelRuleAddLabel"`);
|
|
55
|
+
await queryRunner.query(`DROP TABLE "RumAppLabelRuleMatchLabel"`);
|
|
56
|
+
await queryRunner.query(`DROP TABLE "RumApplicationOwnerRule"`);
|
|
57
|
+
await queryRunner.query(`DROP TABLE "RumApplicationLabelRule"`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=1780940998002-AddRumApplicationRuleTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780940998002-AddRumApplicationRuleTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Bucket B: live-inventory child tables for the new telemetry resource types.
|
|
3
|
+
* - ServerlessFunctionInstance (faas.instance)
|
|
4
|
+
* - CloudResourceInstance (service.instance.id + container cpu/mem)
|
|
5
|
+
* - RumApplicationClient (browser.platform / device.model, coarse by platform)
|
|
6
|
+
* Populated from the ingest auto-discovery path; not user-editable.
|
|
7
|
+
*/
|
|
8
|
+
export class AddTelemetryResourceInventoryTables1780941762204 {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.name = "AddTelemetryResourceInventoryTables1780941762204";
|
|
11
|
+
}
|
|
12
|
+
async up(queryRunner) {
|
|
13
|
+
// ServerlessFunctionInstance
|
|
14
|
+
await queryRunner.query(`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"))`);
|
|
15
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnInstance_projectId" ON "ServerlessFunctionInstance" ("projectId") `);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_SrvlessFnInstance_fnId" ON "ServerlessFunctionInstance" ("serverlessFunctionId") `);
|
|
17
|
+
await queryRunner.query(`CREATE UNIQUE INDEX "UQ_SrvlessFnInstance" ON "ServerlessFunctionInstance" ("projectId", "serverlessFunctionId", "instanceName") `);
|
|
18
|
+
// CloudResourceInstance
|
|
19
|
+
await queryRunner.query(`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"))`);
|
|
20
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResInstance_projectId" ON "CloudResourceInstance" ("projectId") `);
|
|
21
|
+
await queryRunner.query(`CREATE INDEX "IDX_CloudResInstance_resId" ON "CloudResourceInstance" ("cloudResourceId") `);
|
|
22
|
+
await queryRunner.query(`CREATE UNIQUE INDEX "UQ_CloudResInstance" ON "CloudResourceInstance" ("projectId", "cloudResourceId", "instanceName") `);
|
|
23
|
+
// RumApplicationClient
|
|
24
|
+
await queryRunner.query(`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"))`);
|
|
25
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppClient_projectId" ON "RumApplicationClient" ("projectId") `);
|
|
26
|
+
await queryRunner.query(`CREATE INDEX "IDX_RumAppClient_appId" ON "RumApplicationClient" ("rumApplicationId") `);
|
|
27
|
+
await queryRunner.query(`CREATE UNIQUE INDEX "UQ_RumAppClient" ON "RumApplicationClient" ("projectId", "rumApplicationId", "clientName") `);
|
|
28
|
+
// Foreign keys
|
|
29
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
30
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_fn" FOREIGN KEY ("serverlessFunctionId") REFERENCES "ServerlessFunction"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
31
|
+
await queryRunner.query(`ALTER TABLE "ServerlessFunctionInstance" ADD CONSTRAINT "FK_SrvlessFnInstance_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
32
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_res" FOREIGN KEY ("cloudResourceId") REFERENCES "CloudResource"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "CloudResourceInstance" ADD CONSTRAINT "FK_CloudResInstance_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_project" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_app" FOREIGN KEY ("rumApplicationId") REFERENCES "RumApplication"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "RumApplicationClient" ADD CONSTRAINT "FK_RumAppClient_deletedBy" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
38
|
+
}
|
|
39
|
+
async down(queryRunner) {
|
|
40
|
+
await queryRunner.query(`DROP TABLE "RumApplicationClient"`);
|
|
41
|
+
await queryRunner.query(`DROP TABLE "CloudResourceInstance"`);
|
|
42
|
+
await queryRunner.query(`DROP TABLE "ServerlessFunctionInstance"`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=1780941762204-AddTelemetryResourceInventoryTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780941762204-AddTelemetryResourceInventoryTables.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,gDAAgD;IAA7D;QAGS,SAAI,GAAG,kDAAkD,CAAC;IAkFnE,CAAC;IAhFQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,6BAA6B;QAC7B,MAAM,WAAW,CAAC,KAAK,CACrB,giBAAgiB,CACjiB,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+FAA+F,CAChG,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qGAAqG,CACtG,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mIAAmI,CACpI,CAAC;QAEF,wBAAwB;QACxB,MAAM,WAAW,CAAC,KAAK,CACrB,6kBAA6kB,CAC9kB,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,yFAAyF,CAC1F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2FAA2F,CAC5F,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wHAAwH,CACzH,CAAC;QAEF,uBAAuB;QACvB,MAAM,WAAW,CAAC,KAAK,CACrB,ojBAAojB,CACrjB,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oFAAoF,CACrF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uFAAuF,CACxF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kHAAkH,CACnH,CAAC;QAEF,eAAe;QACf,MAAM,WAAW,CAAC,KAAK,CACrB,oLAAoL,CACrL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qMAAqM,CACtM,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,0LAA0L,CAC3L,CAAC;QAEF,MAAM,WAAW,CAAC,KAAK,CACrB,8KAA8K,CAC/K,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sLAAsL,CACvL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oLAAoL,CACrL,CAAC;QAEF,MAAM,WAAW,CAAC,KAAK,CACrB,yKAAyK,CAC1K,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mLAAmL,CACpL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+KAA+K,CAChL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7D,MAAM,WAAW,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC9D,MAAM,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrE,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Adds RumApplication.sdkLanguage (the telemetry.sdk.language resource
|
|
3
|
+
* attribute, e.g. webjs / swift / android). Used to scope a RUM
|
|
4
|
+
* application's client-side telemetry apart from a same-named backend
|
|
5
|
+
* service that shares the same service.name.
|
|
6
|
+
*/
|
|
7
|
+
export class AddRumApplicationSdkLanguage1780985763463 {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.name = "AddRumApplicationSdkLanguage1780985763463";
|
|
10
|
+
}
|
|
11
|
+
async up(queryRunner) {
|
|
12
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" ADD "sdkLanguage" character varying(100)`);
|
|
13
|
+
}
|
|
14
|
+
async down(queryRunner) {
|
|
15
|
+
await queryRunner.query(`ALTER TABLE "RumApplication" DROP COLUMN "sdkLanguage"`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=1780985763463-AddRumApplicationSdkLanguage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780985763463-AddRumApplicationSdkLanguage.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,yCAAyC;IAAtD;QAGS,SAAI,GAAG,2CAA2C,CAAC;IAa5D,CAAC;IAXQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,wDAAwD,CACzD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Cloud resources are re-keyed from per-service.name to per cloud
|
|
3
|
+
* *environment* (cloud.platform + cloud.account.id + cloud.region). The old
|
|
4
|
+
* per-service rows no longer match the new composite resourceIdentifier and
|
|
5
|
+
* would linger as stale entries, so clear CloudResource and its child rows.
|
|
6
|
+
* Discovery recreates environment-level rows from live telemetry on the next
|
|
7
|
+
* ingest. Project-level rule tables are intentionally left untouched.
|
|
8
|
+
*/
|
|
9
|
+
export class RecastCloudResourcesByEnvironment1780987192743 {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.name = "RecastCloudResourcesByEnvironment1780987192743";
|
|
12
|
+
}
|
|
13
|
+
async up(queryRunner) {
|
|
14
|
+
await queryRunner.query(`DELETE FROM "CloudResourceInstance"`);
|
|
15
|
+
await queryRunner.query(`DELETE FROM "CloudResourceLabel"`);
|
|
16
|
+
await queryRunner.query(`DELETE FROM "CloudResourceOwnerUser"`);
|
|
17
|
+
await queryRunner.query(`DELETE FROM "CloudResourceOwnerTeam"`);
|
|
18
|
+
await queryRunner.query(`DELETE FROM "CloudResource"`);
|
|
19
|
+
}
|
|
20
|
+
async down() {
|
|
21
|
+
/*
|
|
22
|
+
* Irreversible data cleanup — environment-level rows re-discover from
|
|
23
|
+
* live telemetry, so there is nothing to restore on down().
|
|
24
|
+
*/
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=1780987192743-RecastCloudResourcesByEnvironment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1780987192743-RecastCloudResourcesByEnvironment.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,8CAA8C;IAA3D;QAGS,SAAI,GAAG,gDAAgD,CAAC;IAgBjE,CAAC;IAdQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC/D,MAAM,WAAW,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5D,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,IAAI;QACf;;;WAGG;IACL,CAAC;CACF"}
|