{"revision":"2ee36f01702ac8ce","role":"public-data-interoperability-layer","delivery":"materialized-snapshot","principle":"Authoritative source → Maio interoperability layer → applications. Source identity, limitations and reuse rights travel with the data.","limitations":["Not all connected data is authoritative. Inspect each source classification and provenanceStatus.","Refreshes are manual; some source publication links and dates remain unknown.","This discovery catalog is not a claim of DCAT-AP or OGC conformance."],"domains":[{"id":"agriculture","title":"Maio Agriculture","status":"available","delivery":"materialized-snapshot","sourceIds":["ingt-carta-agricola-maio"],"links":{"self":"/api/v1/agriculture","landUse":"/api/v1/agriculture/land-use","areas":"/api/v1/agriculture/areas"}},{"id":"astronomy","title":"Maio Astronomy","status":"available","delivery":"on-demand-calculation","sourceIds":["astronomy-engine","d3-celestial-constellations"],"links":{"self":"/api/v1/astronomy","page":"/night-sky"}},{"aliasOf":"astronomy","id":"night-sky","title":"Maio Night Sky","status":"available","delivery":"on-demand-calculation","sourceIds":["astronomy-engine","d3-celestial-constellations"],"links":{"self":"/api/v1/night-sky","page":"/night-sky","constellations":"/api/v1/night-sky/constellations"}}],"collections":[{"id":"roads","title":"Roads","status":"planned","links":{"self":"/api/v1/collections/roads","items":"/api/v1/collections/roads/items"},"sourceIds":["transport_network"]},{"id":"trails","title":"Trails","status":"available","links":{"self":"/api/v1/collections/trails","items":"/api/v1/collections/trails/items"},"sourceIds":["guide-offroad","transport_network","trilhas_osm"]},{"id":"beaches","title":"Beaches","status":"available","links":{"self":"/api/v1/collections/beaches","items":"/api/v1/collections/beaches/items"},"sourceIds":["beaches_osm","guide-places","natural_features","visit-maio"]},{"id":"protected-areas","title":"Protected areas","status":"available","links":{"self":"/api/v1/collections/protected-areas","items":"/api/v1/collections/protected-areas/items"},"sourceIds":["guide-places","protected_areas","visit-maio"]},{"id":"businesses","title":"Businesses","status":"available","links":{"self":"/api/v1/collections/businesses","items":"/api/v1/collections/businesses/items"},"sourceIds":["guide-places","maio-guide","places_osm_raw","visit-maio"]},{"id":"public-infrastructure","title":"Public infrastructure","status":"available","links":{"self":"/api/v1/collections/public-infrastructure","items":"/api/v1/collections/public-infrastructure/items"},"sourceIds":["guide-places","places_osm_raw","visit-maio"]},{"id":"water-points","title":"Water points","status":"no-records","links":{"self":"/api/v1/collections/water-points","items":"/api/v1/collections/water-points/items"},"sourceIds":[]},{"id":"sports","title":"Sports infrastructure","status":"available","links":{"self":"/api/v1/collections/sports","items":"/api/v1/collections/sports/items"},"sourceIds":["guide-places","planned-sports","visit-maio"]},{"id":"tourism","title":"Tourism assets","status":"available","links":{"self":"/api/v1/collections/tourism","items":"/api/v1/collections/tourism/items"},"sourceIds":["guide-offroad","guide-places","maio-guide","places_osm_raw","visit-maio"]},{"id":"transport","title":"Transport","status":"available","links":{"self":"/api/v1/collections/transport","items":"/api/v1/collections/transport/items"},"sourceIds":["enapor-porto-ingles","places_osm_raw","transport_network","user-porto-ingles-coordinates"]},{"id":"hydrology","title":"Hydrology","status":"available","links":{"self":"/api/v1/collections/hydrology","items":"/api/v1/collections/hydrology/items"},"sourceIds":["guide-places","hydrology","natural_features","visit-maio"]},{"id":"natural-features","title":"Natural features","status":"available","links":{"self":"/api/v1/collections/natural-features","items":"/api/v1/collections/natural-features/items"},"sourceIds":["guide-places","hydrology","natural_features","visit-maio"]},{"id":"agriculture","title":"Agriculture","status":"available","links":{"self":"/api/v1/collections/agriculture","items":"/api/v1/collections/agriculture/items"},"sourceIds":["ingt-carta-agricola-maio"]},{"id":"settlements","title":"Settlements","status":"available","links":{"self":"/api/v1/collections/settlements","items":"/api/v1/collections/settlements/items"},"sourceIds":["guide-places","guide-settlements","settlements","visit-maio"]},{"id":"zoning","title":"Planning zones","status":"available","links":{"self":"/api/v1/collections/zoning","items":"/api/v1/collections/zoning/items"},"sourceIds":["zoning_special"]},{"id":"observations","title":"Environmental observations","status":"available","links":{"self":"/api/v1/collections/observations","items":"/api/v1/collections/observations/items"},"sourceIds":["open-meteo-air","open-meteo-marine","open-meteo-weather"]},{"id":"sensors","title":"Live sensors","status":"planned","links":{"self":"/api/v1/collections/sensors","items":"/api/v1/collections/sensors/items"},"sourceIds":[]},{"id":"admin-boundaries","title":"Administrative boundaries","status":"planned","links":{"self":"/api/v1/collections/admin-boundaries","items":"/api/v1/collections/admin-boundaries/items"},"sourceIds":[]},{"id":"localities","title":"Localities","status":"available","links":{"self":"/api/v1/collections/localities","items":"/api/v1/collections/localities/items"},"sourceIds":["guide-places","guide-settlements","settlements","visit-maio"]},{"id":"schools","title":"Schools","status":"available","links":{"self":"/api/v1/collections/schools","items":"/api/v1/collections/schools/items"},"sourceIds":["guide-places","places_osm_raw","visit-maio"]},{"id":"health","title":"Health","status":"available","links":{"self":"/api/v1/collections/health","items":"/api/v1/collections/health/items"},"sourceIds":["places_osm_raw"]},{"id":"government","title":"Government","status":"planned","links":{"self":"/api/v1/collections/government","items":"/api/v1/collections/government/items"},"sourceIds":[]},{"id":"heritage","title":"Heritage","status":"available","links":{"self":"/api/v1/collections/heritage","items":"/api/v1/collections/heritage/items"},"sourceIds":["guide-places","visit-maio"]},{"id":"land-use","title":"Land use","status":"available","links":{"self":"/api/v1/collections/land-use","items":"/api/v1/collections/land-use/items"},"sourceIds":["natural_features"]},{"id":"waste-infrastructure","title":"Waste infrastructure","status":"planned","links":{"self":"/api/v1/collections/waste-infrastructure","items":"/api/v1/collections/waste-infrastructure/items"},"sourceIds":[]},{"id":"connectivity","title":"Connectivity","status":"planned","links":{"self":"/api/v1/collections/connectivity","items":"/api/v1/collections/connectivity/items"},"sourceIds":[]},{"id":"business-statistics","title":"Business statistics","status":"available","links":{"self":"/api/v1/collections/business-statistics","items":"/api/v1/collections/business-statistics/items"},"sourceIds":["iae-2024-user-workbook"]}],"datasets":[{"id":"energy","title":"Maio energy","status":"available","recordsStatus":"planned","sourceIds":["dataset-energy"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/energy","records":"/api/v1/datasets/energy/records"}},{"id":"tourism-2025","title":"Tourism · 2025","status":"available","recordsStatus":"planned","sourceIds":["dataset-tourism-2025"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/tourism-2025","records":"/api/v1/datasets/tourism-2025/records"}},{"id":"tourism-2026","title":"Tourism · 2026 Q1–Q2","status":"available","recordsStatus":"planned","sourceIds":["dataset-tourism-2026"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/tourism-2026","records":"/api/v1/datasets/tourism-2026/records"}},{"id":"transport-2025","title":"Transport · 2025","status":"available","recordsStatus":"planned","sourceIds":["dataset-transport-2025"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/transport-2025","records":"/api/v1/datasets/transport-2025/records"}},{"id":"payments","title":"Payment infrastructure","status":"available","recordsStatus":"planned","sourceIds":["dataset-payments"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/payments","records":"/api/v1/datasets/payments/records"}},{"id":"external-sector","title":"External sector · 2025","status":"available","recordsStatus":"planned","sourceIds":["dataset-external-sector"],"license":"Not specified by source","caveats":["Original source payload retained. Normalized indicator records are not yet connected; consult payload units, periods and source notes."],"links":{"self":"/api/v1/datasets/external-sector","records":"/api/v1/datasets/external-sector/records"}},{"id":"population","title":"Population","status":"available","recordsStatus":"available","sourceIds":["dashboard-population"],"license":"Not specified by source","caveats":["Existing dashboard database record; the dashboard attributes population to INE Cabo Verde, but no publication URL or table reference is stored.","Year is the dashboard's stored reference year. This is not verified RGPH 2021 data; census versus estimate/projection is unknown.","databaseUpdatedAt is a database update timestamp, not an INE publication date. Island total is not locality-level population."],"links":{"self":"/api/v1/datasets/population","records":"/api/v1/datasets/population/records"}},{"id":"households","title":"Households","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/households","records":"/api/v1/datasets/households/records"}},{"id":"housing","title":"Housing","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/housing","records":"/api/v1/datasets/housing/records"}},{"id":"employment","title":"Employment","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/employment","records":"/api/v1/datasets/employment/records"}},{"id":"education","title":"Education","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/education","records":"/api/v1/datasets/education/records"}},{"id":"health","title":"Health","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/health","records":"/api/v1/datasets/health/records"}},{"id":"water","title":"Water","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/water","records":"/api/v1/datasets/water/records"}},{"id":"waste","title":"Waste","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/waste","records":"/api/v1/datasets/waste/records"}},{"id":"biodiversity","title":"Biodiversity","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/biodiversity","records":"/api/v1/datasets/biodiversity/records"}},{"id":"connectivity","title":"Connectivity","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/connectivity","records":"/api/v1/datasets/connectivity/records"}},{"id":"business-demography","title":"Business statistics · IAE 2024","status":"available","recordsStatus":"available","sourceIds":["iae-2024-user-workbook"],"license":"Not specified by source","caveats":["Survey estimates; raw numeric precision is preserved. Displayed whole numbers are rounded, not exact counts.","Workbook attributed to INE Cabo Verde; exact upstream publication URL and reuse license have not been verified.","The marker --- is preserved as null; its meaning is not defined in the inspected workbook text. Never interpret it as zero.","Municipality/island aggregates, not individual companies or locality estimates. Breakdowns must not be added to totals."],"links":{"self":"/api/v1/datasets/business-demography","records":"/api/v1/datasets/business-demography/records"}},{"id":"municipal-finance","title":"Municipal finance","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/municipal-finance","records":"/api/v1/datasets/municipal-finance/records"}},{"id":"municipal-budget","title":"Municipal budget","status":"available","recordsStatus":"available","sourceIds":["cv-maio-bo-2025-81-delib-04","cv-maio-bo-2026-34-delib-10-2025"],"license":"Not specified by source","caveats":["First-pass public budget summaries awaiting review. Appropriations are not execution or procurement statistics. Unknown retrieval times remain null."],"links":{"self":"/api/v1/datasets/municipal-budget","records":"/api/v1/datasets/municipal-budget/records"}},{"id":"public-procurement","title":"Public procurement","status":"planned","recordsStatus":"planned","sourceIds":[],"license":"Not specified by source","caveats":["No validated structured source has been connected to this dataset. Planned coverage is not a statistical zero."],"links":{"self":"/api/v1/datasets/public-procurement","records":"/api/v1/datasets/public-procurement/records"}},{"id":"vessel-presence","title":"AIS vessel presence","status":"cached","recordsStatus":"cached","sourceIds":["gfw-public-global-presence"],"license":"CC-BY-NC-4.0","caveats":["Many small local boats don't carry or broadcast AIS, so they won't appear here.","Data is up to 96 hours old. This is not live tracking."],"links":{"self":"/api/v1/datasets/vessel-presence","records":"/api/v1/datasets/vessel-presence/records"}},{"id":"agriculture-land-use","title":"Maio agricultural land-use classifications","status":"available","recordsStatus":"available","sourceIds":["ingt-carta-agricola-maio"],"license":"Not specified by source","caveats":["Área_Km2 is not used for totals: 47 of 48 source records contain zero.","Different source classifications overlap. Gross classification totals must not be summed as unique island coverage.","The source layer provides no reference date, crop, yield, farm count or production values."],"links":{"self":"/api/v1/datasets/agriculture-land-use","records":"/api/v1/datasets/agriculture-land-use/records"}}],"sources":[{"id":"transport_network","title":"Transport network","file":"public/data/transport_network.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T03:00:27Z","checksum":"94d4eb38a7e6e849fc743b91b2b5a113ce04024a72d7ff7abf142404ae6d7e05","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T03:00:27Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/transport_network","features":"/api/v1/features?sourceId=transport_network","collections":["/api/v1/collections/roads","/api/v1/collections/trails","/api/v1/collections/transport"],"datasets":[]}},{"id":"trilhas_osm","title":"Mapped trails","file":"public/data/trilhas_osm.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-29T07:24:50Z","checksum":"f717a2885e0e7a3f3e0084d878e0ddef63173abc4c25e3faf2200a0c3e84c2c2","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-29T07:24:50Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/trilhas_osm","features":"/api/v1/features?sourceId=trilhas_osm","collections":["/api/v1/collections/trails"],"datasets":[]}},{"id":"beaches_osm","title":"Beaches","file":"public/data/beaches_osm.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T04:04:49Z","checksum":"2a7690e1210172d2cb42a495bb335f1a64a53cdedd65a62c699f4f527d467468","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T04:04:49Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/beaches_osm","features":"/api/v1/features?sourceId=beaches_osm","collections":["/api/v1/collections/beaches"],"datasets":[]}},{"id":"protected_areas","title":"Protected areas","file":"public/data/protected_areas.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T04:02:47Z","checksum":"9ae3d967cd7a90358e77a4b72f14ab5fbf988dcae03c8a22c49e7edd6174af86","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T04:02:47Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/protected_areas","features":"/api/v1/features?sourceId=protected_areas","collections":["/api/v1/collections/protected-areas"],"datasets":[]}},{"id":"hydrology","title":"Hydrology","file":"public/data/hydrology.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T03:04:36Z","checksum":"3cab35f3e61f9a37e8ba669564ce2147fae6b9b450df89aae86e2dbdda5a4cec","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T03:04:36Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/hydrology","features":"/api/v1/features?sourceId=hydrology","collections":["/api/v1/collections/hydrology","/api/v1/collections/natural-features"],"datasets":[]}},{"id":"natural_features","title":"Natural features","file":"public/data/natural_features.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T03:04:36Z","checksum":"da22bd7afc89a65b0056d72510232dad7d7d3cf697796c63dcaeb9ca7678a341","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T03:04:36Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/natural_features","features":"/api/v1/features?sourceId=natural_features","collections":["/api/v1/collections/beaches","/api/v1/collections/hydrology","/api/v1/collections/natural-features","/api/v1/collections/land-use"],"datasets":[]}},{"id":"settlements","title":"Settlements","file":"public/data/settlements.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T03:03:35Z","checksum":"395d8ec5fa162cd9109d8e9c036d1a01152f544e1a39d2d0b8a7203201d4b4da","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T03:03:35Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/settlements","features":"/api/v1/features?sourceId=settlements","collections":["/api/v1/collections/settlements","/api/v1/collections/localities"],"datasets":[]}},{"id":"zoning_special","title":"Planning zones","file":"public/data/zoning_special.geojson","attribution":"AFIA / MaioAzul; source details retained on records","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"e503ea8609a06da8076702d99e304f46d5a07a52dd8502bfbdde0a76efaeb199","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/zoning_special","features":"/api/v1/features?sourceId=zoning_special","collections":["/api/v1/collections/zoning"],"datasets":[]}},{"id":"places_osm_raw","title":"OpenStreetMap places","file":"public/data/places_osm_raw.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T21:57:58Z","checksum":"c523afd3d5f37e707d2c2d4df9f8933c313109820b3014341d2d7b48c2b93187","excludedOutsideExtent":2,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T21:57:58Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/places_osm_raw","features":"/api/v1/features?sourceId=places_osm_raw","collections":["/api/v1/collections/businesses","/api/v1/collections/public-infrastructure","/api/v1/collections/tourism","/api/v1/collections/transport","/api/v1/collections/schools","/api/v1/collections/health"],"datasets":[]}},{"id":"visit-maio","title":"Visit Maio curated places","file":"public/data/maio_places_with_coords.json","attribution":"AFIA / Visit Maio / MaioAzul","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"507fc123975685466e8afacfa66414a3629dd3f76c7f8c972de2ebacbcd9204e","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/visit-maio","features":"/api/v1/features?sourceId=visit-maio","collections":["/api/v1/collections/beaches","/api/v1/collections/protected-areas","/api/v1/collections/businesses","/api/v1/collections/public-infrastructure","/api/v1/collections/sports","/api/v1/collections/tourism","/api/v1/collections/hydrology","/api/v1/collections/natural-features","/api/v1/collections/settlements","/api/v1/collections/localities","/api/v1/collections/schools","/api/v1/collections/heritage"],"datasets":[]}},{"id":"guide-places","title":"Maio Guide curated places","file":"apps/maio-api/data/guide/maio_places_with_coords.json","attribution":"AFIA / Maio Guide / MaioAzul","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"5f7672f96f75a17d3025d2c66a5c445bef1340af14cad49a3ab4947a3ba5be68","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/guide-places","features":"/api/v1/features?sourceId=guide-places","collections":["/api/v1/collections/beaches","/api/v1/collections/protected-areas","/api/v1/collections/businesses","/api/v1/collections/public-infrastructure","/api/v1/collections/sports","/api/v1/collections/tourism","/api/v1/collections/hydrology","/api/v1/collections/natural-features","/api/v1/collections/settlements","/api/v1/collections/localities","/api/v1/collections/schools","/api/v1/collections/heritage"],"datasets":[]}},{"id":"planned-sports","title":"MaioAzul planned sports sites","file":"apps/maio-api/data/planned-sports.json","attribution":"MaioAzul editorial plans; locations from Visit Maio / Maio Guide","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":"2026-09-17","checksum":"fe6c3d55bfaf26a309ba49ddfd6d4a7b31c87badca7136ec8ee62dbdc713f45b","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-09-17","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/planned-sports","features":"/api/v1/features?sourceId=planned-sports","collections":["/api/v1/collections/sports"],"datasets":[]}},{"id":"guide-offroad","title":"Maio Offroad 2026 field survey","file":"apps/maio-api/data/guide/maio_offroad_trail_2026.geojson","attribution":"QField field survey / Maio Guide","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"612d13f756c6cd2387ae45f6b9df30110df726adb002ebdba657ddef5e0dbfb8","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/guide-offroad","features":"/api/v1/features?sourceId=guide-offroad","collections":["/api/v1/collections/trails","/api/v1/collections/tourism"],"datasets":[]}},{"id":"guide-settlements","title":"Maio Guide settlements","file":"apps/maio-api/data/guide/settlements.geojson","attribution":"The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.","license":"ODbL-1.0 (OpenStreetMap); enriched text may have separate rights","licenseUrl":"https://opendatacommons.org/licenses/odbl/1-0/","sourceUpdatedAt":"2026-01-28T03:03:35Z","checksum":"83fdae97ef0259e8b7cfaeaf301711eacb33f7c2f78e73f2aa5e59dcb2d50b71","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"community-map","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-01-28T03:03:35Z","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/guide-settlements","features":"/api/v1/features?sourceId=guide-settlements","collections":["/api/v1/collections/settlements","/api/v1/collections/localities"],"datasets":[]}},{"id":"maio-guide","title":"Maio Guide experiences","file":"apps/maio-api/data/guide/experience_places_by_slug.json","attribution":"Maio Guide editorial directory","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"374190a07eaed966c3f611a7049423fc37fd2562115f914b844f95a785838a1b","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/maio-guide","features":"/api/v1/features?sourceId=maio-guide","collections":["/api/v1/collections/businesses","/api/v1/collections/tourism"],"datasets":[]}},{"id":"dataset-energy","title":"Maio energy","file":"data/energy/maio_energy_core_data.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":"2026-03-06","checksum":"f554aa98dba8ae510bf059bea8ce8737a0be5c45e1f272c55a542e987192309a","excludedOutsideExtent":0,"upstreamUrls":["https://edec.cv/","https://www.esmap.org/sites/default/files/2022/ESP%20Korea%202022/Cabo%20Verde%20ESP%20Stakeholder%20Forum%20Dec%202022.pdf","https://www.inforpress.cv/maio-central-solar-fotovoltaica-evita-consumo-de-35-mil-litros-de-gasoleo-em-dois-meses-de-testes-app?utm_source=chatgpt.com"],"classification":"secondary-extract","provenanceStatus":"linked-source","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-03-06","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-energy","features":"/api/v1/features?sourceId=dataset-energy","collections":[],"datasets":["/api/v1/datasets/energy"]}},{"id":"dataset-tourism-2025","title":"Tourism · 2025","file":"data/tourism/ine_tourism_2025.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"47e91d61cf724ab17cadace107093b960706c56e1480653cd494ab6502e40041","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-tourism-2025","features":"/api/v1/features?sourceId=dataset-tourism-2025","collections":[],"datasets":["/api/v1/datasets/tourism-2025"]}},{"id":"dataset-tourism-2026","title":"Tourism · 2026 Q1–Q2","file":"data/tourism/ine_tourism_2026.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"b20fa6c5377099339319d012b0bb2e5a5b8241a4807efe8d49151998f9253876","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-tourism-2026","features":"/api/v1/features?sourceId=dataset-tourism-2026","collections":[],"datasets":["/api/v1/datasets/tourism-2026"]}},{"id":"dataset-transport-2025","title":"Transport · 2025","file":"data/transport/cabo_verde_transportes_2025.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":"2025-12-31","checksum":"3f6bcf0b8a74eccedfd73434285f4633a1b629bf280095efcd88c76249b795d3","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2025-12-31","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-transport-2025","features":"/api/v1/features?sourceId=dataset-transport-2025","collections":[],"datasets":["/api/v1/datasets/transport-2025"]}},{"id":"dataset-payments","title":"Payment infrastructure","file":"public/data/payment-system-2019-2023.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"59564963b41ea944fbe7d505d3b4fbdb9802210347aec28aaff611e89b507e06","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-payments","features":"/api/v1/features?sourceId=dataset-payments","collections":[],"datasets":["/api/v1/datasets/payments"]}},{"id":"dataset-external-sector","title":"External sector · 2025","file":"public/data/external-sector-bcv-2025.json","attribution":"See dataset source metadata and payload","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"checksum":"05cf9e92e7df39a021927a90f6fc3ca60dcccb1f6f81334a9298330660d0f214","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/dataset-external-sector","features":"/api/v1/features?sourceId=dataset-external-sector","collections":[],"datasets":["/api/v1/datasets/external-sector"]}},{"id":"dashboard-population","title":"Maio dashboard population","file":"apps/maio-api/data/dashboard-population.json","attribution":"Maio dashboard; attributed there to INE Cabo Verde (publication unverified)","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"retrievedAt":"2026-09-17T15:02:22.149Z","checksum":"3bdeb760ebc864c66283f3979ef1fa0811c36058d0cc841e9915ba85728a4d7e","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"needs-review","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"dashboard-database-export","command":"node apps/maio-api/scripts/export-dashboard-population.mjs","retrievedAt":"2026-09-17T15:02:22.149Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Allowlisted Maio island population export; unverified original INE publication; no locality allocation."},"links":{"self":"/api/v1/sources/dashboard-population","features":"/api/v1/features?sourceId=dashboard-population","collections":[],"datasets":["/api/v1/datasets/population"]}},{"id":"cv-maio-bo-2025-81-delib-04","title":"Deliberacao n.o 04/2025 - Orcamento Municipal 2025","file":"public/data/municipal-budget-ingestion/maio-2025/maio_budget_2025.first_pass.json","attribution":"Assembleia Municipal do Maio","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":"2025-05-05","checksum":"79fe1801408dfa4a570a755ad2fabfb7e3d41ec01ce2a5c671dbc01c43876179","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"needs-review","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2025-05-05","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Allowlisted numeric budget summaries from first-pass extractions; not expenditure execution."},"links":{"self":"/api/v1/sources/cv-maio-bo-2025-81-delib-04","features":"/api/v1/features?sourceId=cv-maio-bo-2025-81-delib-04","collections":[],"datasets":["/api/v1/datasets/municipal-budget"]}},{"id":"cv-maio-bo-2026-34-delib-10-2025","title":"Deliberacao n.o 10/2025 - Orcamento Municipal 2026","file":"public/data/municipal-budget-ingestion/maio-2026/maio_budget_2026.first_pass.json","attribution":"Assembleia Municipal do Maio","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":"2026-02-23","checksum":"af20aecf0eb1b08d0b514cfafc349f67b8ab006518f66cf06b1e4c92ba935d34","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"needs-review","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":"2026-02-23","freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Allowlisted numeric budget summaries from first-pass extractions; not expenditure execution."},"links":{"self":"/api/v1/sources/cv-maio-bo-2026-34-delib-10-2025","features":"/api/v1/features?sourceId=cv-maio-bo-2026-34-delib-10-2025","collections":[],"datasets":["/api/v1/datasets/municipal-budget"]}},{"id":"iae-2024-user-workbook","title":"INE Cabo Verde — Inquérito Anual às Empresas 2024 (supplied workbook)","file":"Inquérito Anual Empresas - 2024.xls","url":null,"attribution":"Fonte: INE, IAE 2024 (attribution in supplied workbook)","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"retrievedAt":"2026-09-18T12:21:59.950282Z","checksum":"215863705711c35211b9e2a793637810ccb2968a69667912ebb38d19b81ea9d4","excludedOutsideExtent":0,"upstreamUrls":[],"classification":"secondary-extract","provenanceStatus":"needs-review","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"python scripts/import-business-statistics.py <reviewed-2024-workbook.xls> && npm run data:sync","retrievedAt":"2026-09-18T12:21:59.950282Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/import-business-statistics.py; scripts/sync-data.mjs","description":"Allowlisted Maio IAE 2024 cells only. Raw survey precision, thousand-CVE units, source sheets/cells/formats and missing markers retained. Exact publication URL and reuse license unverified; no inferred geometry or individual companies."},"links":{"self":"/api/v1/sources/iae-2024-user-workbook","features":"/api/v1/features?sourceId=iae-2024-user-workbook","collections":["/api/v1/collections/business-statistics"],"datasets":["/api/v1/datasets/business-demography"]}},{"id":"ingt-carta-agricola-maio","title":"INGT — Carta Agrícola de Cabo Verde","url":"https://ingtgeo.gov.cv/arcgisingt/rest/services/SDI/Carta_Agricola/MapServer","layerUrl":"https://ingtgeo.gov.cv/arcgisingt/rest/services/SDI/Carta_Agricola/MapServer/5","layerId":5,"layerName":"Carta Agrícola Maio","attribution":"INGT — Instituto Nacional de Gestão do Território","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"referenceDate":null,"retrievedAt":"2026-09-19T12:21:36Z","serviceVersion":"10.71","sourceCrs":"EPSG:4826","publishedCrs":"OGC:CRS84","checksum":"dc91e830b451589d342cdb7e929e5b140b4b7fc2e2603e064e0c9375b4692411","file":"apps/maio-api/data/ingt-agriculture-maio.json","excludedOutsideExtent":0,"upstreamUrls":["https://ingtgeo.gov.cv/arcgisingt/rest/services/SDI/Carta_Agricola/MapServer"],"classification":"reviewed-official-publication","provenanceStatus":"reviewed","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"arcgis-rest-import","command":"npm --workspace apps/maio-api run data:import-agriculture -- --output data/ingt-agriculture-maio.json","retrievedAt":"2026-09-19T12:21:36Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/import-ingt-agriculture.py; scripts/sync-data.mjs","description":"ArcGIS REST layer 5 GeoJSON with original attributes retained. Z/M values are removed for RFC 7946 output; WGS84 geodesic hectares are marked as calculated and unioned within each classification."},"links":{"agriculture":"/api/v1/agriculture","self":"/api/v1/sources/ingt-carta-agricola-maio","features":"/api/v1/features?sourceId=ingt-carta-agricola-maio","collections":["/api/v1/collections/agriculture"],"datasets":["/api/v1/datasets/agriculture-land-use"]}},{"id":"open-meteo-weather","title":"open-meteo-weather","file":"apps/maio-api/data/environment-source.json","url":"https://api.open-meteo.com/v1/forecast?latitude=15.25&longitude=-23.15&current=temperature_2m%2Crain%2Cprecipitation%2Crelative_humidity_2m%2Cwind_speed_10m%2Cwind_direction_10m%2Csurface_pressure&timezone=GMT&timeformat=unixtime&forecast_days=1","documentationUrl":"https://open-meteo.com/en/docs","attribution":"Open-Meteo and its weather model providers","license":"CC-BY-4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","sourceUpdatedAt":null,"retrievedAt":"2026-09-17T14:31:51.233Z","checksum":"e63a4b0b579b5129f638a4c12c6aac944a10b2d2fea20be2cf821272a445ba6c","excludedOutsideExtent":0,"upstreamUrls":["https://api.open-meteo.com/v1/forecast?latitude=15.25&longitude=-23.15&current=temperature_2m%2Crain%2Cprecipitation%2Crelative_humidity_2m%2Cwind_speed_10m%2Cwind_direction_10m%2Csurface_pressure&timezone=GMT&timeformat=unixtime&forecast_days=1"],"classification":"model-provider","provenanceStatus":"linked-source","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"provider-api","command":"npm --workspace apps/maio-api run data:refresh-environment","retrievedAt":"2026-09-17T14:31:51.233Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"lib/environment.mjs","description":"Provider current-condition values, units, valid times and grid coordinates; explicitly model estimates."},"links":{"self":"/api/v1/sources/open-meteo-weather","features":"/api/v1/features?sourceId=open-meteo-weather","collections":["/api/v1/collections/observations"],"datasets":[]}},{"id":"open-meteo-marine","title":"open-meteo-marine","file":"apps/maio-api/data/environment-source.json","url":"https://marine-api.open-meteo.com/v1/marine?latitude=15.25&longitude=-23.15&current=sea_surface_temperature%2Cwave_height%2Cwave_period&timezone=GMT&timeformat=unixtime&forecast_days=1","documentationUrl":"https://open-meteo.com/en/docs/marine-weather-api","attribution":"Open-Meteo and its marine model providers","license":"CC-BY-4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","sourceUpdatedAt":null,"retrievedAt":"2026-09-17T14:31:51.241Z","checksum":"164a80536882f172185314c6a56b7f1f2d2d108ec0b45032e47a436525d684f7","excludedOutsideExtent":0,"upstreamUrls":["https://marine-api.open-meteo.com/v1/marine?latitude=15.25&longitude=-23.15&current=sea_surface_temperature%2Cwave_height%2Cwave_period&timezone=GMT&timeformat=unixtime&forecast_days=1"],"classification":"model-provider","provenanceStatus":"linked-source","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"provider-api","command":"npm --workspace apps/maio-api run data:refresh-environment","retrievedAt":"2026-09-17T14:31:51.241Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"lib/environment.mjs","description":"Provider current-condition values, units, valid times and grid coordinates; explicitly model estimates."},"links":{"self":"/api/v1/sources/open-meteo-marine","features":"/api/v1/features?sourceId=open-meteo-marine","collections":["/api/v1/collections/observations"],"datasets":[]}},{"id":"open-meteo-air","title":"open-meteo-air","file":"apps/maio-api/data/environment-source.json","url":"https://air-quality-api.open-meteo.com/v1/air-quality?latitude=15.25&longitude=-23.15&current=pm2_5%2Cpm10%2Ccarbon_monoxide%2Cnitrogen_dioxide%2Cozone&timezone=GMT&timeformat=unixtime&forecast_days=1","documentationUrl":"https://open-meteo.com/en/docs/air-quality-api","attribution":"Open-Meteo / CAMS ENSEMBLE and CAMS global atmospheric composition forecasts","license":"CC-BY-4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","sourceUpdatedAt":null,"retrievedAt":"2026-09-17T14:31:51.318Z","checksum":"b9b64b2b1c426612cf0d25e1c98031b24fc4551fe716eb4a42577c44406d35d7","excludedOutsideExtent":0,"upstreamUrls":["https://air-quality-api.open-meteo.com/v1/air-quality?latitude=15.25&longitude=-23.15&current=pm2_5%2Cpm10%2Ccarbon_monoxide%2Cnitrogen_dioxide%2Cozone&timezone=GMT&timeformat=unixtime&forecast_days=1"],"classification":"model-provider","provenanceStatus":"linked-source","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"provider-api","command":"npm --workspace apps/maio-api run data:refresh-environment","retrievedAt":"2026-09-17T14:31:51.318Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"lib/environment.mjs","description":"Provider current-condition values, units, valid times and grid coordinates; explicitly model estimates."},"links":{"self":"/api/v1/sources/open-meteo-air","features":"/api/v1/features?sourceId=open-meteo-air","collections":["/api/v1/collections/observations"],"datasets":[]}},{"id":"enapor-porto-ingles","title":"ENAPOR — Porto Inglês","url":"https://enapor.cv/page/porto-ingles","attribution":"ENAPOR, Porto Inglês port information","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"retrievedAt":"2026-09-18T12:35:20.846461Z","excludedOutsideExtent":0,"checksum":"609e75e40a0ff670bf7f8d600a5a4b075c7fcf3fbf4b4205ecb4789e0f093fb8","file":"apps/maio-api/data/transport-assets.json","upstreamUrls":["https://enapor.cv/page/porto-ingles"],"classification":"reviewed-official-publication","provenanceStatus":"reviewed","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":"2026-09-18T12:35:20.846461Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Port identity and location name manually reviewed against ENAPOR port page. ENAPOR supplies no coordinates; feature geometry is separately attributed to the project owner. No schedules or live status inferred."},"links":{"self":"/api/v1/sources/enapor-porto-ingles","features":"/api/v1/features?sourceId=enapor-porto-ingles","collections":["/api/v1/collections/transport"],"datasets":[]}},{"id":"user-porto-ingles-coordinates","title":"User-provided Porto Inglês coordinates","attribution":"Coordinates supplied by project owner: 15.1386° N, 23.2206° W","license":"Not specified by source","licenseUrl":null,"sourceUpdatedAt":null,"retrievedAt":"2026-09-18T12:36:56.159579Z","excludedOutsideExtent":0,"checksum":"f897966773fe0ff1932ad2a0321d96757ec1e60bbe6f64d394fcbe8fd37f2432","file":"apps/maio-api/data/transport-assets.json","upstreamUrls":[],"classification":"editorial","provenanceStatus":"publication-link-missing","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":"2026-09-18T12:36:56.159579Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/sync-data.mjs","description":"Explicit source-file import; stable source IDs, original attributes and memberships retained. Unnamed beach records excluded by editorial publication policy."},"links":{"self":"/api/v1/sources/user-porto-ingles-coordinates","features":"/api/v1/features?sourceId=user-porto-ingles-coordinates","collections":["/api/v1/collections/transport"],"datasets":[]}},{"id":"d3-celestial-constellations","title":"d3-celestial constellation reference catalogue","url":"https://github.com/ofrohn/d3-celestial/tree/7e720a3de062059d4c5400a379146a601d9010e0","file":"apps/maio-api/data/constellation-catalog.json","attribution":"Copyright (c) 2015, Olaf Frohn. d3-celestial constellation names/figures; upstream IAU chart credits retained in bundled readme. Calculations use Astronomy Engine by Don Cross (MIT).","license":"BSD-3-Clause (d3-celestial distribution; upstream credits retained)","licenseUrl":"https://github.com/ofrohn/d3-celestial/blob/7e720a3de062059d4c5400a379146a601d9010e0/LICENSE","sourceUpdatedAt":null,"retrievedAt":"2026-09-17T16:41:25.002Z","checksum":"e40983d189bd9f615c1585436ba85da412721cc0d83f424a48f5ebb116f98de2","upstreamCommit":"7e720a3de062059d4c5400a379146a601d9010e0","upstreamUrls":["https://github.com/ofrohn/d3-celestial/tree/7e720a3de062059d4c5400a379146a601d9010e0"],"classification":"reference-catalog","provenanceStatus":"linked-source","delivery":"materialized-snapshot","refresh":{"automatic":false,"method":"repository-file-import","command":"node apps/maio-api/scripts/import-constellations.mjs <reviewed-commit>","retrievedAt":"2026-09-17T16:41:25.002Z","sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"No refresh SLA or automatic polling. Request time and cache validation do not establish source freshness."},"transformation":{"implementation":"scripts/import-constellations.mjs; lib/constellations.mjs","description":"Pinned source J2000 label and pattern-star coordinates; Serpens parts grouped under one stable ID. Precession/nutation/horizon rotation with Astronomy Engine; no observed-visibility claim."},"links":{"astronomy":"/api/v1/astronomy","nightSky":"/api/v1/night-sky","self":"/api/v1/sources/d3-celestial-constellations","features":"/api/v1/features?sourceId=d3-celestial-constellations","collections":[],"datasets":[]}},{"id":"astronomy-engine","title":"Astronomy Engine calculated ephemerides","url":"https://github.com/cosinekitty/astronomy","attribution":"Calculated with Astronomy Engine by Don Cross (MIT). Not observed sky or weather data.","license":"MIT (calculation software)","licenseUrl":"https://github.com/cosinekitty/astronomy/blob/master/LICENSE","sourceUpdatedAt":null,"retrievedAt":null,"checksum":"6146e8966bfd1c57553164fb57613de765cd74995b8f5130c174c6da235f792a","modelVersion":"2.1.19","upstreamUrls":["https://github.com/cosinekitty/astronomy"],"classification":"calculation-model","provenanceStatus":"linked-source","delivery":"on-demand-calculation","refresh":{"automatic":false,"method":"versioned-calculation","command":"npm --workspace apps/maio-api run data:sync","retrievedAt":null,"sourceUpdatedAt":null,"freshnessAssessment":"not-assessed","note":"Calculated on demand using a pinned model; no upstream observation retrieval or live freshness timestamp. Model upgrades require a reviewed dependency update and deployment."},"transformation":{"implementation":"lib/night-sky.mjs","description":"Deterministic Sun/Moon ephemerides using the pinned Astronomy Engine model, explicit location, sea-level horizon and local date. No weather or sensor inference."},"links":{"astronomy":"/api/v1/astronomy","nightSky":"/api/v1/night-sky","self":"/api/v1/sources/astronomy-engine","features":"/api/v1/features?sourceId=astronomy-engine","collections":[],"datasets":[]}},{"id":"gfw-public-global-presence","title":"Global Fishing Watch AIS vessel presence","publisher":"Global Fishing Watch","upstreamUrls":["https://globalfishingwatch.org","https://gateway.api.globalfishingwatch.org/v3/4wings/report"],"dataset":"public-global-presence:latest","datasetVersionResolved":null,"attribution":"Powered by Global Fishing Watch.","attributionUrl":"https://globalfishingwatch.org","license":"CC-BY-NC-4.0","licenseUrl":"https://creativecommons.org/licenses/by-nc/4.0/","classification":"third-party-model-derived","provenanceStatus":"api-retrieval","delivery":"cached-daily-ingest","refresh":{"automatic":true,"method":"vercel-cron","schedule":"30 3 * * *","retrievedAt":"2026-10-31T10:03:53.852Z","dataLagHours":96,"dataAvailableUntil":"2026-10-27T10:03:53.852Z","freshnessAssessment":"lagged-up-to-96h","note":"Weekly cached AIS presence; not live tracking."},"transformation":{"implementation":"lib/gfw.mjs","description":"Sequential ENTIRE reports per ISO week and region; deduplicate vessel IDs and aggregate presence hours."},"checksum":"60eded240a04e03aa4a76ac56dabe7b5649a27c1d28a9a692db07bcb7b350ea5","terms":"Free and open use only. Ask GFW before any paid tier.","links":{"self":"/api/v1/sources/gfw-public-global-presence","features":"/api/v1/features?sourceId=gfw-public-global-presence","collections":[],"datasets":["/api/v1/datasets/vessel-presence"]}}],"links":{"agriculture":"/api/v1/agriculture","astronomy":"/api/v1/astronomy","nightSky":"/api/v1/night-sky","self":"/api/v1/catalog","sources":"/api/v1/sources","places":"/api/v1/places","openapi":"/api/v1/openapi.json"}}