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.
Choose the file for your command
Section titled “Choose the file for your command”| 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.
Author directly, freeze once
Section titled “Author directly, freeze once”enumeray model init example --directory examplecd examplepython3 -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.jsonenumeray model create example --file publication.jsonenumeray model release init example --file publication.json --directory release-r1enumeray model release resume release-r1Scaffolding 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.
HTTP and retained machine evidence
Section titled “HTTP and retained machine evidence”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.
Downloads
Section titled “Downloads”Independent HTTP and CLI automation
Section titled “Independent HTTP and CLI automation”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.
Run the model examples offline
Section titled “Run the model examples offline”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.
Model example family
Section titled “Model example family”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.
Individual declarations and envelopes
Section titled “Individual declarations and envelopes”| 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.