Document the shared pipeline execution model
This commit is contained in:
48
README.md
48
README.md
@@ -60,6 +60,22 @@ The Go channel and executable are likewise passed to all five roles. Advanced
|
|||||||
callers may supply unmapped standalone-role variables directly through normal
|
callers may supply unmapped standalone-role variables directly through normal
|
||||||
Ansible variable precedence.
|
Ansible variable precedence.
|
||||||
|
|
||||||
|
The following values are deliberate D&D suite policy passed through the
|
||||||
|
standalone roles' generic configuration interfaces; they are not standalone
|
||||||
|
defaults. Narratio runs first and establishes the selected runtime user and
|
||||||
|
group before the remaining configuration-bearing dependencies run.
|
||||||
|
|
||||||
|
| Variable | Default policy |
|
||||||
|
| --- | --- |
|
||||||
|
| `dnd_pipeline_runtime_user` | `narratio` |
|
||||||
|
| `dnd_pipeline_runtime_group` | `narratio` |
|
||||||
|
| `dnd_pipeline_config_directory_mode` | `0755` |
|
||||||
|
| `dnd_pipeline_config_file_mode` | `0644` |
|
||||||
|
|
||||||
|
All application configuration, including pipeline-owned Narratio fragments,
|
||||||
|
is therefore `narratio:narratio`, world-readable, and Ansible-managed. It is
|
||||||
|
not an operator-editable configuration surface.
|
||||||
|
|
||||||
Narratio receives the standard Seriatim, Audita, Notarius, and Scriptorium
|
Narratio receives the standard Seriatim, Audita, Notarius, and Scriptorium
|
||||||
binary and configuration paths managed by the composed roles. Notarius is
|
binary and configuration paths managed by the composed roles. Notarius is
|
||||||
installed but remains disabled in Narratio until a later feature supplies a
|
installed but remains disabled in Narratio until a later feature supplies a
|
||||||
@@ -185,6 +201,26 @@ managed files.
|
|||||||
API keys, Notarius enablement, storage and publishing, operator access,
|
API keys, Notarius enablement, storage and publishing, operator access,
|
||||||
scheduling, and end-to-end external execution remain deferred.
|
scheduling, and end-to-end external execution remain deferred.
|
||||||
|
|
||||||
|
### Shared execution filesystem
|
||||||
|
|
||||||
|
`/var/lib/narratio`, `/var/spool/narratio`, and `/var/cache/narratio` are
|
||||||
|
`narratio:narratio` mode `2775` **setgid** directories. Their access and
|
||||||
|
default ACLs retain owner and group write access plus world read/traverse access
|
||||||
|
for newly created content. The pipeline may run as `narratio` or as a human
|
||||||
|
account already in the selected runtime group; the production role neither
|
||||||
|
selects people nor manages their group membership. For example, a consumer can
|
||||||
|
manage its own operator membership separately:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
operator_group_members:
|
||||||
|
- "{{ pipeline_operator }}"
|
||||||
|
```
|
||||||
|
|
||||||
|
Configuration, transcripts, caches, generated artifacts, campaign data,
|
||||||
|
prompts, and logs are non-secret D&D content. API keys and other credentials
|
||||||
|
remain deferred to a future restricted `secrets/` subtree; this role does not
|
||||||
|
create or populate that subtree.
|
||||||
|
|
||||||
## Validation
|
## Validation
|
||||||
|
|
||||||
`tests/integration` installs the pinned Git dependencies and collection into
|
`tests/integration` installs the pinned Git dependencies and collection into
|
||||||
@@ -193,7 +229,11 @@ applies the suite with a local syntactically valid WhisperX URL and explicit
|
|||||||
immutable `file://` asset inputs. It uses native application
|
immutable `file://` asset inputs. It uses native application
|
||||||
smoke/configuration commands, validates Narratio's assembled configuration and
|
smoke/configuration commands, validates Narratio's assembled configuration and
|
||||||
campaign discovery as the Narratio account, and inspects deployed Scriptorium
|
campaign discovery as the Narratio account, and inspects deployed Scriptorium
|
||||||
prompts and a schema path. It requires a clean repeat, then selects Seriatim
|
prompts and a schema path. It also validates the same Narratio configuration as
|
||||||
`v1.4.0` through the suite interface and requires a clean repeat of that
|
a temporary existing-group-member fixture, exercises representative shared-root
|
||||||
selection. Cleanup reapplies the asset-enabled baseline suite and removes only
|
access across the service and fixture identities, and confirms that `nobody`
|
||||||
the driver's private temporary directory.
|
can read ordinary configuration. It requires immediate clean repeats, then
|
||||||
|
selects Seriatim `v1.4.0` through the suite interface and requires a clean
|
||||||
|
repeat of that selection. Cleanup reapplies the asset-enabled baseline suite and
|
||||||
|
removes only the fixture account, its named test content, and the driver's
|
||||||
|
private temporary directory.
|
||||||
|
|||||||
Reference in New Issue
Block a user