docs(v2): add production readiness guide#405
Conversation
Review: Production Readiness GuideOverall this is a well-structured, useful guide. The content is clear, uses second-person voice throughout, and the dual-tab pattern (env var + YAML) is consistent with the rest of the docs. A few things worth addressing before merging: Bug: Navigation placement in
|
Review: Production Readiness GuideGreat addition — a production readiness checklist is genuinely useful and covers the right surface area. A few things to address before merging: Bug / Accuracy issues1. Missing link to Authorization docs (Authentication and Authorization section) The section mentions "configure RBAC policies" but doesn't link to the authorization configuration page. The existing
The "Next Steps" section also omits the Authorization docs. 2. Storage YAML example — unquoted strings The PR uses unquoted YAML strings ( storage:
default:
backend:
type: local
path: "/var/lib/flipt"
remote: "https://github.com/your-org/flags.git"
branch: "main"3. Storage example — no mention of credentials The
Writing / style4. Frontmatter description is awkward "Reviewing" implies the user is reviewing, not the doc. Per Microsoft Writing Style Guide, prefer active, direct phrasing: 5. CORS section — "wildcard The note says "rather than using the wildcard
What looks good
Overall this is solid content. The main asks are: link to authorization docs, add a credentials callout in the storage example, and fix the description frontmatter. |
PR Review: Production Readiness Guide for v2This is a solid, well-structured page that fills an important gap in the v2 docs. The consistent use of Issues1. Missing The storage docs include an explicit storage:
default:
backend:
type: local
path: /var/lib/flipt
remote: "https://github.com/your-org/flags.git"
branch: main
fetch_policy: strict # ← missing from the PRConsider adding a note and including it in the example YAML. 2. No TLS/HTTPS section Enabling TLS on the HTTP/gRPC server is arguably the most fundamental production security step. It's missing from the guide entirely. At minimum, a short section pointing to the relevant configuration (or a note that TLS should be terminated at the ingress/load balancer) would round out the security coverage. 3. Missing analytics docs link in Backup Strategy The Backup Strategy section mentions ClickHouse but doesn't link to the analytics configuration docs. Consider adding a link to
→ something like: "If using ClickHouse for analytics, ensure..." 4. Multi-origin CORS env var The CORS env var example only shows a single origin: FLIPT_CORS_ALLOWED_ORIGINS=https://app.example.comDoes the env var support comma-separated values for multiple origins? If so, this should be documented. If not, readers with multiple subdomains won't know what to do. Minor5. Storage example values aren't quoted The remote URL and branch in the storage YAML aren't quoted, while the storage docs consistently quote strings. Minor inconsistency but worth being consistent: remote: "https://github.com/your-org/flags.git"
branch: "main"6. "Restrict access to internal networks" in Profiling section has no actionable guidance
This is good advice but leaves readers without a hint of how. A brief pointer (e.g., "via your reverse proxy or Kubernetes NetworkPolicy") or a link to the deployment guide would help. 7. Update Checks section — consider noting startup delay in air-gapped envs In air-gapped environments where the update check is left enabled, startup could be delayed by a network timeout. If that's the case for Flipt, it's worth calling out explicitly so operators know to disable it proactively rather than debugging slow starts. Nits
Overall this is a valuable addition. The structure is clean and the coverage of logging, profiling, auth, metrics, and CORS is well done. The main ask before merging is the |
markphelps
left a comment
There was a problem hiding this comment.
one comment for clarity, otherwise lgtm
|
|
||
| ## CORS Configuration | ||
|
|
||
| If you are running Flipt v2 with a browser-based frontend (e.g. a React, Vue, or Angular app), you must enable and configure CORS to match your frontend domain. Restrict `allowed_origins` to your known frontend URLs rather than relying on the wildcard `*`: |
There was a problem hiding this comment.
i feel like this is a bit confusing since the Flipt UI is a react app. Perhaps we should say something like "If you are integrating Flipt v2 with a client side frontend.." or similar?
Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
Signed-off-by: Roman Dmytrenko <rdmytrenko@gmail.com>
0f6c1e9 to
1cae062
Compare
Code Review — Production Readiness GuideOverall this is a valuable addition. The page is well-structured, consistently formatted, and covers the most important operational concerns. A few things worth addressing before merging: Issues1. Storage section — misleading path semantics The example uses: Looking at the existing git-sync guide, 2. CORS — multiple origins via env var is ambiguous The YAML shows 3. Update Checks — "security-sensitive" is imprecise
The actual reason is network restriction (air-gapped) or preventing outbound connections to Flipt's update server. Calling it a "security" concern implies a risk that doesn't really exist for most users. Suggest: "This can be disabled in air-gapped environments or to prevent outbound network traffic on startup." Suggestions4. Backup Strategy — link to Analytics docs The section mentions ClickHouse but doesn't link to 5. Prometheus metrics — missing actionable guidance The section recommends restricting 6. Consider a TLS/HTTPS section Standard production readiness guides cover TLS termination. If Flipt always delegates TLS to a reverse proxy/ingress (which seems to be the intent from the Kubernetes guide), it's worth a one-liner callout explaining that, so users don't wonder why it's absent. Minor
|
No description provided.