Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
01a303b
Overture docs V2 update
MitchellShiell Jul 24, 2026
a1c2194
submodule update
MitchellShiell Jul 24, 2026
b812ff2
submodule update
MitchellShiell Jul 24, 2026
f66a63c
base page updates + overall organization
MitchellShiell Jul 27, 2026
4c32ec4
submodule update
MitchellShiell Jul 27, 2026
cdccf04
punctuation update
MitchellShiell Jul 27, 2026
ebbc436
Expand and split the AI-Assisted Data Discovery guide into multiple p…
MitchellShiell Jul 27, 2026
e629cbc
updated file transfer guides
MitchellShiell Jul 27, 2026
3d5bffe
first round review
MitchellShiell Jul 28, 2026
ba411de
submodule update
MitchellShiell Jul 28, 2026
eba8a74
minor correction
MitchellShiell Jul 28, 2026
b48640a
updated deploy docs sidebar
MitchellShiell Jul 28, 2026
f44d4b5
minor fixes
MitchellShiell Jul 28, 2026
4a76863
submodule update
MitchellShiell Jul 29, 2026
790ce75
submodule + use doc update
MitchellShiell Jul 29, 2026
00485d4
minor update
MitchellShiell Jul 29, 2026
3506ed1
fixed search engine page failing build
MitchellShiell Jul 29, 2026
94271a6
song playground update
MitchellShiell Jul 29, 2026
020a95f
playground + arranger updates
MitchellShiell Jul 29, 2026
2e817c9
link & submodule updates
MitchellShiell Jul 30, 2026
ed0584e
bump song + score pins: drop formatter-only Java churn from doc branches
MitchellShiell Jul 30, 2026
1b82f3d
bump song pin: doc branch rebased onto develop
MitchellShiell Jul 30, 2026
ee771bc
bump score pin: doc branch rebased onto develop
MitchellShiell Jul 30, 2026
0ac94d4
bump stage pin: doc branch rebased onto main
MitchellShiell Jul 30, 2026
5e84984
bump lectern pin: doc branch rebased onto main
MitchellShiell Jul 30, 2026
3c80c2d
bump maestro pin: doc branch rebased onto M5-revised
MitchellShiell Jul 30, 2026
8fc27dd
bump arranger pin: doc branch rebased onto main
MitchellShiell Jul 30, 2026
7a10f91
bump lectern pin: fix broken #field-restrictions anchor
MitchellShiell Jul 30, 2026
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
17 changes: 0 additions & 17 deletions .dev/roadmap.md

This file was deleted.

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Project Management Context
/CCDdoc
/.dev
30 changes: 30 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!-- agentics-template-version: 0.9.0 | synced: b37cb60ff2668945f74347826ca6ccf24b5e80a9 -->
# Agent collaboration conventions — Overture Docs

**For AI agents:** this file is instructions you read and follow, not documentation written for people. If you're a person, see [README.md](README.md) instead.

Adapted from [softeng/agentics](https://github.com/oicr-softeng/agentics). This is the canonical, agent-neutral source for **Overture Docs-specific** conventions; `CLAUDE.md` is a stub that points here.

Universal conventions (interaction style, critical constraints, testing, code style, security, documentation, session discipline), the developer role, the softeng team layer, and the Overture product-family layer (`CLAUDE.overture.md`, applied because project memory flags this as an Overture repo) are **not duplicated here**: they come from the developer's agentics-based global context and the local clone at `~/.claude/agentics/template/`. Any agent working in this repo reads those on demand; this file adds only what is specific to Overture Docs.

## Session start
Before touching content, read `.dev/roadmap.md`, `.dev/tech-debt.md`, and the most recent file(s) in `.dev/sessions/`. Full session-start sequence: `~/.claude/agentics/template/conventions/session-discipline.md`.

## When to read what (agentics conventions — read on demand)
The canonical task→convention dispatch table lives in `~/.claude/agentics/template/AGENTS.md` § "When to read what": tests, code style, code review, docs, security, convention levels, upgrading adoption. Read the matching file from `~/.claude/agentics/template/conventions/` when doing that task. Most work here is documentation, so `conventions/documentation.md` applies to the majority of changes.

## Project context
Overture Docs is the **centralized documentation site for the Overture stack**, built with [Docusaurus](https://docusaurus.io/). It aggregates Markdown from the `/docs` directory of each Overture project repository (pulled in as git submodules) and renders them as one navigable site. The point of the setup is that documentation stays with its source project while readers get a single hub. Full overview in [README.md](README.md); planned work lives in `.dev/roadmap.md`.

## Project-specific constraints
- **Public repository** (`overture-stack/docs`): no credentials, secrets, tokens, or private URLs in any committed file, ever.
- **Documentation content is owned by the submodules, not this repo.** Each project's docs live in `submodules/<project>/docs/` and are symlinked into `website/docs/`. Edit the **source** file under `submodules/<project>/`, never the symlinked copy under `website/docs/`: editing through the link mutates the vendored submodule's working tree in a way that is easy to lose and confusing to review. Symlinks are (re)generated by `symlinker.sh`.
- **Submodules are separate Overture repos with their own conventions.** Defer to any in-tree `AGENTS.md`/`CLAUDE.md` inside a submodule; do not apply this repo's root conventions on top of vendored component code. Changes to a submodule's actual content belong in that submodule's own repo and PR flow, not here.
- **Only site scaffolding and aggregation live in this repo**: the Docusaurus config, theme, components, and the symlink/build wiring under `website/`. That is what a change to *this* repo (as opposed to a submodule) should normally touch.

## Repository orientation
- `submodules/` — vendored Overture repos as git submodules: `arranger`, `lectern`, `lyric`, `maestro`, `score`, `song`, `stage`, and `.github`. Each carries its own `/docs`. Defined in `.gitmodules` (see `.dev/roadmap.md`: release-branch tracking is not yet configured, so `git submodule update --remote` currently follows each repo's default branch).
- `website/` — the Docusaurus site: `docs/` (aggregated, symlinked from submodules), `community/`, `guides/`, and `src/` (`components/`, `css/`, `theme/`, `pages/`).
- `symlinker.sh` — regenerates the symlinks that bring selected submodule `/docs` files into `website/docs/`.
- `README.md`, `preview.png` — human-facing project overview and screenshot.
- Local setup: Node 18+, `npm ci`, then `npm start` (see `README.md` § Getting Started).
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Agent collaboration conventions

**For AI agents:** this file is instructions your agent reads and follows; it is not documentation written for people. If you're a person looking for how this project works, see [README.md](README.md) instead.

Adapted from [softeng/agentics](https://github.com/oicr-softeng/agentics).

This file exists only because Claude Code loads it automatically; it is not the canonical source. Read [AGENTS.md](AGENTS.md) now for this project's conventions. Universal conventions, your role, and the softeng team layer come from your global context (`~/.claude/CLAUDE.md`) and the agentics clone at `~/.claude/agentics/template/`, so none of it is duplicated here to drift out of sync.
6 changes: 0 additions & 6 deletions package-lock.json

This file was deleted.

2 changes: 1 addition & 1 deletion submodules/.github
2 changes: 1 addition & 1 deletion submodules/arranger
Submodule arranger updated 284 files
2 changes: 1 addition & 1 deletion submodules/lectern
Submodule lectern updated 217 files
2 changes: 1 addition & 1 deletion submodules/lyric
Submodule lyric updated 197 files
2 changes: 1 addition & 1 deletion submodules/maestro
Submodule maestro updated 349 files
2 changes: 1 addition & 1 deletion submodules/score
Submodule score updated 28 files
+1 −1 Jenkinsfile
+15 −8 Makefile
+8 −5 README.md
+4 −3 docker-compose.yml
+1 −1 docker/keycloak-init/data_import/myrealm-users-0.json
+16 −16 docs/reference/01-upload.md
+22 −21 docs/reference/02-download.md
+2 −2 docs/reference/03-object-storage.md
+13 −13 docs/reference/04-authentication.md
+1 −1 docs/reference/05-hashicorp-vault.md
+5 −5 docs/reference/06-api-reference.mdx
+2 −4 docs/reference/07-client-reference.md
+2 −4 docs/reference/reference.mdx
+84 −34 docs/setup.md
+1 −1 pom.xml
+0 −4 score-client/src/main/java/bio/overture/score/client/config/ProfileConfig.java
+4 −8 score-client/src/main/java/bio/overture/score/client/exception/ConnectivityResponseHandler.java
+1 −0 score-client/src/main/java/bio/overture/score/client/manifest/DownloadManifest.java
+6 −0 score-client/src/main/java/bio/overture/score/client/storage/ScoreStorageService.java
+0 −3 score-core/src/main/java/bio/overture/score/core/security/ssl/SSLCertificateValidation.java
+10 −5 score-server/src/main/java/bio/overture/score/server/config/SecurityConfig.java
+23 −2 score-server/src/main/java/bio/overture/score/server/config/SwaggerConfig.java
+0 −8 score-server/src/main/java/bio/overture/score/server/controller/BenchmarkUploadController.java
+6 −12 score-server/src/main/java/bio/overture/score/server/controller/DownloadController.java
+16 −31 score-server/src/main/java/bio/overture/score/server/controller/UploadController.java
+23 −0 score-server/src/main/java/bio/overture/score/server/metadata/MetadataFile.java
+17 −0 score-server/src/main/java/bio/overture/score/server/metadata/MetadataService.java
+16 −3 score-server/src/main/java/bio/overture/score/server/repository/s3/S3UploadService.java
2 changes: 1 addition & 1 deletion submodules/song
Submodule song updated 77 files
+9 −3 Makefile
+8 −5 README.md
+10 −0 data-migration/.env.schema
+9 −0 data-migration/.gitignore
+5 −0 data-migration/.prettierignore
+8 −0 data-migration/.prettierrc
+86 −0 data-migration/Dockerfile
+67 −0 data-migration/README.md
+53 −0 data-migration/eslint.config.js
+33 −0 data-migration/package.json
+1,414 −0 data-migration/pnpm-lock.yaml
+34 −0 data-migration/src/config/db.ts
+16 −0 data-migration/src/config/env.ts
+3 −0 data-migration/src/index.ts
+109 −0 data-migration/src/migration/migrate.ts
+96 −0 data-migration/src/migration/samplesStructureForAnalyses.ts
+32 −0 data-migration/src/migration/updateAnalyses.ts
+43 −0 data-migration/src/types/index.ts
+113 −0 data-migration/tsconfig.json
+1 −1 dev/Makefile
+9 −7 docker-compose.yml
+2 −3 docs/00-overview.md
+90 −35 docs/01-setup.md
+153 −0 docs/02-Reference/00-submitting-metadata.md
+12 −9 docs/02-Reference/01-retrieving-metadata.md
+3 −6 docs/02-Reference/02-Reference.mdx
+30 −31 docs/02-Reference/02-updating-metadata.md
+3 −3 docs/02-Reference/03-publication-controls.md
+105 −10 docs/02-Reference/04-data-model-management.md
+1 −1 docs/02-Reference/05-schema-strictness.md
+23 −0 docs/02-Reference/06-id-management.md
+3 −3 docs/02-Reference/07-kafka.md
+9 −10 docs/02-Reference/08-authentication.md
+2 −2 docs/02-Reference/09-api-reference.mdx
+22 −20 docs/02-Reference/10-client-reference.md
+67 −0 docs/02-Reference/11-database-migration.md
+0 −146 docs/02-Usage/00-submitting-metadata.md
+0 −184 docs/02-Usage/06-id-management.md
+ docs/assets/swagger_register_schemas.png
+0 −110 docs/custom-schemas.md
+5 −0 song-client/pom.xml
+6 −1 song-client/src/main/java/bio/overture/song/client/command/SubmitCommand.java
+2 −1 song-client/src/test/java/bio/overture/song/client/HappyPathClientMainTest.java
+5 −0 song-core/pom.xml
+1 −1 song-docker-demo/storage-client/Dockerfile
+5 −0 song-java-sdk/pom.xml
+3 −2 song-java-sdk/src/main/java/bio/overture/song/sdk/SongApi.java
+2 −2 song-java-sdk/src/main/java/bio/overture/song/sdk/web/Endpoint.java
+79 −0 song-server/src/main/java/bio/overture/song/server/config/JwtDecoderConfig.java
+3 −4 song-server/src/main/java/bio/overture/song/server/config/KeycloakConfig.java
+113 −111 song-server/src/main/java/bio/overture/song/server/config/SecurityConfig.java
+25 −2 song-server/src/main/java/bio/overture/song/server/config/SwaggerConfig.java
+5 −15 song-server/src/main/java/bio/overture/song/server/controller/AnalysisController.java
+1 −13 song-server/src/main/java/bio/overture/song/server/controller/FileController.java
+1 −4 song-server/src/main/java/bio/overture/song/server/controller/StudyController.java
+0 −2 song-server/src/main/java/bio/overture/song/server/controller/SubmitController.java
+1 −4 song-server/src/main/java/bio/overture/song/server/controller/analysisType/AnalysisTypeController.java
+1 −1 song-server/src/main/java/bio/overture/song/server/kafka/Sender.java
+5 −6 song-server/src/main/java/bio/overture/song/server/kafka/impl/KafkaSender.java
+3 −3 song-server/src/main/java/bio/overture/song/server/kafka/impl/NoopSender.java
+10 −11 song-server/src/main/java/bio/overture/song/server/oauth/AccessTokenConverterWithExpiry.java
+11 −11 song-server/src/main/java/bio/overture/song/server/oauth/ExpiringOauth2Authentication.java
+2 −6 song-server/src/main/java/bio/overture/song/server/repository/search/IdSearchRequest.java
+93 −101 song-server/src/main/java/bio/overture/song/server/security/ApiKeyIntrospector.java
+1 −2 song-server/src/main/java/bio/overture/song/server/security/KeycloakPermission.java
+6 −7 song-server/src/main/java/bio/overture/song/server/security/StudySecurity.java
+7 −10 song-server/src/main/java/bio/overture/song/server/security/SystemSecurity.java
+9 −1 song-server/src/main/java/bio/overture/song/server/service/SubmitService.java
+2 −2 song-server/src/main/java/bio/overture/song/server/service/analysis/AnalysisService.java
+10 −9 song-server/src/main/java/bio/overture/song/server/service/analysis/AnalysisServiceSender.java
+14 −22 song-server/src/main/java/bio/overture/song/server/service/auth/KeycloakAuthorizationService.java
+10 −10 song-server/src/main/java/bio/overture/song/server/utils/Scopes.java
+3 −1 song-server/src/main/resources/application.yml
+0 −4 song-server/src/main/resources/schemas/analysis/analysisTypeRegistration.json
+1 −7 song-server/src/test/java/bio/overture/song/server/service/AnalysisServiceSenderTest.java
+1 −2 song-server/src/test/java/bio/overture/song/server/service/AnalysisServiceTest.java
+7 −5 song-server/src/test/java/bio/overture/song/server/service/MockedSubmitTest.java
53 changes: 40 additions & 13 deletions symlinker.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,43 @@
#!/bin/bash
#!/usr/bin/env bash
#
# Regenerates the documentation symlinks under website/docs/ that bring each
# submodule's docs into the Docusaurus site. Run from the repository root:
#
# ./symlinker.sh
#
# These links MUST match what is committed under website/docs/. If you change
# what the site surfaces, change it here and regenerate — so the script and the
# repo never disagree. (A drifted script silently rebuilds a *different* site.)
#
# Link targets are relative, never absolute: Netlify resolves them at build time
# and absolute paths do not deploy correctly.
#
set -euo pipefail
cd "$(dirname "$0")"

# Do not use absolute paths, they will not deploy on netlify correctly
# Run this from the directory you want the link to be made in
ln -s ../../../submodules/song/docs/ 01-song
ln -s ../../../submodules/score/docs/ 02-score
ln -s ../../../submodules/maestro/docs/ 03-maestro
ln -s ../../../submodules/arranger/docs/ 04-arranger
ln -s ../../../submodules/stage/docs/ 05-stage
# --- Core software: each links the component's whole docs/ directory ---
# link path (under website/docs/) submodule
core_links=(
"website/docs/develop-docs/01-Lectern lectern"
"website/docs/develop-docs/02-Lyric lyric"
"website/docs/develop-docs/03-Song song"
"website/docs/develop-docs/04-Score score"
"website/docs/develop-docs/05-Maestro maestro"
"website/docs/develop-docs/06-Arranger arranger"
"website/docs/develop-docs/07-Stage stage"
)
for entry in "${core_links[@]}"; do
read -r link comp <<<"$entry"
rm -rf "$link"
ln -s "../../../submodules/${comp}/docs/" "$link"
done

# Linked into from bridge/website/docs/04-Standards
ln -s ../../submodules/.github/standards 04-standards
# --- Org-level documentation standards (from the .github submodule) ---
# Re-homed under the Community journey (website/docs/community-docs/) in
# the Deploy·Build·Use IA migration; the relative target has one fewer
# ../ than the core_links above because this symlink sits directly under
# docs/community-docs/, not nested a level deeper like 01-core-software/.
rm -rf "website/docs/community-docs/07-documentation-standards"
ln -s "../../../submodules/.github/standards" "website/docs/community-docs/07-documentation-standards"

# Linked into from bridge/website/docs/03-under-development
ln -s ../../../submodules/lectern/docs/overview 01-lectern
ln -s ../../../submodules/lyric/docs/ 02-lyric
echo "Regenerated $(( ${#core_links[@]} + 1 )) doc symlinks under website/."
33 changes: 0 additions & 33 deletions website/casestudiesSidebars.ts

This file was deleted.

46 changes: 19 additions & 27 deletions website/communitySidebars.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,25 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';

/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation

The sidebars can be generated from the filesystem, or explicitly defined here.

Create as many sidebars as you want.
*/
// The documentation-standards content is vendored from the .github submodule
// (symlinked), so we can't drop a _category_.json inside it to set the
// sidebar label — it's wired up explicitly here instead (same pattern as
// developSidebars.ts for the per-component vendored docs).
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
communitySidebar: [{type: 'autogenerated', dirName: '.'}],

// But you can create a sidebar manually

// guidesSidebar: [
// {
// type: 'category',
// label: 'moduleA',
// items: ['moduleA/nestedFolder/nestedElement'],
// },
// {
// type: 'category',
// label: 'moduleB',
// items: ['moduleB/littleBlackSubmarines'],
// },
// ],
communitySidebar: [
'support',
'team',
'funding',
'licensing',
'code-of-conduct',
'contribution',
'citing-us',
{
type: 'category',
label: 'Documentation Standards',
link: {type: 'doc', id: 'documentation-standards/documentation-standards'},
items: [{type: 'autogenerated', dirName: '07-documentation-standards'}],
},
],
};

export default sidebars;
50 changes: 50 additions & 0 deletions website/deploySidebars.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";

const sidebars: SidebarsConfig = {
// Prelude is marked `unlisted` (hidden for now, still reachable by direct
// link) so it's left out here rather than autogenerated. The Quickstart page
// was removed entirely on 2026-07-30 along with the prelude `quickstart`
// branch it documented; each component now documents its own development
// environment in its own repository. The deployment docs are organized into
// service categories so users can open individual pages for each deployable
// service.
deploySidebar: [
"index",
{
type: "category",
label: "Authorization",
collapsible: false,
className: "sidebar-section-heading",
items: ["deployment/keycloak"],
},
{
type: "category",
label: "File Transfer",
collapsible: false,
className: "sidebar-section-heading",
items: ["deployment/song", "deployment/score"],
},
{
type: "category",
label: "Tabular Data Submission",
collapsible: false,
className: "sidebar-section-heading",
items: ["deployment/lectern", "deployment/lyric"],
},
{
type: "category",
label: "Search Portal",
collapsible: false,
className: "sidebar-section-heading",
items: [
"deployment/search-engine",
"deployment/maestro",
"deployment/arranger",
"deployment/stage",
"deployment/arranger-mcp-server",
],
},
],
};

export default sidebars;
99 changes: 99 additions & 0 deletions website/developSidebars.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";

const sidebars: SidebarsConfig = {
useSidebar: [
"index",

{
type: "category",
label: "File Transfer",
collapsible: false,
className: "sidebar-section-heading",
items: [
{
type: "category",
label: "Song",
link: {
type: "doc",
id: "Song/overview",
},
items: [{ type: "autogenerated", dirName: "03-Song" }],
},
{
type: "category",
label: "Score",
link: {
type: "doc",
id: "Score/overview",
},
items: [{ type: "autogenerated", dirName: "04-Score" }],
},
],
},

{
type: "category",
label: "Tabular Data Submission",
collapsible: false,
className: "sidebar-section-heading",
items: [
{
type: "category",
label: "Lectern",
link: {
type: "doc",
id: "Lectern/overview",
},
items: [{ type: "autogenerated", dirName: "01-Lectern" }],
},
{
type: "category",
label: "Lyric",
link: {
type: "doc",
id: "Lyric/overview",
},
items: [{ type: "autogenerated", dirName: "02-Lyric" }],
},
{
type: "category",
label: "Maestro",
link: {
type: "doc",
id: "Maestro/overview",
},
items: [{ type: "autogenerated", dirName: "05-Maestro" }],
},
],
},

{
type: "category",
label: "Search Portal",
collapsible: false,
className: "sidebar-section-heading",
items: [
{
type: "category",
label: "Arranger",
link: {
type: "doc",
id: "Arranger/overview",
},
items: [{ type: "autogenerated", dirName: "06-Arranger" }],
},
{
type: "category",
label: "Stage",
link: {
type: "doc",
id: "Stage/overview",
},
items: [{ type: "autogenerated", dirName: "07-Stage" }],
},
],
},
],
};

export default sidebars;
Loading