Skip to content

Publication files, manifests and downloads

Authors maintain one directly editable publication.json. Connector context manifests, user scientific inputs, wrapper envelopes and saved operation evidence have separate purposes. Example identities, hosts, paths and artifact UUIDs are fixtures; replace them with the real values before service use.

File Structure and purpose Consumer
Author publication publication_version: 1, model, identities, execution, input_schema, output_schema, optional examples/diagnostics Local wrapper tests, model validate, model create --file, model release init --file
Execution context manifest_version: 1, kind: "execution-context", spec containing context ID, connector, metadata and immutable execution definition Connector owner: connector context create
Saved release directory Frozen author source, assigned candidate ID, machine request, observations and checkpointed operations model release resume, status, review and activation
Analysis directory Reviewed publication/disclosure, frozen submission and transfer identities, acceptance and collected evidence analysis submit, status, wait, logs, cancel and collect; a new execution needs a new directory
Scientific inputs Contract-specific input object; local bindings resolve file/collection references analysis init --inputs, then the editable analysis inputs.json until first submit
Local collection manifest Explicit selected members with relative paths and per-member media types/metadata; the source root supplies their bytes analysis init --collection-manifest SLOT=FILE, or independent collection upload --manifest FILE --root DIR
Wrapper request/result Protocol version and exact run/assignment/attempt/launch identities with inputs or results Compute runner and model wrapper
Connector log policy Versioned diagnostic capture/archive bounds Connector --log-policy-file

The editable publication contains no candidate ID, driver, grant UUID, provider binding key, spec or definition envelope. Required science and fixed entrypoint remain explicit. Scientific contracts documents each field, its need and defaults. Unknown fields, unsupported versions and old split-source formats are rejected. Context manifests retain their existing envelope; do not apply author publication rules to connector configuration.

Terminal window
enumeray model init example --directory example
cd example
python3 -B -m unittest discover -s . -p 'test_*.py'
# Select granted compute and edit execution.context_id/release_path in publication.json.
enumeray model validate --file publication.json
enumeray model create example --file publication.json
enumeray model release init example --file publication.json --directory release-r1
enumeray model release resume release-r1

Scaffolding leaves deployment context/path unset. Local tests and metadata import work with this draft; ordinary validation and release initialization require both fields. Validation runs offline, makes no file changes and allocates no candidate ID. The process and Slurm examples below are complete declarations. A Slurm publication adds execution.slurm_script; the selected context supplies the driver and direct/SSH connection configuration.

A fresh release initialization is explicit new-candidate intent. It saves one generated ID before registration, alongside a frozen source and normalized machine request. Resume that same directory after interruption or an uncertain reply. Editing the author file later changes neither that ID nor the saved candidate. Machine evidence in the release directory is generated state, not another authored file and not accepted by the author parser. If initialization itself failed before writing its initial checkpoint and no resume/registration was attempted, preserve the partial directory and explicitly initialize a new directory from the original source (or its saved release.json value at source.publication). This allocates a fresh unused candidate ID. If registration may have been attempted, recover/inspect the original operation and candidate; missing files alone do not prove it never registered. See release recovery.

Registration resolves the authenticated publisher’s active context grant. It derives installation claims from the scientific identities and allocates or reuses an internal installation key. Identical model/context, physical settings and identities may reuse installed content; permanent installation revocation cannot be bypassed by copying settings. Readiness and trials remain separate from scientific correctness. See publication and updates/rollback.

execution.environment defaults to {} and allows at most 32 keys, 128 bytes per key and 4096 bytes per value. Reserved runtime keys/prefixes include HOME, PATH, PYTHONDONTWRITEBYTECODE, SLURM_, PMI_, PMIX_, LD_ and DYLD_. Configure Slurm routing, resources, modules and containers in its batch file. No execution field carries credentials.

Author JSON is a local authoring format. Machine registration requests still contain id, immutable definition, context_id and physical descriptor; they use the existing management API contract. Do not send an author file directly to that endpoint or treat a saved machine request as a new author source. Worked HTTP workflows shows the boundary and durable request identity. The HTTP reference defines complete request/response schemas.

The complete examples archive includes examples/http-contract/: standalone artifact, collection and lost-reply run recipes, exact digest inputs and an independent lossless implementation. Start with HTTP integrations and collection identity. Inspect the HTTP conformance records, coherent HTTP scenarios, and CLI output schemas with complete automation transcripts.

Download the complete model examples archive and archive SHA-256 together. Follow the fresh-directory extraction and verification commands. Python 3.9+ and tar are the local prerequisites; the included projects and tests run without the CLI, credentials or a source checkout. The CLI is needed to generate new projects and publish a selected model.

The archive’s versioned root contains examples-manifest.json, verify-examples.py, complete guides, examples/ and starter-kit/. The bundle inventory records the package version, exact public source revision and file hashes. Run python3 verify-examples.py --root . from that root to check the acquired files and execute fresh copies of every included project. Keep the manifest with your adapted project to identify the starting example.

The model examples family demonstrates doubling and collection copying. These variants have distinct actual IDs and files; a named example is not a model ID. Paths below are relative to the extracted archive unless labeled as installed paths.

Variant Actual model / named example Files, local input and expected result
Bundled Python scalar starter-python-json / starter-example starter-kit/python-json/: publication.json, wrapper.py, protocol.py, model.py, implementation.py, fixtures/ and tests; value: 2 → doubled: 4
Bundled Python file starter-python-files / starter-example starter-kit/python-files/: same project boundary; fixtures/dataset.csv rows 0,1 and 1,2 → processed.csv rows 0,2 and 1,4, sample_count: 2
Bundled native executable starter-executable-json or starter-executable-files / starter-example Matching starter-kit/executable-json/ or starter-kit/executable-files/; adds demo_solver.py, with the same scalar or CSV assertions
Tutorial-generated project example or csv-example / starter-example model init creates the scalar or file project above using the ID you choose; tutorial installation root /opt/enumeray/models/example/r1 belongs to example
Standalone scalar scalar-double / local request.json examples/scalar_model/: wrapper.py, protocol.py, model.py, request and tests; local value: 2 → doubled: 4
Installed scalar declaration scalar-double / double-two examples/scalar-publication.json or examples/slurm-scalar-publication.json, installed root /opt/enumeray/models/scalar-double/r1; examples/scalar-inputs.json uses 21 → 42; the declaration’s run-model entrypoint must exist in that installed offering
Collection copy collection-example / complete local request fixture examples/collections/: wrapper, protocol, publication, fixtures and tests; copies inputs/mesh/a.bin and inputs/series/snapshot-002.bin byte-for-byte into snapshots/, reports member_count: 2; an empty set reports 0
Single-user connector journey development-double / chosen local inputs Generated project models/development-double-r1/ and context development-process; value: 21 → doubled: 42; use this model ID only for that journey

Bundled starter declarations leave their site context and installed root unset. The collection declaration’s installed path is /opt/models/collection-example; it is unrelated to the archive directory or the per-run workspace. Choose an approved immutable path before publication. Full request fixtures use local test identities; live candidate IDs come from release status, and live run/artifact/collection UUIDs come from service responses. The publication workflow explains that handoff. EUHFORIA downloads are illustrative scientific integration layouts requiring a real implementation and site configuration.

Complete example Use
Author process publication Scalar starter with catalogue metadata and installed process execution
Author Slurm publication Same author format with a model-owned batch script
Author file publication CSV file input/output and ordinary numeric metadata
Author collection publication Variable membership input/output; wrapper
Collection protocol helper Required beside the individual collection wrapper; save it as protocol.py
Collection local request / expected result Protocol-1 fixtures for collection-example; the complete project instructions identify the required staged files and tests
Illustrative EUHFORIA publication Heliosphere-only three-file integration layout; requires real scientific mapping
Scalar publication / Slurm scalar publication Independent CLI package examples in the same editable format
Scalar inputs Scientific inputs for those scalar package examples
Model batch script Foreground worker and author-owned scheduler/runtime setup
Local context Separate local execution account and restricted launcher
Process/direct / process/SSH Connector context templates
Slurm/direct / Slurm/SSH Connector scheduler/access templates
Connector log policy Diagnostic rotation and optional raw archives
Scalar wrapper request / result Full protocol-1 local test envelopes
File wrapper request / result Staged local paths and reported output paths

Examples demonstrate contracts. They do not install models, grant compute, create API accounts or qualify a scientific implementation. The complete author guide follows the supported journey from local tests through deliberate sharing.

Documentation 205dcb3116ea · public sources 8c70356d340f · built .Download documentation identity.