Simplify inventory data file paths #2

Open
opened 2026-06-28 18:25:32 +01:00 by vnprc-agent · 0 comments

User story: So that I can consume the public inventory without misleading legacy paths, generated inventory data should live in clearly named data locations that docs and downstream tooling all agree on.

Part of the "sshHosts derivation & inventory naming" arc.


The inventory repo still uses legacy data paths under scripts/:

  • scripts/vm-specs.json
  • scripts/repositories.json

Those files are generated/validated data, not scripts. In the public inventory repo this structure is misleading because the repo is primarily data plus a flake interface.

Proposed Direction

Move the JSON data files to clearer top-level paths, likely:

  • vm-specs.json
  • repositories.json

Alternative: use a data/ directory if we want a namespace, but avoid scripts/ unless actual executable scripts live there.

Migration Scope

Update all consumers and docs that currently hardcode the legacy paths:

  • inventory flake checks and regeneration messages
  • nexus provisioning scripts and docs
  • public inventory dev plan references
  • tools/git-hooks registry lookup and tests
  • Allod workflow memory references

Compatibility Notes

Consider a short compatibility window where scripts can resolve both old and new paths, or make this cleanup as part of the public inventory/export boundary before external users depend on the legacy layout.

Acceptance Criteria

  • Public inventory exposes the same flake API (machines, lib.vmSpecsJson, validation checks).
  • No user-facing docs reference inventory/scripts/*.json.
  • Nexus provisioning works against the new paths.
  • nix flake check passes in inventory and affected consumers.
  • The old scripts/ directory is absent unless it contains real executable scripts.
**User story:** So that I can consume the public inventory without misleading legacy paths, generated inventory data should live in clearly named data locations that docs and downstream tooling all agree on. _Part of the "sshHosts derivation & inventory naming" arc._ --- The inventory repo still uses legacy data paths under `scripts/`: - `scripts/vm-specs.json` - `scripts/repositories.json` Those files are generated/validated data, not scripts. In the public inventory repo this structure is misleading because the repo is primarily data plus a flake interface. ## Proposed Direction Move the JSON data files to clearer top-level paths, likely: - `vm-specs.json` - `repositories.json` Alternative: use a `data/` directory if we want a namespace, but avoid `scripts/` unless actual executable scripts live there. ## Migration Scope Update all consumers and docs that currently hardcode the legacy paths: - inventory flake checks and regeneration messages - nexus provisioning scripts and docs - public inventory dev plan references - tools/git-hooks registry lookup and tests - Allod workflow memory references ## Compatibility Notes Consider a short compatibility window where scripts can resolve both old and new paths, or make this cleanup as part of the public inventory/export boundary before external users depend on the legacy layout. ## Acceptance Criteria - Public inventory exposes the same flake API (`machines`, `lib.vmSpecsJson`, validation checks). - No user-facing docs reference `inventory/scripts/*.json`. - Nexus provisioning works against the new paths. - `nix flake check` passes in inventory and affected consumers. - The old `scripts/` directory is absent unless it contains real executable scripts.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
allod/inventory#2
No description provided.