The Atlas MikeOSS.Azure's docs, bound to the code — and to the migration that built it
108 documents

The Atlas

MikeOSS.Azure's docs, bound to the code — and to the migration that built it

Journeys

Getting Started

The front door: what MikeOSS.Azure is, the three deployment paths (local Docker stack, manual Azure self-host, one-click marketplace), and the contributor invariants that keep the upstream fork mergeable. Start with README, then AGENTS.md, then the runbook for your path.

  • Agent Guidance Read before editing storage, auth/config env vars, dynamic-route components, /install, or the backend boot sequence — these are the tripwires.
  • Contributing Read before opening a PR to match the project's scope, review, and security-reporting expectations.
  • Deploying Mike to Azure — minimal self-host Follow this to stand Mike up in your own Azure tenant the simple way, then use its production appendix as the hardening roadmap.
  • Dev environment deployment runbook Reference when reproducing or auditing the Bicep-based Azure dev deployment and its exact resource names and ordering.
  • Local development stack — step by step Use to get the whole stack running locally in local-auth mode for the fast inner-loop dev workflow.
  • MikeOSS.Azure Start here to understand what the repo is and pick which of the three deployment paths you want.
  • Runbook: Local Microsoft Entra ID Authentication Use to validate the real Entra sign-in flow on localhost without deploying any Azure infrastructure.
  • Safe Local Testing Read before pointing Mike at any data or keys to avoid leaking real secrets or client documents during evaluation.

Migration Issues (PRD-by-PRD)

The PRD-by-PRD record of the migration: the numbered issues (001-040, with sub-issues) that took the Mike app off hosted Supabase and hosted LLMs and onto a customer's own Azure tenant - Bicep infra, PostgREST over Postgres, Azure Blob, Entra ID auth, the /install configurator, the marketplace package. Each is bound to the code it changed; read them in number order to follow the build.

PRDs

Product-requirement docs for discrete features (OSS-2/3/4): each a ticket (the brief) plus, where present, a spec (the detail). Smaller, feature-scoped counterparts to the migration issues - sharer-name resolution, post-sync cleanups, admin GDPR erasure.

Fork & Migration Strategy

How the fork is published without leaking proprietary deployment code: the three-tier model (Tier A upstream PRs, Tier B public OSS fork, Tier C private deploy repo) and the rules routing each file. fork-delta.md is the live list of files diverged from upstream - read it before any upstream rebase.

Architecture

The code-verified system picture: ARCHITECTURE-ANALYSIS.md (topology, the request pipeline, the three-mode auth boundary, the deploy choreography, and honest doc-code divergences) and the auth-provider selection flow. The reading to do before editing anything load-bearing.

  • Architecture & Technology Analysis Read first for a grounded, file-cited mental model of the whole system and to learn where the docs and code actually diverge.
  • Auth Provider Selection Flow Read to understand how login routes the browser through the backend to Entra, and the reasoning behind keeping bearer tokens and hiding Google.

Infrastructure

The Azure platform decisions as ADRs: VNet + private-endpoint topology, Container Apps compute, Key Vault + Managed Identity for secrets and identity, the Bicep-and-manual provisioning split, and container images + observability. Backs infra/main.bicep and infra/modules/*.

Data & Postgres

The data tier: the Postgres Flexible Server SKU choice, the PostgREST-over-Postgres access pattern (an unmodified supabase-js client repointed at bare PostgREST), node-pg-migrate schema migrations, and the Entra/Managed-Identity DB-auth handoff. Backs backend/migrations and backend/src/lib/supabase.ts.

Auth & Entra

The Entra ID implementation in depth: JWT/JWKS validation, group-to-role mapping, tenant gating, and the /install OIDC operator flow - a deep-dive plus a task breakdown. Pair with issues 008-014 and 023/038.

Storage

The blob-storage platform decision and the StorageProvider boundary that lets the same code run on Azure Blob (tenant) or R2/S3 (upstream), with the load-bearing mutating-vs-read split. Backs backend/src/lib/storage.ts.

  • 001 — Blob storage platform When working on document upload/download, the storage provider abstraction, or blob account/network config.
  • Storage decisions When you need the storage design map or the R2-to-Azure-Blob principles at a glance.

Email

The email-service design: the provider choice and where notification / transactional email fits - or is deferred - in the Azure footprint.

  • 001 — Email service When building the first email-sending feature or deciding on the email provider/interface.
  • Email decisions When you need the email design map or the defer-until-needed rationale.

Install & Deployment

Getting a deployment live and keeping it current: the production-hardening recipe, the marketplace package + republish runbook, and the operator-run /install PowerShell scripts. Backs marketplace/, scripts/install/, and the /install route.

  • `/install` operator scripts Read when running, auditing, or hand-replicating the /install operator scripts (Entra apps, redirect URIs, AOAI, access revoke, install reset).
  • Azure production-hardening backlog Use as the checklist to harden a deployment for real customer data or before a marketplace ship, and to understand the entra-mode DB trust model.
  • Mike AI — Azure Marketplace package Read to understand the marketplace bundle contents and the anonymous public-ACR image-pull design before touching the package.
  • scripts/install Read to understand what the scripts/install/ directory is for and how the configurator exposes its scripts.
  • Updating the Marketplace Listing Follow this exact order whenever cutting and submitting a new marketplace release; release-images runs before package-marketplace.

Developer Tools

The documentation tools themselves - the Skills & Prompts Explorer and Repository Explorer READMEs, plus this Atlas's own build log. All three separate mechanical discovery from authored curation.

History & Sessions

Point-in-time records kept for context, not maintenance: session logs, the v1 gap analysis, the agent runbooks, and the upstream-sync log. Indexed for search; their references to moved or removed files are history, not drift.