From 90b7d6ac2644fab0959944c9b8af1ae6331bbc8b Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Sat, 16 May 2026 23:14:34 +1200 Subject: [PATCH] fix: trim alert indexes --- app/config/collections/platform.php | 54 +++---------------- .../unit/Migration/MigrationVersionsTest.php | 17 ++++++ 2 files changed, 23 insertions(+), 48 deletions(-) diff --git a/app/config/collections/platform.php b/app/config/collections/platform.php index 61e85a8f09..262161a0d5 100644 --- a/app/config/collections/platform.php +++ b/app/config/collections/platform.php @@ -1243,27 +1243,6 @@ $platformCollections = [ 'lengths' => [Database::LENGTH_KEY, 64, 64], 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], ], - [ - '$id' => ID::custom('_key_resource_read'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['resourceType', 'resourceId', 'read'], - 'lengths' => [64, Database::LENGTH_KEY, 0], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], - ], - [ - '$id' => ID::custom('_key_projectId'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['projectId'], - 'lengths' => [Database::LENGTH_KEY], - 'orders' => [Database::ORDER_ASC], - ], - [ - '$id' => ID::custom('_key_projectInternalId'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['projectInternalId'], - 'lengths' => [0], - 'orders' => [Database::ORDER_ASC], - ], [ '$id' => ID::custom('_key_project'), 'type' => Database::INDEX_KEY, @@ -1274,37 +1253,16 @@ $platformCollections = [ [ '$id' => ID::custom('_key_project_resource'), 'type' => Database::INDEX_KEY, - 'attributes' => ['projectInternalId', 'resourceType', 'resourceId'], - 'lengths' => [0, 64, Database::LENGTH_KEY], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], + 'attributes' => ['projectId', 'projectInternalId', 'resourceType', 'resourceId', 'resourceInternalId'], + 'lengths' => [Database::LENGTH_KEY, 0, 64, Database::LENGTH_KEY, 0], + 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], ], [ '$id' => ID::custom('_key_project_parent_resource'), 'type' => Database::INDEX_KEY, - 'attributes' => ['projectInternalId', 'parentResourceType', 'parentResourceId'], - 'lengths' => [0, 64, Database::LENGTH_KEY], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], - ], - [ - '$id' => ID::custom('_key_resource_type'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['resourceType', 'resourceId', 'type'], - 'lengths' => [64, Database::LENGTH_KEY, 64], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], - ], - [ - '$id' => ID::custom('_key_resource_channel'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['resourceType', 'resourceId', 'channel'], - 'lengths' => [64, Database::LENGTH_KEY, 64], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], - ], - [ - '$id' => ID::custom('_key_resource_messageId'), - 'type' => Database::INDEX_KEY, - 'attributes' => ['resourceType', 'resourceId', 'messageId'], - 'lengths' => [64, Database::LENGTH_KEY, Database::LENGTH_KEY], - 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], + 'attributes' => ['projectId', 'projectInternalId', 'parentResourceType', 'parentResourceId', 'parentResourceInternalId'], + 'lengths' => [Database::LENGTH_KEY, 0, 64, Database::LENGTH_KEY, 0], + 'orders' => [Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC, Database::ORDER_ASC], ], ], ], diff --git a/tests/unit/Migration/MigrationVersionsTest.php b/tests/unit/Migration/MigrationVersionsTest.php index ba3a36aa5e..499c2fdeb3 100644 --- a/tests/unit/Migration/MigrationVersionsTest.php +++ b/tests/unit/Migration/MigrationVersionsTest.php @@ -70,5 +70,22 @@ class MigrationVersionsTest extends TestCase } $this->assertArrayHasKey('resourceInternalId', $attributes); $this->assertArrayHasKey('parentResourceInternalId', $attributes); + + $indexes = []; + foreach ($collection->getAttribute('indexes', []) as $index) { + $id = $index instanceof Document ? $index->getAttribute('$id') : ($index['$id'] ?? ''); + $indexes[$id] = $index instanceof Document ? $index->getAttribute('attributes') : ($index['attributes'] ?? []); + } + + $this->assertSame([ + '_key_messageId', + '_key_recipient', + '_key_project', + '_key_project_resource', + '_key_project_parent_resource', + ], \array_keys($indexes)); + $this->assertSame(['projectId', 'projectInternalId'], $indexes['_key_project']); + $this->assertSame(['projectId', 'projectInternalId', 'resourceType', 'resourceId', 'resourceInternalId'], $indexes['_key_project_resource']); + $this->assertSame(['projectId', 'projectInternalId', 'parentResourceType', 'parentResourceId', 'parentResourceInternalId'], $indexes['_key_project_parent_resource']); } }