Skip to content

integration: move local dashboard secrets out of plaintext inventory JSON #153

@ethayu

Description

@ethayu

Problem

The integration dashboard currently stores GitHub tokens and Pi SSH passwords in the local inventory file (src/integration/.integration_inventory.json by default). This was accepted for v1 competition ops, but it is not a good long-term security posture.

Current behavior

  • OperatorConfig persists github_token in the local inventory JSON
  • TargetRecord persists ssh_pass in the same local inventory JSON
  • The new hardware deploy flow depends on that inventory for dashboard target management

Follow-up work

  • Move secret storage to the desktop OS keychain / secret store
  • Keep non-secret target metadata in the inventory JSON
  • Preserve export/import for non-secret fields while handling secrets separately
  • Define migration behavior from plaintext inventory files

Notes

  • For the current production slice, plaintext local storage remains allowed for competition ops
  • The code now includes an explicit comment marking this as a temporary v1 choice

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions