Skip to content

Declarative config: seed org integrations, projects and roles from server config #274

Description

@0x0f0f0f

Our self-hosted hub gets config almost entirely from env vars (MARIMOHUB_*), which works well with our deployment setup, but three things still require a signed-in super admin clicking the UI (or driving the API with a personal PAT): org integrations, projects + member roles, and initial git-source notebooks.

Current options that need manual interaction break infra-as-code deployments, a fresh marimohub deploy (disaster recovery, new stage, ephemeral envs) cannot converge to a working state without a human in the loop.

(the PAT alternative is not automation-safe, PATs are minted in browser, user-bound and unscoped (same as #184 chat).

Proposal: a seed applied at boot, e.g. env vars for all the values, or a yaml file, or config extensions declaring:

  • org integrations (kind, name, config, secrets by env-var so the file stays committable),
  • projects with member roles (emails, same resolution as MARIMOHUB_SUPER_ADMINS),
  • optionally git-source notebooks (repo/branch/entry/sync_mode).

For our use case we would really want marimohub to scan and pick up all the notebooks in all the (whitelisted/not blacklisted) repos in our github org!

It should probably be an idempotent upsert on each boot

(Claude suggsts: ETag-aware, like the documented If-Match automation flow); seed-owned objects marked as such; UI edits to seed-owned objects either blocked or drift-flagged — maintainer's call. MARIMOHUB_SUPER_ADMINS is already exactly this pattern for one role; this generalizes it.)

Happy to contribute the PR if you agree!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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