Overture docs update - #215
Conversation
Restructure the Lyric docs into the standard Overture core-software layout (Overview + Setup), mirroring the other components. Replaces the single 02-lyric.md overview, fills in the repository-structure detail, and points the README's developer-docs link at Lyric's new core-software home on docs.overture.bio.
The docs site has since renamed /build/core-software/* to /build/*, then /build/* to /develop/*, so the previous target only resolved through two redirect hops.
The site renamed /docs/core-software/* to /build/* to /develop/*, moved /docs/contribution to /develop/contributing, /guides/getting-started to /deploy, and /guides/administration-guides to /use. Each old path only resolved through a redirect hop. Verified every new target against a local site build.
17a2069 to
a2d6776
Compare
|
| - **Comprehensive data management:** Offers complete CRUD operations (Create, Read, Update, Delete) through a RESTful API documented in Swagger. | ||
| - **Detailed change history:** Maintains a complete audit trail of all data modifications, tracking changes from committed submissions and updates ensuring data governance and accountability. | ||
| - **SQON query endpoint:** Provides an endpoint for SQON (Structured Query Object Notation) based queries allowing complex search operations through combinations of simple field operations (`in`, `<=`, `>=`) and logic (`and`, `or`, `not`). This allows complex queries to be expressed in a simple JSON format. | ||
| - **Multi-dictionary support:** Handles multiple Lectern dictionaries simultaneously, allowing organizations to manage different data categories with distinct schemas while maintaining data integrity and relationships. A category can optionally be given an alias, a human-readable identifier usable anywhere a numeric category ID is accepted. |
There was a problem hiding this comment.
alias is superfluous information for this feature summary. i would remove the second sentence.
| - **SQON query endpoint:** Provides an endpoint for SQON (Structured Query Object Notation) based queries allowing complex search operations through combinations of simple field operations (`in`, `<=`, `>=`) and logic (`and`, `or`, `not`). This allows complex queries to be expressed in a simple JSON format. | ||
| - **Multi-dictionary support:** Handles multiple Lectern dictionaries simultaneously, allowing organizations to manage different data categories with distinct schemas while maintaining data integrity and relationships. A category can optionally be given an alias, a human-readable identifier usable anywhere a numeric category ID is accepted. | ||
|
|
||
| ## System Architecture |
There was a problem hiding this comment.
I expected this to be a breakdown of Lyric's architecture, but this is actually how lyric fits into the overture system.
This is fine, but I would reorder the points here
- Lyric functionality and required dependencies
- lyric web api
- lyric data storage (postgres)
- Overture system integrations
- maestro reads from lyric for search indexing, uses lyric api
- song reads from lyric for external data validation, lyric provides configurable endpoints to facilitate this integration
- Optional Integration - Kafka
- publishes messages after data submission events to notifying other systems that new data is available
Also, you have a "why elasticsearch" section but lyric doesnt interact with elasticsearch at all. why kafka may be worthwhile (standardized message queue across overture, high throughput and performance)
There was a problem hiding this comment.
removed elasticsearch, reordered the info and added lectern and postgres as required dependencies, dropped score
|
|
||
| ## Repository Structure | ||
|
|
||
| The repository is a PNPM monorepo, organized with deployable applications under `apps/` and shared libraries under `packages/`: |
There was a problem hiding this comment.
updated accordingly
| ```bash | ||
| # From the repository root | ||
| docker-compose up -d | ||
| ``` |
There was a problem hiding this comment.
docker compose for modern docker installations (docker-compose no longer distributed as a separate command, instead just a command inside the docker cli)
The primary difference is that docker-compose (with a hyphen) is the deprecated legacy version written in Python, while docker compose (with a space) is the modern, actively supported version integrated directly into the Docker CLI using Go.
There was a problem hiding this comment.
Also, you have them reference the compose file before cloning the repo in step 2. This is out of order.
| A minimal development configuration looks as follows: | ||
|
|
||
| ```env | ||
| # Server | ||
| PORT=3030 | ||
| LOG_LEVEL=info | ||
|
|
||
| # PostgreSQL (matches the docker-compose defaults) | ||
| DB_HOST=localhost | ||
| DB_PORT=5432 | ||
| DB_NAME=lyric | ||
| DB_USER=postgres | ||
| DB_PASSWORD=secret | ||
|
|
||
| # Lectern schema service | ||
| LECTERN_URL=http://localhost:3000 | ||
|
|
||
| # Local ID generation | ||
| ID_USELOCAL=true | ||
| ID_CUSTOM_ALPHABET=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ | ||
| ID_CUSTOM_SIZE=21 | ||
|
|
||
| # Behaviour flags | ||
| AUDIT_ENABLED=true | ||
| CORS_ENABLED=false | ||
| ALLOWED_ORIGINS= | ||
| PLURALIZE_SCHEMAS_ENABLED=true | ||
| ``` |
There was a problem hiding this comment.
Would be best to rely on the content of the .env.schema to have functioning defaults. maintaining them in two places will 100% lead to them drifting and these instructions failing. I would remove this example and rely on the example .env file and the main readme.
Env var official docs: https://github.com/overture-stack/lyric/blob/main/README.md#environment-variables
There was a problem hiding this comment.
done, that said .env.schema didn't have functioning defaults, updated it to have values matching the bundled compose file.
| **Server** | ||
|
|
||
| - `PORT`: Server port (default: 3030) | ||
| - `LOG_LEVEL`: Log verbosity (default: info) | ||
|
|
||
| **PostgreSQL** | ||
|
|
||
| - `DB_HOST`: Database hostname | ||
| - `DB_PORT`: Database port | ||
| - `DB_NAME`: Database name | ||
| - `DB_USER`: Database user | ||
| - `DB_PASSWORD`: Database password | ||
|
|
||
| **Schema Service** | ||
|
|
||
| - `LECTERN_URL`: URL of the Lectern service supplying dictionary schemas | ||
|
|
||
| **ID Generation** | ||
|
|
||
| - `ID_USELOCAL`: Generate record IDs locally (default: true) | ||
| - `ID_CUSTOM_ALPHABET`: Custom alphabet for local ID generation | ||
| - `ID_CUSTOM_SIZE`: Length of locally generated IDs (default: 21) | ||
|
|
||
| **Behaviour** | ||
|
|
||
| - `AUDIT_ENABLED`: Log all modifications to submitted data (default: true) | ||
| - `CORS_ENABLED`: Enable CORS (default: false) | ||
| - `ALLOWED_ORIGINS`: Comma-separated list of permitted CORS origins | ||
| - `PLURALIZE_SCHEMAS_ENABLED`: Automatically pluralize schema names for compound documents (default: true) | ||
|
|
||
| **Kafka (optional)** | ||
|
|
||
| - `KAFKA_BROKERS`: Comma-separated broker addresses (for example `localhost:9092`). When set, Lyric publishes each committed record to a Kafka topic for Maestro to index. Omit to run without Kafka publishing | ||
| - `KAFKA_TOPIC`: Topic that committed records are published to, created on startup if it does not exist. Required when `KAFKA_BROKERS` is set | ||
| - `KAFKA_CLIENT_ID`: Kafka client identifier, unique per environment to distinguish producers in broker logs (default: `lyric`) | ||
|
|
||
| **Record Validation (optional)** | ||
|
|
||
| - `VALIDATOR_CONFIG`: JSON array enabling the endpoint that checks whether a record exists with a given field value. Each entry needs `categoryId`, `entityName`, and `fieldName`, where `categoryId` accepts either a category's numeric ID or its alias — for example `[{"categoryId": "1", "entityName": "sample", "fieldName": "sample_id"}]` |
There was a problem hiding this comment.
All of this should have a table to reference, its nicely formatted here, but again this will lead to drift.
Env var official docs: https://github.com/overture-stack/lyric/blob/main/README.md#environment-variables
There was a problem hiding this comment.
Deleted the whole block. The README table is now the only place these are documented, linked from the setup step as the single source of truth.
|
|
||
| ### Submission Testing | ||
|
|
||
| 1. Navigate to the Swagger UI. |
There was a problem hiding this comment.
Probably include the link: [Swagger UI](http://localhost:3030/api-docs)
| ### Submission Testing | ||
|
|
||
| 1. Navigate to the Swagger UI. | ||
| 2. Register a Lectern dictionary against a category using the dictionary-registration endpoints. |
There was a problem hiding this comment.
Which endpoint is that? Can you link here to a sample dictionary to use?
There was a problem hiding this comment.
updated to use curl commands for each step, updated a section preceeding this to state that all commands shown can be achieved via the swagger ui.
|
|
||
| 1. Navigate to the Swagger UI. | ||
| 2. Register a Lectern dictionary against a category using the dictionary-registration endpoints. | ||
| 3. Submit a tabular data file and verify that it is validated against the registered schema. |
There was a problem hiding this comment.
Again, which endpoint and sample data.
There was a problem hiding this comment.
same as above
|
|
||
| **Troubleshooting:** | ||
|
|
||
| - Ensure PostgreSQL and Lectern are running and reachable at the configured hosts and ports. |
There was a problem hiding this comment.
hows? consider adding more details like docker ps to ensure container status.
There was a problem hiding this comment.
expanded with docker ps and troubleshooting tips
Summary
Documentation for the Overture docs site. The placeholder
docs/02-lyric.mdis replaced by two real pages, and the README's developer-docs links are repointed at the current site.No Source code changes
Changes
docs/01-overview.md(new). Feature overviewdocs/02-Setup.md(new). Task-oriented development-environment setup: prerequisites (pnpm, Node 20+, Docker), dependent services, configuration, and verification.docs/02-lyric.md(deleted). Superseded by the two pages above.README.md. The two Developer Documentation links moved offdocs.overture.bio/docs/under-development/lyric/ontodocs.overture.bio/build/core-software/Lyric/overview.