mattrguerra/meridian-ops-boardmainPrivate on GitHub, published here in full

credentials.example.sh

Language Shell4.9 KB98 lines

credentials.example.sh

  1. # Meridian dashboard credentials. Copy these exports into your shell profile.
  2. #
  3. # Not a .env file. This repo has no .env reader, deliberately: a credentials
  4. # file in the working tree is readable by every tool and agent that touches the
  5. # repo, and a secret that has been read is a secret that has to be rotated.
  6. # Keeping them in the shell profile keeps them out of the tree entirely.
  7. #
  8. # Which file:
  9. #
  10. # zsh (macOS default since Catalina) ~/.zshrc interactive shells
  11. # ~/.zshenv every shell, incl. cron
  12. # bash ~/.bash_profile or ~/.bashrc
  13. # tcsh / csh ~/.cshrc uses `setenv NAME value`,
  14. # not the `export` syntax below
  15. #
  16. # Check which shell you are actually in: echo $SHELL
  17. #
  18. # If you ever run this from cron or a launchd job, use ~/.zshenv: ~/.zshrc is
  19. # only sourced for interactive shells, and a scheduled run would find nothing.
  20. #
  21. # After editing, open a new terminal or `source` the file. Existing terminals
  22. # keep the old values, and nothing in the repo can detect that.
  23. # --- Ninety (90) -------------------------------------------------------------
  24. # Personal Access Token: Ninety > User Settings > Developer Settings.
  25. # Must belong to a company Owner or Admin. GET /todos/company returns 403 for
  26. # every other role, and that endpoint is the entire company view.
  27. # Shown once at generation. Record the expiry date in a calendar.
  28. # Generating a new token invalidates the previous one.
  29. export NINETY_TOKEN=""
  30. # Optional. Only if Ninety changes the base URL.
  31. # export NINETY_BASE_URL="https://api.public.ninety.io/v1"
  32. # export NINETY_RPS=20
  33. # --- Bitrix24 ----------------------------------------------------------------
  34. # Inbound webhook URL including the token path segment. Read scopes: crm, task.
  35. # https://yourcompany.bitrix24.com/rest/<user-id>/<token>/
  36. export BITRIX_WEBHOOK_URL=""
  37. # --- Plinth ------------------------------------------------------------------
  38. # Read-only Plinth API key. Plinth caps at 10 requests / 10 seconds; the client
  39. # throttles rather than failing, so a wide window just runs slower.
  40. export PLINTH_API_KEY=""
  41. # --- Anthropic (the briefing model) ------------------------------------------
  42. # Create in a dedicated Console workspace with its own monthly spend limit.
  43. # Workspace-owned keys survive the creator being removed; personal keys do not.
  44. # One run a day costs little; set a limit a few times the expected monthly
  45. # spend so a runaway loop stops long before it becomes a bill.
  46. export ANTHROPIC_API_KEY=""
  47. export ANTHROPIC_MODEL="claude-opus-5"
  48. export ANTHROPIC_BASE_URL="https://api.anthropic.com/v1"
  49. # Point ANTHROPIC_BASE_URL at a local OpenAI-compatible server instead
  50. # (LM Studio, mlx_lm.server, Ollama, vLLM) and the transport switches itself:
  51. # export ANTHROPIC_BASE_URL="http://127.0.0.1:1234/v1"
  52. # export ANTHROPIC_MODEL="qwen3-30b-a3b-instruct"
  53. # --- Fathom (meeting commitments) --------------------------------------------
  54. # One key per person; Fathom has no org-level key. A key returns its owner's
  55. # recordings plus meetings Fathom shares with that user by a mechanism the API
  56. # does not describe (`shared_with` reads `no_teams` on all of them), so every
  57. # key comes back with more meetings than its owner recorded.
  58. #
  59. # Two consequences, and they pull in opposite directions:
  60. #
  61. # Coverage. The board sees the union of what its keys return, so people who
  62. # hold no key still have meetings on the board. Whether all of their
  63. # recordings arrive cannot be known from here.
  64. #
  65. # Access. Fathom's own permissions do not gate this board. Everything a key
  66. # can see lands in the snapshot, and the board's own participant filter is the
  67. # only thing keeping a meeting off a non-attendee's page. Do not add a key
  68. # that was not deliberately handed over for this purpose.
  69. #
  70. # Create at Fathom > Settings > API. Which names are read is decided by
  71. # config/fathom-keys.ts, not by this file: exporting FATHOM_KEY_ROSA with no
  72. # line in that config does nothing.
  73. #
  74. # Also needed in the Worker. The 6:00 AM CT cron runs in Cloudflare, which
  75. # cannot see your shell. Each key goes in twice:
  76. # cd apps/worker && npx wrangler secret put FATHOM_KEY_INES
  77. export FATHOM_KEY_SAM=""
  78. export FATHOM_KEY_INES=""
  79. export FATHOM_KEY_THEO=""
  80. # --- Gmail, for the consolidated inbox tab -----------------------------------
  81. # Nothing goes here. The inbox's Gmail credentials live only in Worker
  82. # secrets: per-mailbox refresh tokens (GMAIL_REFRESH_*, minted by
  83. # `pnpm inbox:auth`, which pipes them straight into `wrangler secret put`) or a
  84. # service-account key (GMAIL_SA_EMAIL and GMAIL_SA_KEY).
  85. #
  86. # Those open other people's mailboxes, so they are deliberately not something
  87. # the repo, this file, or your shell profile ever holds.
  88. # --- misc --------------------------------------------------------------------
  89. # export DEBUG=true # logs every request path to stderr. Noisy.