You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Authors can assemble realistic emulated environments from reusable, proven infrastructure building blocks instead of repeatedly recreating identity, endpoint, network, application, data, AI, and operational foundations by hand.
A kit is an ordinary, inspectable authoring unit: a RAES SDL module plus the pack-owned assets, documentation, tests, provenance, parameters, and composition metadata needed to add that infrastructure component to an environment pack. Authors can discover a kit, inspect what it adds, select its parameters and namespace, preview the ordinary file changes, add it to a pack, validate the result, update or replace it, and remove it safely.
This issue is complete when the concrete initial kit collection below and the shared authoring workflow both ship. A one-kit pilot, taxonomy alone, or tooling without useful content is not completion.
Author value
Without kits, an author must repeatedly define common infrastructure, copy or recreate supporting assets, choose identifiers and parameters, wire relationships, add validation, and reconstruct documentation.
With kits, an author starts from working, tested environment components and spends time on the purpose of the environment rather than rebuilding its foundations.
Scope boundary
Issue 190 covers static environment composition and authoring.
It does not own backend realization, host readiness, launch, rollback, teardown, runtime evidence generation, or capability negotiation. It does not modify or extend a backend or adapter. Those responsibilities stay with the backend repositories that implement them. Hub issue #3 is a navigation summary whose false APTL/LilRAE split is being corrected by OpenRAE/hub#39; it is not the authority for repository responsibilities.
It also does not package scenario purpose or participant behavior. Initial kits must not introduce:
agents or behavior specifications;
action contracts;
injects, events, stories, or workflows;
participant objectives or scenario-specific success conditions;
offensive, defensive, resilience, research, or product-testing narratives; or
The initial collection is limited to infrastructure components with demonstrated working implementations and tests. Missing or speculative primitives belong in follow-up issues, not in this delivery.
env-packs owns kit packaging, pack-local assets and metadata, safe authoring operations, deterministic materialization, diagnostics, removal ownership, and projection of ordinary pack files into the existing RAES contracts.
Catalog repositories own released kit content, admission, versioning, support, archival, and the release inputs consumed by distribution tooling.
Backends own realization of the resulting ordinary RAES scenario and all runtime evidence.
A kit is not a second SDL, backend profile, runtime plugin, opaque generator, or env-packs-owned dependency lock.
Initial infrastructure kit collection
The following are required deliverables. Implementations may share lower-level assets, but each named kit must remain independently discoverable, inspectable, composable, and removable.
Identity and domain infrastructure
Windows Active Directory domain controller — configurable forest/domain identity, directory authority, DNS identity, administrator identity, and exported domain-controller node.
Samba Active Directory-compatible domain controller — configurable AD-compatible domain and directory authority on a Linux/Samba implementation.
Windows domain member — configurable Windows workstation/server joined to an imported domain authority.
Linux domain member — configurable Linux host joined to an imported directory/domain authority.
OIDC identity provider — configurable realm/tenant, users, clients, and exported identity facade suitable for application federation.
Access and workstation infrastructure
SSH-accessible Linux host — Linux endpoint with declared account and SSH access surface.
RDP-accessible Windows host — Windows endpoint with declared account and RDP access surface.
Browser workstation — browser-accessible desktop or terminal workstation for environments needing an inspectable interactive endpoint.
These kits declare environment structure and access endpoints only. Credential brokering and participant-session delivery remain backend responsibilities.
Network and shared services
Authoritative DNS service — configurable zone, records, and exported DNS service relationships.
SMB file service — configurable shares, directory-backed or local identities, seeded content, and access relationships.
SMTP/IMAP mail service — configurable domains, accounts, mailboxes, and seeded messages.
Webmail service — browser mail client joined to an imported mail service and optional identity provider.
Static web service — configurable HTTP content service with seeded files and optional TLS identity.
Application/API service — configurable application endpoint with data/content dependencies and health surface.
Reverse proxy/API gateway — configurable routed front door for one or more imported application services.
Suricata network intrusion-detection sensor — configurable capture and rule inputs plus declared event-output relationships.
TheHive case-management service — configurable organizations, users, case types, storage, and imported observability relationships.
Shuffle automation service — configurable platform services, application-integration endpoints, and storage dependencies without scenario-specific response playbooks.
These kits provide the reusable platforms and their static configuration surfaces. They do not include scenario incidents, detections tied to a narrative, response injects, participant behavior, or claims that a backend attached a sensor to live traffic.
Policy and operational services
Policy engine — configurable policy bundles, decision endpoint, and relationships to imported services.
Telemetry collector — configurable collection endpoints, routes, and storage/export relationships.
Observability/evidence store — configurable storage surface for logs, traces, metrics, and other declared artifacts without assigning scenario meaning to them.
Load/rehearsal runner — configurable workload runner and target relationships; the kit provides infrastructure and invocation assets, not proof that a backend executed a rehearsal.
Kit contract
Define a closed, versioned, pack-owned kit manifest or projection that references rather than restates RAES-owned module facts.
For every kit, inspection must expose:
kit identity and version;
author value and intended infrastructure concern;
RAES module identity;
parameters and defaults obtained from RAES;
exported nodes, services, identities, content, and relationships obtained from RAES;
topology additions and required imports;
pack-local assets and their visibility;
resource/cost expectations as pack-domain estimates;
prerequisites and kit-to-kit dependencies;
limitations;
provenance and redistribution terms;
validation and composition tests; and
files owned by the materialized kit for conflict-aware update and removal.
raes.lock.json remains the module dependency lock. Do not introduce a competing kit dependency lock or duplicate RAES module descriptors in the kit schema.
Versioning, identity, and supply-chain inputs
Kits and completed packs must consume the existing RAES trust and integrity mechanisms instead of defining parallel pack semantics:
each kit has a stable identity and release version, and materialization records that exact kit version as inert authoring provenance for inspection, update, replacement, and removal;
every RAES module selected through a kit is resolved and digest-pinned through raes.lock.json, including the incumbent signature and drift checks;
every completed pack retains a valid associated-artifact-manifest/v1 whose validator-derived set digest binds the exact pack inventory to its semantic scenario parent;
shipped or content-addressably pinned components use existing RAES source/artifact identity, version, digest, provenance, and image-attestation fields where those facts belong; the kit manifest must not duplicate them;
pack-owned provenance continues to record origin, licensing, redistribution, and publication facts for non-RAES material; and
kit metadata provides deterministic, machine-readable component and artifact inputs sufficient for the distribution workflow to produce a release SBOM without rescanning opaque author intent.
The component-inventory boundary is author-declared but not arbitrary: it must include every executable, container image, package, model, and other software artifact that the kit ships or immutably pins, at the finest authoritative granularity available. External or runtime-selected dependencies must be marked as outside the pack boundary or unresolved rather than guessed. Valid upstream CycloneDX/SPDX documents may be preserved and referenced; they must not be flattened into a falsely complete dependency closure.
Issue #191 owns per-pack SBOM generation, release signatures/attestations, publication, and consumer verification. Issue 190 does not create an SBOM schema, cryptographic format, trust evidence class, pack digest, or signing service. An SBOM is component inventory, not proof of safety, authenticity, or backend realization.
Authoring workflow
Provide one shared library contract and CLI surface that can:
list and search the kit collection;
inspect a kit in human-readable and stable machine-readable form;
select a namespace and bounded parameter values;
preview topology additions, dependencies, assumptions, files, and lock changes without writing;
detect namespace, exported-symbol, version, dependency, path, and visibility conflicts;
atomically add a kit to an existing valid pack;
immediately validate the completed pack through env-packs and RAES;
update or replace a kit while preserving and reporting author-modified files; and
remove a kit using explicit ownership metadata rather than filename or byte guesses.
Interactive, machine-readable, Hub, and future MCP routes must consume these same proposal, composition, diagnostic, and mutation contracts.
Content quality requirements
Every initial kit must:
provide a coherent author-visible infrastructure capability rather than a thin wrapper around one import;
contain no scenario narrative or dynamic participant behavior;
expose bounded, useful parameters and documented exports;
include required distributable assets and pack-local integration material;
include documentation, provenance, limitations, resource expectations, and tests;
validate independently as a module/kit and when composed into a minimal pack;
compose deterministically under at least two materially different parameter sets where the component supports variation;
participate in at least one multi-kit composition test;
support preview, add, validation, update or replacement, and removal; and
make no backend realization or runtime-evidence claim.
Demonstration
Publish an author walkthrough that:
starts with a minimal valid pack;
discovers and inspects infrastructure kits;
composes a realistic environment from multiple identity, endpoint, network, application, and data kits;
previews and reviews the ordinary file, raes.lock.json, associated-artifact, and component-inventory changes;
validates the result;
changes one kit parameter;
replaces one implementation choice where the kit interfaces permit it; and
removes one kit cleanly.
The finished pack must remain normal editable source and must validate without the original interactive interface.
Downstream handoff
After the initial kit contracts and stable kit identifiers ship:
create an issue in Brad-Edwards/shifter to qualify and implement honest BigRAE realization for each published kit, recording concrete gaps per kit; and
create an issue in Brad-Edwards/aptl—the repository being renamed to LilRAE—to consume and qualify the published kits, recording concrete gaps per kit.
Those issues must enumerate the released kit identifiers. They must not be opened with speculative schemas, and their implementation is not part of issue 190.
Acceptance criteria
Every kit named in the initial collection is published through the catalog authority.
Every kit has a stable release identity/version and records exact materialization provenance without creating runtime kit semantics.
The kit contract references RAES module, source-provenance, trust, and artifact-identity facts without redefining them.
The initial kits contain environment infrastructure only and no scenario behavior, injects, objectives, or domain-specific narrative.
Authors can list, search, inspect, preview, add, validate, update or replace, and remove kits through shared library and CLI contracts.
Preview is side-effect free and shows topology, dependencies, files, assumptions, and RAES lock changes.
Composition is deterministic, atomic, conflict-aware, and produces ordinary inspectable pack files plus raes.lock.json.
Every completed pack has a RAES-validated associated-artifact set covering its exact inventory and semantic parent.
Every kit supplies complete, deterministic inventory inputs for all software artifacts it ships or immutably pins, while explicitly identifying external or unresolved scope.
Every kit has independent validation plus parameter-variation and multi-kit composition coverage where applicable.
The end-to-end walkthrough composes a realistic multi-service environment and demonstrates modification, replacement, and removal.
No backend or adapter is modified, launched, probed, or assigned a compatibility verdict by this work.
Concrete post-release realization issues are created in the two named downstream repositories with the stable kit inventory.
Separate env-packs backlog issues exist for advanced kits and for high-value infrastructure primitives without demonstrated working implementations.
Non-goals
Backend implementation, realization envelopes, launch, readiness, teardown, or runtime evidence.
Dynamic participant behavior, injects, events, objectives, or scenario-specific content.
Domain-specific security, resilience, research, or product-testing scenarios.
Speculative infrastructure primitives without a demonstrated working implementation.
Deep or unbounded module trees.
A GUI-only authority, hosted runtime, marketplace, or automatic conversion of arbitrary content into kits.
Coordination
Supports OpenRAE/hub#5. The environment kits remain ordinary catalog content; Hub may present the workflow, but files and owning contracts remain authoritative.
Outcome
Authors can assemble realistic emulated environments from reusable, proven infrastructure building blocks instead of repeatedly recreating identity, endpoint, network, application, data, AI, and operational foundations by hand.
A kit is an ordinary, inspectable authoring unit: a RAES SDL module plus the pack-owned assets, documentation, tests, provenance, parameters, and composition metadata needed to add that infrastructure component to an environment pack. Authors can discover a kit, inspect what it adds, select its parameters and namespace, preview the ordinary file changes, add it to a pack, validate the result, update or replace it, and remove it safely.
This issue is complete when the concrete initial kit collection below and the shared authoring workflow both ship. A one-kit pilot, taxonomy alone, or tooling without useful content is not completion.
Author value
Without kits, an author must repeatedly define common infrastructure, copy or recreate supporting assets, choose identifiers and parameters, wire relationships, add validation, and reconstruct documentation.
With kits, an author starts from working, tested environment components and spends time on the purpose of the environment rather than rebuilding its foundations.
Scope boundary
Issue 190 covers static environment composition and authoring.
It does not own backend realization, host readiness, launch, rollback, teardown, runtime evidence generation, or capability negotiation. It does not modify or extend a backend or adapter. Those responsibilities stay with the backend repositories that implement them. Hub issue #3 is a navigation summary whose false APTL/LilRAE split is being corrected by OpenRAE/hub#39; it is not the authority for repository responsibilities.
It also does not package scenario purpose or participant behavior. Initial kits must not introduce:
supported/constrained/unsupported/unknownbackend verdict taxonomy.The initial collection is limited to infrastructure components with demonstrated working implementations and tests. Missing or speculative primitives belong in follow-up issues, not in this delivery.
Authority
raes.lock.json, reusable-asset trust policy, and associated-artifact identity and byte binding.A kit is not a second SDL, backend profile, runtime plugin, opaque generator, or env-packs-owned dependency lock.
Initial infrastructure kit collection
The following are required deliverables. Implementations may share lower-level assets, but each named kit must remain independently discoverable, inspectable, composable, and removable.
Identity and domain infrastructure
Access and workstation infrastructure
These kits declare environment structure and access endpoints only. Credential brokering and participant-session delivery remain backend responsibilities.
Network and shared services
Collaboration and developer services
Data and workflow services
AI and model-development services
These are environment services only; no adversarial tasks, agent behavior, evaluation objectives, or experiment claims are included.
Security operations infrastructure
These kits provide the reusable platforms and their static configuration surfaces. They do not include scenario incidents, detections tied to a narrative, response injects, participant behavior, or claims that a backend attached a sensor to live traffic.
Policy and operational services
Kit contract
Define a closed, versioned, pack-owned kit manifest or projection that references rather than restates RAES-owned module facts.
For every kit, inspection must expose:
raes.lock.jsonremains the module dependency lock. Do not introduce a competing kit dependency lock or duplicate RAES module descriptors in the kit schema.Versioning, identity, and supply-chain inputs
Kits and completed packs must consume the existing RAES trust and integrity mechanisms instead of defining parallel pack semantics:
raes.lock.json, including the incumbent signature and drift checks;associated-artifact-manifest/v1whose validator-derived set digest binds the exact pack inventory to its semantic scenario parent;The component-inventory boundary is author-declared but not arbitrary: it must include every executable, container image, package, model, and other software artifact that the kit ships or immutably pins, at the finest authoritative granularity available. External or runtime-selected dependencies must be marked as outside the pack boundary or unresolved rather than guessed. Valid upstream CycloneDX/SPDX documents may be preserved and referenced; they must not be flattened into a falsely complete dependency closure.
Issue #191 owns per-pack SBOM generation, release signatures/attestations, publication, and consumer verification. Issue 190 does not create an SBOM schema, cryptographic format, trust evidence class, pack digest, or signing service. An SBOM is component inventory, not proof of safety, authenticity, or backend realization.
Authoring workflow
Provide one shared library contract and CLI surface that can:
Interactive, machine-readable, Hub, and future MCP routes must consume these same proposal, composition, diagnostic, and mutation contracts.
Content quality requirements
Every initial kit must:
Demonstration
Publish an author walkthrough that:
raes.lock.json, associated-artifact, and component-inventory changes;The finished pack must remain normal editable source and must validate without the original interactive interface.
Downstream handoff
After the initial kit contracts and stable kit identifiers ship:
Brad-Edwards/shifterto qualify and implement honest BigRAE realization for each published kit, recording concrete gaps per kit; andBrad-Edwards/aptl—the repository being renamed to LilRAE—to consume and qualify the published kits, recording concrete gaps per kit.Those issues must enumerate the released kit identifiers. They must not be opened with speculative schemas, and their implementation is not part of issue 190.
Acceptance criteria
raes.lock.json.Non-goals
Coordination
Supports OpenRAE/hub#5. The environment kits remain ordinary catalog content; Hub may present the workflow, but files and owning contracts remain authoritative.