Import D&D storage and publishing
This commit is contained in:
@@ -61,7 +61,7 @@ The compatible application versions are selected through these variables:
|
||||
| Variable | Default |
|
||||
| --- | --- |
|
||||
| `dnd_pipeline_audita_version` | `v0.9.1` |
|
||||
| `dnd_pipeline_narratio_version` | `v2.1.0` |
|
||||
| `dnd_pipeline_narratio_version` | `v2.1.1` |
|
||||
| `dnd_pipeline_notarius_version` | `v0.7.0` |
|
||||
| `dnd_pipeline_seriatim_version` | `v1.5.0` |
|
||||
| `dnd_pipeline_scriptorium_version` | `v0.13.0` |
|
||||
@@ -152,6 +152,40 @@ it is the shared cross-application boundary. Other Narratio-local controls,
|
||||
including reports, timeouts, debug rendering, presentation, and bounds prompt
|
||||
profile selection, remain Narratio defaults.
|
||||
|
||||
### Storage and publication policy
|
||||
|
||||
The suite selects Narratio's S3 backend and the established Backblaze-compatible
|
||||
archive. These are ordinary inventory variables, so deployments may replace
|
||||
the selected policy through the role's public interface.
|
||||
|
||||
| Variable | Default policy |
|
||||
| --- | --- |
|
||||
| `dnd_pipeline_narratio_workspace_cleanup_after_publish` | `true` |
|
||||
| `dnd_pipeline_narratio_storage_backend` | `s3` |
|
||||
| `dnd_pipeline_narratio_storage_s3_bucket` | `rakestraw-assets` |
|
||||
| `dnd_pipeline_narratio_storage_s3_root_prefix` | `dnd` |
|
||||
| `dnd_pipeline_narratio_storage_s3_region` | `us-east-1` |
|
||||
| `dnd_pipeline_narratio_storage_s3_endpoint` | `https://s3.us-east-005.backblazeb2.com` |
|
||||
| `dnd_pipeline_narratio_storage_s3_force_path_style` | `true` |
|
||||
| `dnd_pipeline_narratio_storage_s3_access_key_id` | `OBJECT_STORAGE_KEY_ID` |
|
||||
| `dnd_pipeline_narratio_storage_s3_secret_access_key` | `OBJECT_STORAGE_KEY` |
|
||||
| `dnd_pipeline_narratio_cache_s3_audio` | `true` |
|
||||
| `dnd_pipeline_narratio_publish_enabled` | `true` |
|
||||
| `dnd_pipeline_narratio_publish_upload_run` | `true` |
|
||||
|
||||
`dnd_pipeline_narratio_publish_outputs` is a complete native list, not a list
|
||||
merged with the suite default. It publishes final and trimmed JSON, final and
|
||||
trimmed Markdown, session recap, hostile rumors, and optional deranged rumors.
|
||||
Every rule omits `dest`: Narratio derives transcript destinations from its
|
||||
built-in sources and artifact destinations from the configured artifact output
|
||||
paths.
|
||||
|
||||
S3 session audio uses the maximum available native cache beneath
|
||||
`/var/cache/narratio`. After successful run publication, Narratio cleans the
|
||||
published workspace target while preserving that cache. The suite deliberately
|
||||
does not set `narratio_spool_delete_audio_after_publish`; spool-audio retention
|
||||
continues to use Narratio's application default.
|
||||
|
||||
### Artifacts and profiles
|
||||
|
||||
The role owns these complete native mapping variables. Replacing one mapping
|
||||
@@ -227,6 +261,9 @@ that input. The accepted sources are
|
||||
`narratio.extraction.item_registry`, `npc_registry`, `location_registry`,
|
||||
`scene_descriptions`, `item_occurrences`, `spells`, `combat_turns`,
|
||||
`npc_occurrences`, `location_occurrences`, and `enemy_events`.
|
||||
They remain available as `narratio.extraction.<output_key>` inputs for future
|
||||
analyze artifacts whether or not a source has a stable publication rule;
|
||||
accepted extraction and published output selection are independent interfaces.
|
||||
|
||||
Narratio forwards the typed `OPENROUTER_API_KEY` reference to the selected
|
||||
Notarius profile and ordinary extraction requests checkpoint reuse with
|
||||
@@ -260,8 +297,15 @@ inspection shows enabled sources, inferred dependencies, and generated family
|
||||
members; the diff shows the overlay's profile selections without modifying
|
||||
managed files.
|
||||
|
||||
Storage and publishing, scheduling, and end-to-end external execution remain
|
||||
deferred.
|
||||
With valid object-storage credentials, the selected policy enables Narratio's
|
||||
native [S3 session-audio](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/config.md#session),
|
||||
[publication](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/operations.md#publish-workflow),
|
||||
[restore](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/operations.md#restore-workflow),
|
||||
[publication locks](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/operations.md#publish-locks),
|
||||
[session status](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/operations.md#standard-session-workflow),
|
||||
and [cleanup](https://gitea.maximumdirect.net/eric/narratio/src/tag/v2.1.1/docs/operations.md#cleanup)
|
||||
workflows. These remain application commands and lifecycle rules; scheduling
|
||||
and real end-to-end execution remain deployment concerns.
|
||||
|
||||
### Shared execution filesystem
|
||||
|
||||
@@ -311,8 +355,17 @@ consumer workflow, not role functionality:
|
||||
dnd_pipeline_secrets:
|
||||
AUDITA_LLM_API_KEY: "{{ vault_dnd_audita_llm_api_key }}"
|
||||
OPENROUTER_API_KEY: "{{ vault_dnd_openrouter_api_key }}"
|
||||
OBJECT_STORAGE_KEY_ID: "{{ vault_dnd_object_storage_key_id }}"
|
||||
OBJECT_STORAGE_KEY: "{{ vault_dnd_object_storage_key }}"
|
||||
```
|
||||
|
||||
Only the reference names enter ordinary Narratio configuration; credential
|
||||
values remain in encrypted inventory and the restricted managed secrets
|
||||
directory. A deployment using Narratio's ambient AWS SDK provider chain can
|
||||
set both `dnd_pipeline_narratio_storage_s3_access_key_id` and
|
||||
`dnd_pipeline_narratio_storage_s3_secret_access_key` to `null`. The pair must
|
||||
be omitted together.
|
||||
|
||||
Scriptorium profiles continue to own their `api_key_env` selection. To supply
|
||||
that credential through the suite, add a `dnd_pipeline_secrets` entry whose
|
||||
name matches the selected profile's `api_key_env`. Narratio's secrets bootstrap
|
||||
|
||||
Reference in New Issue
Block a user