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

🥁 Prelude #29

Draft
wants to merge 150 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
9e908ef
Proof of concept development kit
MitchellShiell Dec 22, 2024
6e88795
Proof of concept development kit mock data
MitchellShiell Dec 22, 2024
0b616e4
Basic front-end complete, need to add documentation
MitchellShiell Dec 23, 2024
4aa07eb
updated readme and documentation
MitchellShiell Dec 23, 2024
289fd82
removed es volumes
MitchellShiell Dec 23, 2024
0f59309
readme update
MitchellShiell Dec 23, 2024
db8db90
fixed typo
MitchellShiell Jan 7, 2025
bc4a7c4
basic setup
MitchellShiell Jan 14, 2025
4f63ea5
basic setup with keycloak files
MitchellShiell Jan 14, 2025
f126291
pre-seeded keycloakDb
MitchellShiell Jan 14, 2025
2029fec
pre-seeded songDb
MitchellShiell Jan 14, 2025
cc87823
updated with phaseOne and phaseTwo docker composes
MitchellShiell Jan 14, 2025
87955da
updated phaseOne and phaseTwo folders
MitchellShiell Jan 15, 2025
9129c6e
stage in root
MitchellShiell Jan 16, 2025
2869b8d
updated stage folder
Jan 18, 2025
5ae9b57
functional song swagger component
Jan 19, 2025
8470f47
functional documentation component
Jan 19, 2025
74f2c86
functional Auth with keycloak
Jan 20, 2025
9ff4f55
minor update
Jan 20, 2025
6dfc04e
updated gitignore
Jan 20, 2025
0867fa8
moved stage folder, updated docker with build context
Jan 20, 2025
d0f3ae8
temporarily removed persistentStorage folder
Jan 20, 2025
c939004
adding persistent storage back
Jan 20, 2025
bb78fd5
documentation template, CORS swagger fix, supplementary files included
Jan 21, 2025
9f07d9e
stage downloads fixed and tested
Jan 21, 2025
dc62a2b
removed nginx configs
Jan 21, 2025
110f496
added architecture diagrams
Jan 22, 2025
610e596
removed Ego logic
Jan 22, 2025
ba0d04a
reset local databases
Jan 22, 2025
9e8a06e
phaseOne fix + stage image seperation
Jan 22, 2025
51fe382
remaining tasks, fix manifest download, provide empty postgres on sta…
Jan 22, 2025
cfef0ad
manifest downloads working
Jan 22, 2025
15b7018
improved repository structure
Jan 27, 2025
947ad94
prelude PhaseOne rework
Jan 28, 2025
3805b6a
added missing dependency installation step to csv-processor service s…
Jan 29, 2025
9adf1cf
added envs to conductor, reference by scripts
Jan 29, 2025
432dfe0
merge
Jan 29, 2025
1d7816a
updated documentation within folders
Jan 29, 2025
039a949
minor fix
Jan 29, 2025
b83f29c
updated stage with banner component
Jan 29, 2025
57d0854
added phaseThree components, updated stage + compose docs
Jan 30, 2025
671af35
phaseThree, need to address 405 on study creation
Jan 30, 2025
068f376
fixed phaseOne download bug
Jan 30, 2025
89b76c2
Created CSV-processor service
Jan 31, 2025
c4dcebf
Added inline documentation
Jan 31, 2025
f90b284
minor updates to stage, fixes to compose, updates to phaseTwo service…
Jan 31, 2025
5d4c7f1
adding index mapping generation functionality to csv-processor
Jan 31, 2025
802c541
Added arranger Config generation automation
Feb 3, 2025
7220161
update .gitignore
Feb 3, 2025
8a28c27
update Elasticsearch image version
justincorrigible Feb 4, 2025
4060708
update links to reuse shared constants
justincorrigible Feb 4, 2025
96d1d8d
tabular data index + data loading fix
Feb 5, 2025
7e50c81
commented out jsonPath and Query logic for arranger config generation
Feb 7, 2025
1f80164
ES + GQL header to fieldname validations
Feb 7, 2025
b8a1e1f
minor updates
Feb 7, 2025
6ac0761
phase2 added services running, needs testing
Feb 7, 2025
5105336
updated swagger components, still needs work
Feb 12, 2025
7541ecb
added service script for lectern schema upload
Feb 12, 2025
4d48990
added service script for song uploads, analysis still needs work
Feb 12, 2025
5d1ced0
song submission
Feb 12, 2025
3a872d1
updated scripts for phase 2 and 3
Feb 14, 2025
5b61b2d
tabular data with persistent storage automation scripts
Feb 15, 2025
c043b80
lectern schema automation TODO comments
Feb 15, 2025
f9b95d7
basic lectern schema automation, csv-processor > composer, song.ts
Feb 16, 2025
91e35da
added song schema generation using inputed json file
Feb 16, 2025
ffafb38
reorganization of csv-processor into conductor and composer
Feb 17, 2025
68f1ae7
misc infra updates
justincorrigible Feb 5, 2025
cf47925
refactor of csv-processor into conductor and composer
Feb 19, 2025
fcf37f0
refactor of csv-processor into conductor and composer
Feb 19, 2025
0970c7e
arranger config generation now includes all dataTypes
Feb 19, 2025
5826de3
index name added as option on mapping command
Feb 19, 2025
4661dee
minor fixes
Feb 20, 2025
3751f5f
Merge remote-tracking branch 'refs/remotes/origin/prelude' into prelude
Feb 20, 2025
822220b
regoranization/cleanup of conductor
Feb 20, 2025
3a25b9e
updated conductor csv processoring
Feb 21, 2025
cb59163
updated make file and docker compose
Feb 21, 2025
29de0e7
updated configuration files and scripts
Feb 21, 2025
fd1ed21
logger utility for consitent logging, need to fix debug option
Feb 23, 2025
bb0cac2
improvements to logging, need to go through each example log from --h…
Feb 23, 2025
c48c169
✓ generate elasticSearchMapping logging
Feb 24, 2025
ea6181f
removed vestigial cliMode references
Feb 24, 2025
fe1b0e9
removed vestigial mode references
Feb 24, 2025
da5ea9a
✓ generateArrangerConfig logging udpated
Feb 24, 2025
b3deb21
✓ generateSongSchema logging udpated - TODO more intuititve fileType …
Feb 24, 2025
7a3514b
✓ generateLecternDictionary logging udpated - TODO log fileNames
Feb 25, 2025
bf5ac02
imporved logger.ts util with variable bolding
Feb 25, 2025
e28f63e
conductor - CSV processing refactor inline with composer, TODO testin…
Feb 25, 2025
01843d1
segmented csv-processing services into smaller files, updated logging…
Feb 25, 2025
8213c87
updated error logs TODO fix index not found error logs
Feb 25, 2025
310c55b
conductor improved error logging + added testing
Feb 26, 2025
a745306
minor update
Feb 26, 2025
fcc86c8
minor update
Feb 26, 2025
6037bc2
minor update to invalid headers logging
Feb 26, 2025
bf8e7a8
conductor upload + indexManagement commands (cleaning logs later)
Mar 3, 2025
94ad108
conductor lecternUpload functionality
Mar 3, 2025
5b3e2ba
updated help command
Mar 3, 2025
d289bbf
register lyric with lectern dictionary functionality
Mar 3, 2025
43d258d
lyric data upload functionality
Mar 3, 2025
55cb3d5
song conductor functionality
Mar 4, 2025
1d250c5
score manifest and upload commands, (not fully functional)
Mar 5, 2025
fac4add
scoreManifestUpload working
Mar 5, 2025
a5a78ab
song publication command working
Mar 5, 2025
65161c4
songScore submission command working
Mar 5, 2025
abb7503
cleanup
Mar 5, 2025
7548cc5
improved deployment & services scripts
Mar 7, 2025
56ab42c
clean up
Mar 7, 2025
1e7a0b5
stage docs component updated
Mar 8, 2025
c8ccd80
stage docs component updated
Mar 9, 2025
5331f2f
minor update
Mar 11, 2025
d20a42c
updated UIs for docs and homepage
Mar 11, 2025
9797f43
minor updates
Mar 11, 2025
4b4dc7c
minor updates
Mar 11, 2025
0dd662e
minor updates
Mar 11, 2025
0834dad
minor updates
Mar 11, 2025
fadcaed
styling update
Mar 12, 2025
af6f7a4
exploration table dropdowns update dynamically based on folder names …
Mar 12, 2025
ebf67cb
minor update, beginning phase1 testing + documentation
Mar 12, 2025
1aea6e8
pre deployment check script
Mar 12, 2025
a3e88a8
minor updates
Mar 12, 2025
8e25dce
minor updates
Mar 12, 2025
73e4e37
phase0 docs
Mar 12, 2025
15e4b6e
✔ Overview + Support docs
Mar 12, 2025
721f0f2
tempalated guides based on doc standards found here https://docs.over…
Mar 12, 2025
f32e20e
templating and next page footer
Mar 13, 2025
2c07951
phase1 Intro and step 1
Mar 13, 2025
3e08b6c
phase1 steps 2 + 3
Mar 13, 2025
d731547
base phase1 docker compose config update
Mar 13, 2025
8d7495f
stage generic data table update
Mar 13, 2025
01037d6
minor updates
Mar 13, 2025
84d0a26
phase1 minus stage dev updates
Mar 13, 2025
e0d579c
phase2 beginning
Mar 14, 2025
685bfbf
validation and error logging fixes
Mar 17, 2025
65a71a2
dataset > dataTable, updated lectern command allow folder input rathe…
Mar 17, 2025
bb41659
working on lyric data upload
Mar 17, 2025
bccc189
minor update
Mar 17, 2025
48c371f
updated functionality to support nested arrays in arranger config gen…
Mar 18, 2025
4061b21
fixing stage issue
Mar 19, 2025
01439db
working nicely
Mar 19, 2025
95e6840
working nicely
Mar 19, 2025
592ac40
minor update
Mar 19, 2025
fbd620a
minor update
Mar 19, 2025
0db0910
phase2 documentation update
Mar 21, 2025
8dffec8
Phase 3 docs
Mar 23, 2025
e90cfe3
minor improvements
Mar 24, 2025
f5aa27a
updated data table directory stucture
Mar 24, 2025
d921905
minor updates
Mar 25, 2025
7f620db
minor updates
Mar 26, 2025
d138812
readme update
Mar 26, 2025
548be10
readme update
Mar 26, 2025
2aa49d1
readme update
Mar 26, 2025
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
Prev Previous commit
Next Next commit
base phase1 docker compose config update
  • Loading branch information
Mitchell Shiell authored and Mitchell Shiell committed Mar 13, 2025
commit d7315472ff50efe657b7ca8509815e009fbcaf02
2 changes: 1 addition & 1 deletion apps/conductor/configs/arrangerConfigs/dataset1/base.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"documentType": "file",
"index": "dataset1.index"
"index": "dataset1-index"
}
2 changes: 1 addition & 1 deletion apps/conductor/scripts/services/arranger/arranger_check.sh
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ check_arrangers() {
printf "\033[1;36mConductor:\033[0m Checking %d Arranger instances\n" "$arranger_count"

all_healthy=true
i=0
i=1
while [ "$i" -lt "$arranger_count" ]; do
# Dynamically retrieve the URL for this instance
arranger_url_var="ARRANGER_${i}_URL"
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ printf "\033[1;32mSuccess:\033[0m Elasticsearch is available\n"
INDEX_COUNT=${ES_INDEX_COUNT:-0}
printf "\033[1;36mElasticsearch:\033[0m Setting up %d indices\n" "$INDEX_COUNT"

i=0
i=1
while [ "$i" -lt "$INDEX_COUNT" ]; do
# Use indirect variable expansion with proper syntax
index_name_var="ES_INDEX_${i}_NAME"
10 changes: 5 additions & 5 deletions apps/stage/public/docs/01-phaseOne.md
Original file line number Diff line number Diff line change
@@ -300,26 +300,26 @@ This step configures your docker-compose.yml file to properly connect your data
For each dataset, configure a separate Arranger service. Update the `arranger-clinical` service (or rename it appropriately) and add additional Arranger services if needed:

```yaml
arranger-dataset1: # Rename to match your dataset
arranger-dataset1:
profiles: ['phase1', 'phase2', 'phase3', 'stageDev', 'default']
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-dataset1
container_name: arranger-dataset1 # Rename to match above
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- '5050:5050' # Use unique ports for each Arranger instance
volumes:
- ./configs/arrangerConfigs/dataset1:/app/modules/server/configs # Point to your generated config
- ./configs/arrangerConfigs/dataset1:/app/modules/server/configs # Point to the relevant generated config
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: dataset1_arranger_set
# Arranger Variables (Port required)
PORT: 5050
# Arranger Variables
PORT: 5050 # Required
DEBUG: false
ENABLE_LOGS: false
```
105 changes: 82 additions & 23 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -24,20 +24,21 @@ services:
# Dynamic indices are configured with a count and indexed variables
ES_INDEX_COUNT: 1
# First index
ES_INDEX_0_NAME: tabular-index
ES_INDEX_0_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/tabular_data_index_template.json
ES_INDEX_0_TEMPLATE_NAME: tabular_template
ES_INDEX_0_ALIAS_NAME: tabular_centric
ES_INDEX_1_NAME: tabular-index
ES_INDEX_1_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/tabular_data_index_template.json
ES_INDEX_1_TEMPLATE_NAME: tabular_template
ES_INDEX_1_ALIAS_NAME: tabular_centric
# Second index
# ES_INDEX_1_NAME: file-index
# ES_INDEX_1_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/file_data_index_template.json
# ES_INDEX_1_TEMPLATE_NAME: file_template
# ES_INDEX_1_ALIAS_NAME: file_centric
# ES_INDEX_2_NAME: file-index
# ES_INDEX_2_TEMPLATE_FILE: conductor/configs/elasticsearchConfigs/file_data_index_template.json
# ES_INDEX_2_TEMPLATE_NAME: file_template
# ES_INDEX_2_ALIAS_NAME: file_centric
# Arranger Services Configuration
# Dynamically configurable number of Arranger instances
ARRANGER_COUNT: 1
ARRANGER_0_URL: http://arranger-dataset1:5050
# ARRANGER_1_URL: http://arranger-1:5051
ARRANGER_1_URL: http://arranger-dataset1:5050
ARRANGER_2_URL: http://arranger-dataset2:5051
ARRANGER_3_URL: http://arranger-dataset3:5052
# Add more ARRANGER_X_URL as needed, matching ARRANGER_COUNT
# ARRANGER_X_URL: http://arranger-x:505X
# Service Connections
@@ -159,20 +160,70 @@ services:
ports:
- "5050:5050"
volumes:
- ./apps/conductor/configs/arrangerConfigs/tabular-index:/app/modules/server/configs
- ./apps/conductor/configs/arrangerConfigs/dataset1:/app/modules/server/configs
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: tabular_arranger_set
ES_ARRANGER_SET_INDEX: dataset1_arranger_set
# Arranger Variables (Port required)
PORT: 5050
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network

arranger-dataset2:
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-dataset2
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- "5051:5051" # Use unique ports for each Arranger instance
volumes:
- ./apps/conductor/configs/arrangerConfigs/dataset2:/app/modules/server/configs # Point to the relevant generated config
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: dataset2_arranger_set
# Arranger Variables
PORT: 5051 # Required
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network

arranger-dataset3:
profiles: ["phase1", "phase2", "phase3", "stageDev", "default"]
image: ghcr.io/overture-stack/arranger-server:3.0.0-beta.36
container_name: arranger-dataset3
platform: linux/amd64
depends_on:
conductor:
condition: service_healthy
ports:
- "5052:5052" # Use unique ports for each Arranger instance
volumes:
- ./apps/conductor/configs/arrangerConfigs/dataset3:/app/modules/server/configs # Point to the relevant generated config
environment:
# Elasticsearch Variables
ES_HOST: http://elasticsearch:9200
ES_USER: elastic
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: dataset3_arranger_set
# Arranger Variables
PORT: 5052 # Required
DEBUG: false
ENABLE_LOGS: false
networks:
- conductor-network

# ------------------------------------------------------------------------------------#
# Stage #
# ------------------------------------------------------------------------------------#
@@ -198,15 +249,18 @@ services:
NEXT_PUBLIC_DEBUG: false
NEXT_PUBLIC_SHOW_MOBILE_WARNING: true
NEXT_PUBLIC_ENABLE_DOWNLOADS: true
# File Arranger Variables
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_API: http://arranger-1:5050
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_INDEX: file_centric
NEXT_PUBLIC_ARRANGER_MANIFEST_COLUMNS: repositories.code, analysis.analysis_id, object_id, study_id, file.name, file.size, file.md5sum, file_access, analysis.experiment.acknowledgements.strategy, file.data_type, analysis.experiment.data.sequence_length
# Tabular Arranger Variables
NEXT_PUBLIC_ARRANGER_CLINICAL_DATA_API: http://arranger-0:5051
NEXT_PUBLIC_ARRANGER_CLINICAL_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_CLINICAL_DATA_INDEX: tabular_centric
# Dataset1 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATASET_1_DATA_API: http://arranger-dataset1:5050
NEXT_PUBLIC_ARRANGER_DATASET_1_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATASET_1_DATA_INDEX: dataset1_centric
# Dataset2 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATASET_2_DATA_API: http://arranger-dataset2:5051
NEXT_PUBLIC_ARRANGER_DATASET_2_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATASET_2_DATA_INDEX: dataset2_centric
# Dataset2 Arranger Variables
NEXT_PUBLIC_ARRANGER_DATASET_3_DATA_API: http://arranger-dataset3:5052
NEXT_PUBLIC_ARRANGER_DATASET_3_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_DATASET_3_DATA_INDEX: dataset3_centric
# Using localhost for client-side requests
NEXT_PUBLIC_SONG_API: http://song:8080
NEXT_PUBLIC_LYRIC_API: http://lyric:3030
@@ -219,6 +273,11 @@ services:
# CORS Configuration
NEXT_PUBLIC_CORS_ENABLED: "true"
NEXT_PUBLIC_CORS_ALLOWED_ORIGINS: "*"
# File Arranger Variables
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_API: http://arranger-molecular:5060
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_DOCUMENT_TYPE: file
NEXT_PUBLIC_ARRANGER_MOLECULAR_DATA_INDEX: file_centric
NEXT_PUBLIC_ARRANGER_MANIFEST_COLUMNS: repositories.code, analysis.analysis_id, object_id, study_id, file.name, file.size, file.md5sum, file_access, analysis.experiment.acknowledgements.strategy, file.data_type, analysis.experiment.data.sequence_length
volumes:
- stage-data:/usr/src/public/static/dms_user_assets
networks:
@@ -628,7 +687,7 @@ services:
conductor:
condition: service_healthy
ports:
- "5051:5051"
- "5060:5060"
volumes:
- ./apps/conductor/configs/arrangerConfigs/fileDataConfigs:/app/modules/server/configs
environment:
@@ -638,7 +697,7 @@ services:
ES_PASS: myelasticpassword
ES_ARRANGER_SET_INDEX: file_arranger_set
# Arranger Variables
PORT: 5051
PORT: 5060
DEBUG: false
ENABLE_LOGS: false
networks: