Skip to content

agenticdata: optional labs 7-10 (managed Dataform, AI.FORECAST, sharing, Day-2 Ops)#4

Merged
fhirschmann merged 1 commit into
mainfrom
agenticdata-optional-labs
Jul 10, 2026
Merged

agenticdata: optional labs 7-10 (managed Dataform, AI.FORECAST, sharing, Day-2 Ops)#4
fhirschmann merged 1 commit into
mainfrom
agenticdata-optional-labs

Conversation

@fhirschmann

Copy link
Copy Markdown
Collaborator

Four optional drop-in modules for extended/future events. Deliberately not wired into TUTORIAL.md — each lab carries a marker comment with wiring instructions (renumber, include, merge its src/optional/<slug>/prompts.md into src/prompts.md, add duration to the README agenda).

  • Lab 7 — From Laptop to Schedule — the Medallion on Managed Dataform (40 min, d2): pushes the Lab 3 project into a hosted repo via the Dataform REST API (src/optional/managed_dataform/push_to_dataform.sh), compiled graph, release + workflow configs, 15-min schedule executing as dataquality-service-account.
  • Lab 8 — The Crystal Ball (30 min, d2): AI.FORECAST/TimesFM warm-up, agy-authored forecast-tagged Dataform mart, data canvas actuals-vs-forecast, gated Lab-5 section teaching the data agent forward-looking answers.
  • Lab 9 — The Data Exchange (25 min, d1): BigQuery sharing (Analytics Hub) exchange + listing with an agy-drafted prose data contract, self-subscription as the consumer, zero-copy proof against the live simulator, egress controls + usage metrics.
  • Lab 10 — Day-2 Ops (45 min, d3): agy-authored Monitoring dashboard as code, the freshness alert Datastream doesn't ship, a reversible chaos script (NOLOGIN + backend terminate on datastream_user), agy as read-only co-responder, one-line fix, lossless catch-up, auto-resolving incident.

All four are self-contained (inline API enables + IAM with propagation rescue notes; no changes to bk-bootstrap, requirements.txt, or labs 1-6), follow the stream's three-surface pattern with shipped reference solutions, and render cleanly through bk-render-jinja2 (one H2 each, no leftover Jinja). Console flows and product facts were verified against current docs at authoring time; the modules have not been smoke-tested end to end yet.

fhirschmann added a commit that referenced this pull request Jul 10, 2026
Review items #26 and #27 (P3), plus the defensive chmod from item #4.
Three edge cases: (a) a --comment containing a newline would write its
second line outside the '# ' prefix -- executed by every terminal that
sources vars.local.sh -- and (b) '--comment' as the last argument died on
set -u with a cryptic message; both are now rejected with a clear error.
(c) Appending to a hand-edited file without a trailing newline concatenated
two exports onto one line; a newline is now ensured first.

Additionally, when bk-set-var itself creates the target file it now chmods
it to 600 immediately: the file may receive secrets later, and the default
umask would leave it world-readable.
fhirschmann added a commit that referenced this pull request Jul 10, 2026
…ckout

Review items #19b, #4 (P0) and #16 (P1), all confirmed with repros.

  * Pre-clone probe: one HEAD request against the raw
    content/$BK_STREAM/TUTORIAL.md validates BK_REPO, BK_BRANCH and
    BK_STREAM at once, in about a second, BEFORE any clone happens or any
    workspace opens. A typo now fails with one clear message and leaves
    nothing behind (works for forks too -- the probe uses the launch-provided
    BK_REPO). The post-clone stream check stays as belt and braces.
  * The clone itself is checked; a failure explains the recovery instead of
    letting the sourced script keep running without set -e.
  * The reuse guard now requires .git AND vars.sh: a clone that died between
    the two (disk full, closed tab) used to pass the old .git-only test,
    print a reassuring green message, and then cascade -- cp failed, sources
    failed, vars.local.sh got recreated world-readable via touch, and
    bk-start opened a blank tutorial. Such a directory is now rejected with
    an explicit rm -rf recovery line.
  * Re-pasting the launch command (the documented way to pick up mid-event
    content fixes) now fast-forwards a clean existing checkout quietly;
    plain '. bk' reloads stay offline. Local changes are left alone with a
    yellow note.
@fhirschmann fhirschmann merged commit 11e6a93 into main Jul 10, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant