Describe the problem you would like to solve
We are integrating OPS with a custom front-end and using the REST API (API/v1) to implement a one-step submission workflow.
Currently, it is possible to upload submission files via the API. However, after uploading a file, no corresponding publication galley is created. As a result, the file does not appear in the editorial interface or public page.
From database inspection we observed:
-
A record is inserted into
submission_files -
No record is inserted into
publication_galleys -
The uploaded submission file has no
assoc_typeandassoc_id -
Therefore the file is treated as a workflow file rather than a published file
When performing the same action through the OPS web interface, uploading the final production file automatically creates a galley and associates the file correctly. This behavior cannot currently be reproduced using only the REST API.
This makes it impossible to implement a fully automated submission pipeline using the official API.
Describe the solution you’d like
We would like an official REST API endpoint that allows creating a publication galley and attaching an existing submission file to it.
For example, an endpoint such as:
POST /api/v1/publications/{publicationId}/galleys
with parameters similar to:
-
submissionFileId
-
label (PDF / HTML / etc.)
-
locale
-
isApproved / isPublished (or equivalent workflow state)
The endpoint should:
-
Create a
publication_galley -
Associate the submission file (
assoc_type,assoc_id) -
Ensure the galley becomes visible in the editorial and public interface
This would allow external systems to complete the production workflow programmatically without directly modifying the database or writing custom plugins.
Who is asking for this feature?
Platform developers and technical administrators integrating OPS with external submission systems and custom front-ends.
Additional information
We are building an automated submission pipeline where multiple steps (submission creation, metadata, file upload, publication) are combined into a single operation.
Currently the missing galley-creation API is the only blocking step preventing a fully API-driven workflow.
The web UI already performs this operation internally, which suggests the functionality exists in the service layer but is not exposed through REST.