Add post: How I Vet an Open-Source Dependency Before Betting On It (EN + ZH)
Deploy / build (push) Successful in 15s
Deploy / build (push) Successful in 15s
New `devops` post on vetting an upstream dependency before building on it: the six checks that corrected six assumptions from a 1,306-line architecture spec — repo vital signs via the GitHub API, grepping for the feature instead of reading for it (OIDC/SSO/SAML → 0 hits), reading a feature doc's target branch (white-label lives on `multi-tenant`, not `main`), reading the data model rather than the feature list (percent/fixed vs five assumed rule types), the Community-vs-Enterprise tier gate (API tokens free, SSO paid), and whether the money rail works in-country (selfhost + manual payouts, not Stripe Connect). Closes with the fallback question and the authentik proxy-provider answer. - EN: src/content/posts/vetting-an-open-source-dependency-before-you-bet-on-it.md - ZH: src/content/posts/zh/<same slug>.md (same filename → auto language switch) - Custom OG (1200x630) + banner (1600x900) art via TERMINALS/BANNERS entries - pubDate 2026-09-29; build verified 93 pages, 17/17 content checks, listing order monotonic on /posts/, / and /zh/ Note: the generator maps also carry two entries belonging to parallel in-flight posts (adding-english-mode…, and the sessions' other slugs); their post files were left uncommitted.
This commit is contained in:
@@ -219,6 +219,24 @@ TERMINALS['adding-english-mode-to-a-chinese-only-web-app'] = `
|
||||
<div class="line"><span class="prompt"> </span><span class="err">the UI is 100% Chinese · browsers then never offer translate</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">nginx sub_filter + gate-en.js · 871 zh→en labels</span><span class="fix">→ 88% English ✓</span></div>`;
|
||||
|
||||
TERMINALS['vetting-an-open-source-dependency-before-you-bet-on-it'] = `
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">grep -in 'oidc\|sso\|saml' README.md ARCHITECTURE.md docs/*.md</span><span class="err">→ 0 hits</span></div>
|
||||
<div class="line"><span class="prompt"> </span><span class="err">the spec assumed OIDC · partner login was never implementable</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">head -5 docs/white-label-custom-domains.md</span><span class="err">→ Target branch: multi-tenant</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">selfhost mode · manual payouts · pin the commit</span><span class="fix">→ 6 assumptions corrected ✓</span></div>`;
|
||||
|
||||
TERMINALS['authentik-forward-auth-gate-wasnt-live'] = `
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">curl -sk -H 'Host: app.example.com' https://localhost/</span><span class="fix">→ 302 gated ✓</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">curl -sI https://app.example.com/</span><span class="err">→ 200 x-powered-by: Express</span></div>
|
||||
<div class="line"><span class="prompt"> </span><span class="err">the tunnel rule answered · nginx was never in the path</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">verify from outside · read which layer replied</span><span class="fix">→ gate real ✓</span></div>`;
|
||||
|
||||
TERMINALS['nocodb-sso-is-a-licensed-feature'] = `
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">NC_SSO=oidc · app boot</span><span class="fix">→ env keys enforced</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">curl -s localhost:10399/auth/oidc</span><span class="err">→ uncaught TypeError</span></div>
|
||||
<div class="line"><span class="prompt"> </span><span class="err">unhandledRejection · container exits(1)</span></div>
|
||||
<div class="line"><span class="prompt">$</span><span class="cmd">CE mode · meta=MySQL · fork 0.255.2 (2024)</span><span class="fix">→ gate at the edge ✓</span></div>`;
|
||||
|
||||
// ---------- read frontmatter ----------
|
||||
const postPath = join(ROOT, 'src', 'content', 'posts', `${slug}.md`);
|
||||
if (!existsSync(postPath)) {
|
||||
|
||||
Reference in New Issue
Block a user