feat(ops): answer whether a running deployment can do its work - #79
Merged
Merged
Conversation
preflight.sh proves a configuration is internally consistent before the stack starts. Nothing answered the question afterwards. Whether the database carries its tables, whether documents can be written, whether the configured mail host accepts a session — an operator found each of those out through a failed user action, usually a registration that never arrived. six-community doctor reports one line per answerable question. Two rules shape it. A feature that is switched off is reported as off rather than as broken, because an empty provider key is a deployment decision and not a fault. And no configured secret, key fragment or credential is printed, so the output can be pasted into an issue — a test pins that with canary values for the SMTP credentials and the provider key. quickstart.sh runs it once after the stack starts, so the first thing an operator sees after "ready" is what their deployment can actually do. A failing check does not tear down a running stack; it names what to fix. Signed-off-by: L4XB <L4XB@users.noreply.github.com>
Member
Author
|
I have read and agree to the SixSentences CLA v1.0. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #45.
The gap
preflight.shproves a configuration is internally consistent before thestack starts. Nothing answered the question afterwards: whether the database is
there and carries its tables, whether documents can be written, whether the
configured mail host accepts a session, and which optional features are off and
why. An operator learned each of those from a failed user action — most often a
verification mail that never arrived.
What it looks like
Two rules it follows
Off is a decision, not a fault. An empty provider key means the operator did
not enable that feature; reporting it as a failure would train people to ignore
the output. Only a configured thing that does not work is a failure, and the
command exits non-zero exactly then.
No secret is printed. The mail check names the host and port an operator
wrote in their own configuration, never the credentials, and it sends no login
and no message — it opens a session and leaves. A test pins this with canary
values for
SIX_SMTP_USERNAME,SIX_SMTP_PASSWORDandSIX_GEMINI_API_KEYandasserts none of them reaches the output, while the feature they belong to is
still reported.
The database check compares the tables the running build expects against the
tables the database has, so a stack started without its migrations says so in
one line instead of failing at the first upload.
quickstart.shruns it after the readiness gate, andmake doctoris there forlater. A failing check never tears down a running stack.
Validation
Four new tests, 208 source files clean under
mypy,ruffclean, thedeployment script tests pass, and the export audit passes with the manifest
refreshed through #76's new mode.