docs: surface core-audit as 5th optional package across discovery points
This commit is contained in:
@@ -1703,8 +1703,8 @@ footer .colophon {
|
||||
<h3>blog/di/<em>bind-production.ts</em></h3>
|
||||
<p>Called from each app's bootstrap (<code>apps/web-next/src/server/bind-production.ts</code>) with the <code>ctx</code> object built once by the aggregator. <code>BindProductionContext</code> is imported from <code>@repo/core-shared/di</code>.</p>
|
||||
<pre class="code" data-lang="typescript // packages/blog/src/di/bind-production.ts"><span class="k">export function</span> <span class="n">bindProductionBlog</span>(<span class="n">ctx</span>: <span class="t">BindProductionContext</span>): <span class="t">void</span> {
|
||||
<span class="c">// bus is optional — present only when @repo/core-events is scaffolded</span>
|
||||
<span class="k">const</span> { <span class="n">config</span>, <span class="n">tracer</span>, <span class="n">logger</span>, <span class="n">bus</span>, <span class="n">queue</span>, <span class="n">realtime</span>, <span class="n">realtimeRegistry</span> } = <span class="n">ctx</span>;
|
||||
<span class="c">// bus, realtime, realtimeRegistry, auditLog are optional — present only when the corresponding optional package is scaffolded</span>
|
||||
<span class="k">const</span> { <span class="n">config</span>, <span class="n">tracer</span>, <span class="n">logger</span>, <span class="n">bus</span>, <span class="n">queue</span>, <span class="n">realtime</span>, <span class="n">realtimeRegistry</span>, <span class="n">auditLog</span> } = <span class="n">ctx</span>;
|
||||
<span class="k">if</span> (<span class="n">blogContainer</span>.<span class="n">isBound</span>(<span class="n">BLOG_SYMBOLS</span>.<span class="n">IArticlesRepository</span>)) {
|
||||
<span class="n">blogContainer</span>.<span class="n">unbind</span>(<span class="n">BLOG_SYMBOLS</span>.<span class="n">IArticlesRepository</span>);
|
||||
}
|
||||
@@ -2193,7 +2193,7 @@ footer .colophon {
|
||||
<div class="tradeoff-card">
|
||||
<div class="tag">di/bind-production.ts</div>
|
||||
<h3>Production binder</h3>
|
||||
<p class="blurb"><code>bindProduction<F>(ctx: BindProductionContext)</code> — unbinds the mock, rebinds the real Payload-backed impl. The <code>ctx</code> arg carries required fields (<code>tracer</code>, <code>logger</code>, <code>config</code>) and optional cross-cutting deps (<code>queue</code>). Event bus (<code>bus</code>) is also optional — present only when <code>@repo/core-events</code> is scaffolded via <code>pnpm turbo gen core-package events</code>; absent, <code>bus?.subscribe/publish</code> calls are no-ops. Realtime deps (<code>realtime</code>, <code>realtimeRegistry</code>) are also optional — present only when <code>@repo/core-realtime</code> is scaffolded via <code>pnpm turbo gen core-package realtime</code>.</p>
|
||||
<p class="blurb"><code>bindProduction<F>(ctx: BindProductionContext)</code> — unbinds the mock, rebinds the real Payload-backed impl. The <code>ctx</code> arg carries required fields (<code>tracer</code>, <code>logger</code>, <code>config</code>) and optional cross-cutting deps (<code>queue</code>). Event bus (<code>bus</code>) is also optional — present only when <code>@repo/core-events</code> is scaffolded via <code>pnpm turbo gen core-package events</code>; absent, <code>bus?.subscribe/publish</code> calls are no-ops. Realtime deps (<code>realtime</code>, <code>realtimeRegistry</code>) are also optional — present only when <code>@repo/core-realtime</code> is scaffolded via <code>pnpm turbo gen core-package realtime</code>. Audit log (<code>auditLog</code>) is also optional — present only when <code>@repo/core-audit</code> is scaffolded via <code>pnpm turbo gen core-package audit</code>; absent, <code>ctx.auditLog?.record(entry)</code> calls are no-ops. When present, <code>auditLog</code> is a <code>TraceIdEnrichingAuditLog</code> that auto-populates <code>AuditEntry.correlationId</code> from the active OTel span.</p>
|
||||
<div class="pc-cols">
|
||||
<div class="pros"><h5>Pros</h5><ul>
|
||||
<li>Decouples Payload config from the feature package — boundary stays clean</li>
|
||||
|
||||
@@ -21,6 +21,7 @@ Plus all 5 feature packages: auth, blog, marketing-pages, navigation, media.
|
||||
| core-events | `pnpm turbo gen core-package events` | ADR-015 | docs/guides/events-and-jobs.md |
|
||||
| core-trpc | `pnpm turbo gen core-package trpc` | (none) | (none) |
|
||||
| core-ui | `pnpm turbo gen core-package ui` | (none) | (none) |
|
||||
| core-audit | `pnpm turbo gen core-package audit` | ADR-018 | docs/guides/audit-and-compliance.md |
|
||||
|
||||
## Why optional
|
||||
|
||||
|
||||
Reference in New Issue
Block a user