Metadata Submission
Submitting new metadata entries (Analyses) to Song.
This page documents the basic submission flow, for a more detailed guide see our platform guide on CLI submissions.
Client Installation
-
Install the Song-Client:
To run the song-client using Docker, provide the following environment variables:
CLIENT_ACCESS_TOKEN
: Valid access tokenCLIENT_STUDY_ID
: Your study IDCLIENT_SERVER_URL
: Song server URL
Use this command to run a Song Client docker container:
docker run -d -it --name song-client \
-e CLIENT_ACCESS_TOKEN=${token} \
-e CLIENT_STUDY_ID=${studyId} \
-e CLIENT_SERVER_URL=${songServerUrl} \
--network="host" \
--mount type=bind,source="$(pwd)",target=/output \
ghcr.io/overture-stack/song-client:latestReplace all
${}
placeholders with your environment's values.Detailed command breakdown
-d -it
: Runs container in detached and interactive mode-e CLIENT_ACCESS_TOKEN=${token}
: Access token from the platform's auth service-e CLIENT_STUDY_ID=${studyId}
: Your specific study ID-e CLIENT_SERVER_URL=${songServerUrl}
: Song server URL--network="host"
: Uses host network stack--mount type=bind,source="$(pwd)",target=/output
: Mounts current directory to container's/output
-
Install the Score-Client:
To run the score-client using Docker, provide the following environment variables:
STORAGE_URL
: Score server URLMETADATA_URL
: Song server URLACCESSTOKEN
: Valid access token
Use this command to run a Score Client docker container:
docker run -d --name score-client \
-e ACCESSTOKEN=${token} \
-e STORAGE_URL=${scoreServerUrl} \
-e METADATA_URL=${songServerUrl} \
--network="host" \
--platform="linux/amd64" \
--mount type=bind,source="$(pwd)",target=/output \
ghcr.io/overture-stack/score:latestReplace all
${}
placeholders with your environment's values.Detailed command breakdown
-d
: Runs container in detached mode (background)-e ACCESSTOKEN=${token}
: Access token from the platform's auth service-e STORAGE_URL=${scoreServerUrl}
: Score server URL-e METADATA_URL=${songServerUrl}
: Song server URL--network="host"
: Uses host network stack--platform="linux/amd64"
: Specifies container platform--mount type=bind,source="$(pwd)",target=/output
: Mounts current directory to container's/output
Step 1: Prepare a Payload
Create a metadata payload conforming to a registered analysis_type
schema. For more information, see our section covering Data Model Management.
Step 2: Upload the Metadata Payload
Use the song-client submit
command:
docker exec song-client sh -c "sing submit -f /output/example-payload.json"
Successful submission returns an analysisId
:
{
"analysisId": "a4142a01-1274-45b4-942a-01127465b422",
"status": "OK"
}
Step 3: Generate a Manifest File
Use the analysisId
to create a manifest for file upload:
docker exec song-client sh -c "sing manifest -a a4142a01-1274-45b4-942a-01127465b422 -f /some/output/dir/manifest.txt -d /submitting/file/directory"
A manifest is a file generated by Song that establishes a link between an analysis ID and the data files on your local system, used by Score for file uploads.