Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ogcapi records - better "catalog.yaml" objects #115

Merged
merged 19 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added docs/README.md
Empty file.
Empty file added docs/manual/README.md
Empty file.
17 changes: 17 additions & 0 deletions docs/manual/docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
hide:
- navigation
---

# GeoNetwork MicroServices {#toc}

Welcome to GeoNetwork MicroServices.

<div class="grid cards" markdown>

- :fontawesome-solid-signs-post: [OGCAPI-Records](ogcapi/index.md)

---

Implementation of OGCAPI-Records.
</div>
41 changes: 41 additions & 0 deletions docs/manual/docs/ogcapi/catalog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Catalog.yaml definition {#toc}


See [Catalog Definition in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#req_records-api_catalog-response).

The properties come from the source's (portal sub-portal) in the GeoNetwork "sources" table, column "serviceRecord".
This can be configured in the `GN GUI: Admin Console-Settings-sources` for sub-portals.

There is no GUI to set this for the "main" portal - do this in GN GUI: Admin Console-Settings-Settings-Catalog Service for the Web (CSW)-Record to use for GetCapabilities (`system/csw/capabilityRecordUuid`).


|Property| Description | Elastic Index JSON Property |
|--------| ----------- | --------------------------- |
| id | A unique identifier for this catalog. | metadataIdentifier|
| created | The date this collection was created. | createDate|
| updated | The more recent date on which this collection was changed. |changeDate |
| conformsTo | The extensions/conformance classes used in this catalog object. | `not used` |
| type | Fixed value of "Catalog". | always "Catalog" |
| itemType | Fixed value of "record", "catalog" or both. | always "record"|
| title | A human-readable name given to this catalog. | resourceTitleObject|
| description | A free-text description of this catalog. | resourceAbstractObject|
| extent | The spatiotemporal coverage of this catalog. | spatial: geom <br> temporal: resourceTemporalDateRange |
| crs | A list of coordinate reference systems used for spatiotemporal values. | coordinateSystem|
| keywords | A list of free-form keywords or tags associated with this collection. |tag |
themes | A knowledge organization system used to classify this collection. | allKeywords|
| language | The language used for textual values (i.e. titles, descriptions, etc.) of this collection object. |mainLanguage |
| languages | The list of other languages in which this collection object is available. |otherLanguage |
| recordLanguages | The list of languages in which records from the collection can be represented. |`not used` |
| contacts | A list of contacts qualified by their role(s). |contact |
| license | The legal provisions under which this collection is made available. |MD_LegalConstraintsUseLimitationObject |
| rights | A statement that concerns all rights not addressed by the license such as a copyright statement. | `not used`|
| recordsArrayName | The name of the array property in the catalog used to encode records in-line. The default value is records. | `not used`|
| records | An array of records encoded in-line in the catalog. |`not used` |
| links | A list of links related to this catalog. | `filled with Java code`|
| linkTemplates | A list of link templates related to this catalog. | `not used`|
| schemes | A list of schemes related to this catalog. |`not used`|

See `ElasticIndexJson2CollectionInfo.java` for more details.

NOTE: For `Contact.address`, we only fill in the `deliveryPoint` because that's all that's available in the Elastic Index JSON.

4 changes: 4 additions & 0 deletions docs/manual/docs/ogcapi/conformance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Conformance {#toc}


See [Conformance in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#conformance_class).
15 changes: 15 additions & 0 deletions docs/manual/docs/ogcapi/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

# GeoNetwork MicroServices OGCAPI-Records {#toc}


This service module implements the ([OGCAPI-Records](https://ogcapi.ogc.org/records)).

| Endpoint Name | Endpoint Location | Meaning |
| -------- | ------- | -------- |
| [Landing Page](landingpage) | / | Home Page |
| [Conformance declaration](conformance) | /conformance | Conformance Documents |
| [OpenAPI Documentation](openapi) | /openapi | OpenAPI (Swagger) description document |
| [Record collections](record-collections) | /collections | List of Catalogs<br>(GN portals) |
| [Record collection](record-collection) | /collections/{collectionId} | Information about a single Catalog <br>(GN portal) |
| [Records](records) | /collections/{collectionId}/items | Records in a Catalog<br>Search, etc... |
| [Record](record) | /collections/{collectionId}/items/{recordId} | Single Metadata Record |
26 changes: 26 additions & 0 deletions docs/manual/docs/ogcapi/landingpage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Landing Page {#toc}

The Landing Page will show information about the server. It has links to the [Conformance declaration](conformance), the [OpenAPI Documentation](openapi), and the [Record collections](record-collections).

See [Landing Page in the OGCAPI specification](https://docs.ogc.org/is/17-069r3/17-069r3.html#_api_landing_page).


## JSON Model

The JSON model follows the ["landingPage.yml"](https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/landingPage.yaml) definition in the OGCAPI Specification.

| JSON Tag| Meaning |
| -------- | ------- |
| title | Title for the server |
| description | Description of the server |
| links | Links to other documents |


The GeoNetwork OGCAPI-Records implementation also include a non-standard item:

| JSON Tag| Meaning |
| -------- | ------- |
| systemInfo | Metadata for the Server. See the [catalog.yaml](../catalog) description. |


This metadata information is taken from the Service Record linked to the GeoNetwork's main portal.
4 changes: 4 additions & 0 deletions docs/manual/docs/ogcapi/openapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# OpenApi Description Document {#toc}

This is the [OpenApi (Swagger) Description Document](https://swagger.io/).

7 changes: 7 additions & 0 deletions docs/manual/docs/ogcapi/record-collection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Record Collection {#toc}

See [Record Collection in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#clause-record-collection).

##JSON Model

See the [catalog.yaml](../catalog) description.
11 changes: 11 additions & 0 deletions docs/manual/docs/ogcapi/record-collections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Record Collections {#toc}

This gives a summary of all the Record Collections (Catalogs) on the Server. In GeoNetwork this is the main portal, plus any sub-portals described.


See [Record Collections in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#record-collections).


## JSON MODEL

See the [catalog.yaml](../catalog) description.
6 changes: 6 additions & 0 deletions docs/manual/docs/ogcapi/record.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Record {#toc}

See [Record in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#clause-record-core).



4 changes: 4 additions & 0 deletions docs/manual/docs/ogcapi/records.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Records {#toc}

See [Records in the OGCAPI specification](https://docs.ogc.org/DRAFTS/20-004.html#clause-record-collection).

152 changes: 152 additions & 0 deletions docs/manual/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# Project information
site_name: GeoNetwork Opensource Microservices
site_description: GeoNetwork Opensource Microservices.
site_dir: target/html
site_url: https://docs.geonetwork-opensource.org/

# Repository
repo_name: geonetwork-microservices
repo_url: https://github.com/geonetwork/geonetwork-microservices
edit_uri: edit/main/docs/manual/docs

# Copyright
copyright: Copyright &copy; 2024 FAO-UN and others

extra_css:
- assets/stylesheets/extra.css

# Configuration
theme:
name: material
language: en
custom_dir: overrides
logo: assets/images/geonetwork-logo.svg
favicon: assets/images/geonetwork-logo.png
icon:
repo: fontawesome/brands/github
palette:
# Palette toggle for light mode
- media: "(prefers-color-scheme: light)"
scheme: default
primary: blue
toggle:
icon: material/weather-night
name: Switch to dark mode
# Palette toggle for dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
toggle:
icon: material/weather-sunny
name: Switch to light mode
features:
- toc.follow
- navigation.tracking
- navigation.top
- navigation.tabs
- navigation.prune
- navigation.indexes
- navigation.footer
- header.autohide
- content.tabs.link
- content.code.copy
- content.action.view
- content.action.edit
- announce.dismiss

# Plugins - install using: pip3 install -r requirements.txt
plugins:
- exclude:
glob:
- annexes/gallery/bin/README.md
- i18n:
docs_structure: suffix
reconfigure_material: true
languages:
- locale: en
name: English
build: true
default: true
site_name: 'GeoNetwork MicroServices OpenSource'
- locale: fr
name: Français
build: !ENV [FRENCH,true]
site_name: 'GeoNetwork MicroServices OpenSource'
site_description: Catalogue GeoNetwork pour répertorier, rechercher et examiner les enregistrements.
nav_translations:
Home: Home
Search: Search
Record: Record
Map: Map
- search

# Customizations
extra:
version:
provider: mike
default: stable
alias: true
homepage: https://geonetwork-opensource.org/
social:
- icon: fontawesome/brands/github
link: https://github.com/geonetwork
- icon: fontawesome/brands/docker
link: https://hub.docker.com/_/geonetwork
- icon: geonetwork/logo_bw
link: https://geonetwork-opensource.org/
name: GeoNetwork Website

# For use with --strict to produce failures on build warnings
validation:
nav:
omitted_files: warn
not_found: warn
absolute_links: warn
links:
not_found: warn
absolute_links: warn
unrecognized_links: warn

# Extensions
# - These are carefully chosen to work with pandoc markdown support for whole document translation
markdown_extensions:
- admonition
- attr_list
- def_list
- pymdownx.details
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
options:
custom_icons:
- overrides/.icons
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
- pymdownx.inlinehilite
- pymdownx.keys
- pymdownx.smartsymbols
- pymdownx.snippets
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.tabbed:
alternate_style: true
- tables
- md_in_html

# Page tree
nav:
- 'GeoNetwork MicroServices': index.md
- 'OGCAPI-Records':
- ogcapi/index.md
- ogcapi/landingpage.md
- ogcapi/conformance.md
- ogcapi/openapi.md
- ogcapi/record-collections.md
- ogcapi/record-collection.md
- ogcapi/records.md
- ogcapi/record.md

28 changes: 28 additions & 0 deletions docs/manual/overrides/.icons/geonetwork/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading