fix(data-plane): preserve immutable zone product v1
This commit is contained in:
parent
343812b90d
commit
92d292ce87
|
|
@ -92,7 +92,7 @@ deleted.
|
||||||
|
|
||||||
The active predecessor is package version `0.1.4` at immutable release
|
The active predecessor is package version `0.1.4` at immutable release
|
||||||
`0.1.4-59dc9f7882721d6a`. Package `0.1.5` adds the provider-neutral complete
|
`0.1.4-59dc9f7882721d6a`. Package `0.1.5` adds the provider-neutral complete
|
||||||
snapshot replace mode used by `map.zones.current.v1`; its Platform staging
|
snapshot replace mode used by `map.zones.current.v2`; its Platform staging
|
||||||
remains inert until a separately reviewed Engine-owned transition selects the
|
remains inert until a separately reviewed Engine-owned transition selects the
|
||||||
exact digest and accepts the updated MCP node schema.
|
exact digest and accepts the updated MCP node schema.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,5 @@ Adds the bounded, offset-paged `gelios.geozone` read capability and maps a
|
||||||
complete account generation into `map.gelios-geofences.current.v1`.
|
complete account generation into `map.gelios-geofences.current.v1`.
|
||||||
|
|
||||||
Gelios account geo-objects are deliberately not published into the normative
|
Gelios account geo-objects are deliberately not published into the normative
|
||||||
`map.zones.current.v1` Department of Transport dataset. Independent authorities
|
`map.zones.current.v2` Department of Transport dataset. Independent authorities
|
||||||
must never share one replace generation.
|
must never share one replace generation.
|
||||||
|
|
|
||||||
|
|
@ -46,12 +46,12 @@ assert.deepEqual(validateProviderPackage(geliosProviderPackageV6), { ok: true, e
|
||||||
|
|
||||||
const zonesProduct = geliosProviderPackageV6.dataProducts.find((product) => product.id === "map.gelios-geofences.current.v1");
|
const zonesProduct = geliosProviderPackageV6.dataProducts.find((product) => product.id === "map.gelios-geofences.current.v1");
|
||||||
const registeredZonesProduct = JSON.parse(await readFile(new URL(
|
const registeredZonesProduct = JSON.parse(await readFile(new URL(
|
||||||
"../../../services/external-data-plane/definitions/map.zones.current.v1.json",
|
"../../../services/external-data-plane/definitions/map.zones.current.v2.json",
|
||||||
import.meta.url,
|
import.meta.url,
|
||||||
), "utf8"));
|
), "utf8"));
|
||||||
assert.deepEqual(zonesProduct.semanticTypes, ["map.zone"]);
|
assert.deepEqual(zonesProduct.semanticTypes, ["map.zone"]);
|
||||||
assert.equal(zonesProduct.fieldContracts.geometry.type, "geometry");
|
assert.equal(zonesProduct.fieldContracts.geometry.type, "geometry");
|
||||||
assert.equal(registeredZonesProduct.version, "1.1.0");
|
assert.equal(registeredZonesProduct.version, "2.0.0");
|
||||||
assert.deepEqual(registeredZonesProduct.fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
|
assert.deepEqual(registeredZonesProduct.fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
|
||||||
assert.deepEqual(registeredZonesProduct.fieldContracts.source_adapter.enum, [
|
assert.deepEqual(registeredZonesProduct.fieldContracts.source_adapter.enum, [
|
||||||
"depttrans-mmap-snapshot-v1",
|
"depttrans-mmap-snapshot-v1",
|
||||||
|
|
|
||||||
|
|
@ -1,50 +1,32 @@
|
||||||
{
|
{
|
||||||
"id": "map.zones.current.v1",
|
"id": "map.zones.current.v1",
|
||||||
"version": "1.1.0",
|
"version": "1.0.0",
|
||||||
"ontologyRevision": "ontology.map.zone.v1",
|
"ontologyRevision": "ontology.map.zone.v1",
|
||||||
"deliveryMode": "snapshot+patch",
|
"deliveryMode": "snapshot+patch",
|
||||||
"semanticTypes": ["map.zone"],
|
"semanticTypes": ["map.zone"],
|
||||||
"fields": [
|
"fields": [
|
||||||
"area_square_meters",
|
"area_square_meters",
|
||||||
"applies_to_couriers",
|
|
||||||
"applies_to_kicksharing",
|
|
||||||
"dataset_authority",
|
|
||||||
"dataset_id",
|
|
||||||
"description",
|
"description",
|
||||||
"display_name",
|
"display_name",
|
||||||
"geometry",
|
"geometry",
|
||||||
"geometry_kind",
|
"geometry_kind",
|
||||||
"max_speed_kph",
|
"max_speed_kph",
|
||||||
"perimeter_meters",
|
"perimeter_meters",
|
||||||
"schedule_timezone",
|
|
||||||
"source_adapter",
|
|
||||||
"source_created_at",
|
|
||||||
"source_kind",
|
"source_kind",
|
||||||
"source_revision",
|
"source_revision",
|
||||||
"source_updated_at",
|
"style_color"
|
||||||
"style_color",
|
|
||||||
"weekly_speed_schedule"
|
|
||||||
],
|
],
|
||||||
"fieldContracts": {
|
"fieldContracts": {
|
||||||
"area_square_meters": { "type": "number", "required": false, "minimum": 0 },
|
"area_square_meters": { "type": "number", "required": false, "minimum": 0 },
|
||||||
"applies_to_couriers": { "type": "boolean", "required": false },
|
|
||||||
"applies_to_kicksharing": { "type": "boolean", "required": false },
|
|
||||||
"dataset_authority": { "type": "string", "required": true, "enum": ["moscow-department-of-transport"] },
|
|
||||||
"dataset_id": { "type": "string", "required": true, "enum": ["pmd-slow-zones"] },
|
|
||||||
"description": { "type": "string", "required": false },
|
"description": { "type": "string", "required": false },
|
||||||
"display_name": { "type": "string", "required": true },
|
"display_name": { "type": "string", "required": true },
|
||||||
"geometry": { "type": "geometry", "required": true },
|
"geometry": { "type": "geometry", "required": true },
|
||||||
"geometry_kind": { "type": "string", "required": true, "enum": ["circle", "corridor", "polygon"] },
|
"geometry_kind": { "type": "string", "required": true, "enum": ["circle", "corridor", "polygon"] },
|
||||||
"max_speed_kph": { "type": "number", "required": false, "minimum": 0 },
|
"max_speed_kph": { "type": "number", "required": false, "minimum": 0 },
|
||||||
"perimeter_meters": { "type": "number", "required": false, "minimum": 0 },
|
"perimeter_meters": { "type": "number", "required": false, "minimum": 0 },
|
||||||
"schedule_timezone": { "type": "string", "required": false, "enum": ["Europe/Moscow"] },
|
"source_kind": { "type": "string", "required": true, "enum": ["live_api", "versioned_snapshot"] },
|
||||||
"source_adapter": { "type": "string", "required": true, "enum": ["depttrans-mmap-snapshot-v1", "depttrans-api-snapshot-v1"] },
|
|
||||||
"source_created_at": { "type": "string", "required": false },
|
|
||||||
"source_kind": { "type": "string", "required": true, "enum": ["versioned_snapshot"] },
|
|
||||||
"source_revision": { "type": "string", "required": true },
|
"source_revision": { "type": "string", "required": true },
|
||||||
"source_updated_at": { "type": "string", "required": false },
|
"style_color": { "type": "string", "required": false }
|
||||||
"style_color": { "type": "string", "required": false },
|
|
||||||
"weekly_speed_schedule": { "type": "string_array", "required": false }
|
|
||||||
},
|
},
|
||||||
"history": { "mode": "none", "retentionDays": 1 }
|
"history": { "mode": "none", "retentionDays": 1 }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
"id": "map.zones.current.v2",
|
||||||
|
"version": "2.0.0",
|
||||||
|
"ontologyRevision": "ontology.map.zone.v1",
|
||||||
|
"deliveryMode": "snapshot+patch",
|
||||||
|
"semanticTypes": ["map.zone"],
|
||||||
|
"fields": [
|
||||||
|
"area_square_meters",
|
||||||
|
"applies_to_couriers",
|
||||||
|
"applies_to_kicksharing",
|
||||||
|
"dataset_authority",
|
||||||
|
"dataset_id",
|
||||||
|
"description",
|
||||||
|
"display_name",
|
||||||
|
"geometry",
|
||||||
|
"geometry_kind",
|
||||||
|
"max_speed_kph",
|
||||||
|
"perimeter_meters",
|
||||||
|
"schedule_timezone",
|
||||||
|
"source_adapter",
|
||||||
|
"source_created_at",
|
||||||
|
"source_kind",
|
||||||
|
"source_revision",
|
||||||
|
"source_updated_at",
|
||||||
|
"style_color",
|
||||||
|
"weekly_speed_schedule"
|
||||||
|
],
|
||||||
|
"fieldContracts": {
|
||||||
|
"area_square_meters": { "type": "number", "required": false, "minimum": 0 },
|
||||||
|
"applies_to_couriers": { "type": "boolean", "required": false },
|
||||||
|
"applies_to_kicksharing": { "type": "boolean", "required": false },
|
||||||
|
"dataset_authority": { "type": "string", "required": true, "enum": ["moscow-department-of-transport"] },
|
||||||
|
"dataset_id": { "type": "string", "required": true, "enum": ["pmd-slow-zones"] },
|
||||||
|
"description": { "type": "string", "required": false },
|
||||||
|
"display_name": { "type": "string", "required": true },
|
||||||
|
"geometry": { "type": "geometry", "required": true },
|
||||||
|
"geometry_kind": { "type": "string", "required": true, "enum": ["circle", "corridor", "polygon"] },
|
||||||
|
"max_speed_kph": { "type": "number", "required": false, "minimum": 0 },
|
||||||
|
"perimeter_meters": { "type": "number", "required": false, "minimum": 0 },
|
||||||
|
"schedule_timezone": { "type": "string", "required": false, "enum": ["Europe/Moscow"] },
|
||||||
|
"source_adapter": { "type": "string", "required": true, "enum": ["depttrans-mmap-snapshot-v1", "depttrans-api-snapshot-v1"] },
|
||||||
|
"source_created_at": { "type": "string", "required": false },
|
||||||
|
"source_kind": { "type": "string", "required": true, "enum": ["versioned_snapshot"] },
|
||||||
|
"source_revision": { "type": "string", "required": true },
|
||||||
|
"source_updated_at": { "type": "string", "required": false },
|
||||||
|
"style_color": { "type": "string", "required": false },
|
||||||
|
"weekly_speed_schedule": { "type": "string_array", "required": false }
|
||||||
|
},
|
||||||
|
"history": { "mode": "none", "retentionDays": 1 }
|
||||||
|
}
|
||||||
|
|
@ -12,6 +12,7 @@ assert.deepEqual(bundled.map((definition) => definition.id), [
|
||||||
"fleet.positions.current.v3",
|
"fleet.positions.current.v3",
|
||||||
"fleet.positions.current.v4",
|
"fleet.positions.current.v4",
|
||||||
"map.zones.current.v1",
|
"map.zones.current.v1",
|
||||||
|
"map.zones.current.v2",
|
||||||
]);
|
]);
|
||||||
assert.deepEqual(bundled[0].semanticTypes, ["map.moving_object"]);
|
assert.deepEqual(bundled[0].semanticTypes, ["map.moving_object"]);
|
||||||
assert.equal(bundled[0].ontologyRevision, "ontology.map.moving_object.v1");
|
assert.equal(bundled[0].ontologyRevision, "ontology.map.moving_object.v1");
|
||||||
|
|
@ -46,12 +47,19 @@ assert.deepEqual(bundled[3].fieldContracts.movement_state, {
|
||||||
required: true,
|
required: true,
|
||||||
enum: ["moving", "stopped"],
|
enum: ["moving", "stopped"],
|
||||||
});
|
});
|
||||||
assert.equal(bundled[4].version, "1.1.0");
|
assert.equal(bundled[4].version, "1.0.0");
|
||||||
assert.equal(bundled[4].ontologyRevision, "ontology.map.zone.v1");
|
assert.equal(bundled[4].ontologyRevision, "ontology.map.zone.v1");
|
||||||
assert.deepEqual(bundled[4].semanticTypes, ["map.zone"]);
|
assert.deepEqual(bundled[4].semanticTypes, ["map.zone"]);
|
||||||
assert.deepEqual(bundled[4].fieldContracts.geometry, { type: "geometry", required: true });
|
assert.deepEqual(bundled[4].fieldContracts.geometry, { type: "geometry", required: true });
|
||||||
|
assert.equal(bundled[4].fields.includes("dataset_authority"), false);
|
||||||
|
assert.equal(bundled[5].version, "2.0.0");
|
||||||
|
assert.equal(bundled[5].ontologyRevision, "ontology.map.zone.v1");
|
||||||
|
assert.deepEqual(bundled[5].semanticTypes, ["map.zone"]);
|
||||||
|
assert.deepEqual(bundled[5].fieldContracts.geometry, { type: "geometry", required: true });
|
||||||
|
assert.deepEqual(bundled[5].fieldContracts.dataset_authority.enum, ["moscow-department-of-transport"]);
|
||||||
assert.equal(Object.keys(bundled[3].fieldContracts).length, bundled[3].fields.length);
|
assert.equal(Object.keys(bundled[3].fieldContracts).length, bundled[3].fields.length);
|
||||||
assert.equal(Object.keys(bundled[4].fieldContracts).length, bundled[4].fields.length);
|
assert.equal(Object.keys(bundled[4].fieldContracts).length, bundled[4].fields.length);
|
||||||
|
assert.equal(Object.keys(bundled[5].fieldContracts).length, bundled[5].fields.length);
|
||||||
|
|
||||||
const directory = await mkdtemp(join(tmpdir(), "nodedc-edp-definitions-"));
|
const directory = await mkdtemp(join(tmpdir(), "nodedc-edp-definitions-"));
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue