From f8ac60ea5b119ade9d6002db616cd47639de0d9a Mon Sep 17 00:00:00 2001 From: Anders Kane Date: Tue, 31 Mar 2026 15:29:49 -0400 Subject: [PATCH 1/2] feat(featureserver): add default value for indexes on feature layer metadata --- .changeset/selfish-humans-wait.md | 5 +++++ .../helpers/feature-layer-metadata.spec.js | 7 +++++++ .../src/helpers/table-layer-metadata.spec.js | 21 +++++++++++++++++++ .../featureserver/src/metadata-defaults.js | 1 + ...geoservice-client-requests-no-geom.spec.js | 2 ++ test/helpers/client-response-fixtures.js | 2 ++ 6 files changed, 38 insertions(+) create mode 100644 .changeset/selfish-humans-wait.md diff --git a/.changeset/selfish-humans-wait.md b/.changeset/selfish-humans-wait.md new file mode 100644 index 000000000..70afa8625 --- /dev/null +++ b/.changeset/selfish-humans-wait.md @@ -0,0 +1,5 @@ +--- +'@koopjs/featureserver': minor +--- + +add default value for indexes on feature layer metadata diff --git a/packages/featureserver/src/helpers/feature-layer-metadata.spec.js b/packages/featureserver/src/helpers/feature-layer-metadata.spec.js index 016974e33..a38c54ae1 100644 --- a/packages/featureserver/src/helpers/feature-layer-metadata.spec.js +++ b/packages/featureserver/src/helpers/feature-layer-metadata.spec.js @@ -139,6 +139,7 @@ describe('FeatureLayerMetadata', () => { maxRecordCountFactor: 1, fields: [], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -391,6 +392,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -552,6 +554,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -709,6 +712,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -904,6 +908,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1059,6 +1064,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1227,6 +1233,7 @@ describe('FeatureLayerMetadata', () => { }, ], relationships: [], + indexes: [], capabilities: 'list,of,stuff', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], diff --git a/packages/featureserver/src/helpers/table-layer-metadata.spec.js b/packages/featureserver/src/helpers/table-layer-metadata.spec.js index 043c4ff6c..b5493005e 100644 --- a/packages/featureserver/src/helpers/table-layer-metadata.spec.js +++ b/packages/featureserver/src/helpers/table-layer-metadata.spec.js @@ -130,6 +130,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: [], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -251,6 +252,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -365,6 +367,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -477,6 +480,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -589,6 +593,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -701,6 +706,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -813,6 +819,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -925,6 +932,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1037,6 +1045,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1149,6 +1158,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1261,6 +1271,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1373,6 +1384,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'hello,world', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1485,6 +1497,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query,Extract', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1597,6 +1610,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1709,6 +1723,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1821,6 +1836,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1933,6 +1949,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -1947,6 +1964,7 @@ describe('TableLayerMetadata', () => { { name: 'Hank Williams', relationships: ['something'], + indexes: [], description: 'There is a tear in my beer.', copyrightText: 'copyright-text', templates: ['templates'], @@ -2056,6 +2074,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: ['something'], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -2311,6 +2330,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'list,of,stuff', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], @@ -2432,6 +2452,7 @@ describe('TableLayerMetadata', () => { maxRecordCountFactor: 1, fields: ['fields'], relationships: [], + indexes: [], capabilities: 'list,of,stuff', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, types: [], diff --git a/packages/featureserver/src/metadata-defaults.js b/packages/featureserver/src/metadata-defaults.js index 3329f2ae0..6a2670169 100644 --- a/packages/featureserver/src/metadata-defaults.js +++ b/packages/featureserver/src/metadata-defaults.js @@ -225,6 +225,7 @@ class MetadataDefaults { maxRecordCountFactor: 1, fields: [], relationships: [], + indexes: [], capabilities: 'Query', ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true, diff --git a/test/geoservice-client-requests-no-geom.spec.js b/test/geoservice-client-requests-no-geom.spec.js index 7441ecb09..b6246cfe8 100644 --- a/test/geoservice-client-requests-no-geom.spec.js +++ b/test/geoservice-client-requests-no-geom.spec.js @@ -202,6 +202,7 @@ describe('Typical Geoservice Client request sequence: Dataset with no geometry', }, ], relationships: [], + indexes: [], capabilities: 'Query', maxRecordCount: 2000, ownershipBasedAccessControlForFeatures: { @@ -369,6 +370,7 @@ describe('Typical Geoservice Client request sequence: Dataset with no geometry', }, ], relationships: [], + indexes: [], capabilities: 'Query', maxRecordCount: 2000, ownershipBasedAccessControlForFeatures: { allowOthersToQuery: true }, diff --git a/test/helpers/client-response-fixtures.js b/test/helpers/client-response-fixtures.js index 795809fac..5ef71c7f6 100644 --- a/test/helpers/client-response-fixtures.js +++ b/test/helpers/client-response-fixtures.js @@ -51,6 +51,7 @@ function getServerInfo(id) { supportsRelationshipsResource: false, allowGeometryUpdates: false, relationships: [], + indexes: [], supportedContingentValuesFormats: '', supportedExportFormats: '', supportsAppend: false, @@ -130,6 +131,7 @@ function getLayersInfo(filename, idField) { }, ], relationships: [], + indexes: [], capabilities: 'Query', maxRecordCount: 2000, supportsStatistics: true, From ff10221d6ccff0785aeb7cf90487c6f955f3a916 Mon Sep 17 00:00:00 2001 From: Anders Kane Date: Tue, 31 Mar 2026 15:52:20 -0400 Subject: [PATCH 2/2] revert: revert incorrect change to test fixture --- test/helpers/client-response-fixtures.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/helpers/client-response-fixtures.js b/test/helpers/client-response-fixtures.js index 5ef71c7f6..8fa0fc427 100644 --- a/test/helpers/client-response-fixtures.js +++ b/test/helpers/client-response-fixtures.js @@ -51,7 +51,6 @@ function getServerInfo(id) { supportsRelationshipsResource: false, allowGeometryUpdates: false, relationships: [], - indexes: [], supportedContingentValuesFormats: '', supportedExportFormats: '', supportsAppend: false,