Source, license, and adaptations

This is an independently maintained community adaptation, not an official Microsoft product or an endorsed Microsoft workshop website.

Original workshop#

The site, standalone integration, and other original additions are covered by this repository's MIT license. Imported source and bundled images remain attributed to their upstream source; no ownership of Microsoft or GitHub trademarks is claimed.

The guide self-hosts Atkinson Hyperlegible by the Braille Institute of America under the SIL Open Font License. Build-time dependencies and bundled browser libraries retain their respective licenses; the published site's third-party notices include the original font notice.

What was imported#

All 278 files from the pinned workshop subtree were downloaded from public, read-only GitHub endpoints and verified against their Git blob SHA-1 values. upstream-tree.json records every original path, file size, mode, and blob SHA. This is the original import manifest, not a claim that adapted files remain byte-identical.

The application, four API tracks, shared SQL, assets, backlog, fictional WorkIQ inputs, infrastructure, scripts, configuration, seven complete challenges, seven walkthroughs, and finish page are included. These are teaching assets, not a security-hardened production application.

Standalone adaptations#

  • The overview Readme.md is named WORKSHOP.md to avoid a case-insensitive collision with the new repository README.md. Internal links were updated.
  • Site code lives only in website/; application code remains in src/. Markdown is rendered from these source files, not maintained as a divergent copy.
  • The Azure exercise workflow is named .github/workflows/deploy.yml.example, outside Actions' recognized .yml/.yaml set. It remains deliberately incomplete and requires explicit participant activation. pages.yml is the separate site-only publishing pipeline.
  • Setup, prerequisites, challenges, and walkthroughs require each participant's own GitHub account and Azure subscription. The upstream event-specific account instructions were removed; no accounts, subscriptions, or shared lab environment are supplied. SETUP.md documents explicit Azure subscription selection, runtime choices, permissions, costs, and honest local progress.
  • Backlog seeding is an optional action against the participant's own fork, not pre-event provisioning of supplied repositories.
  • The dev container now builds the supplied Dockerfile so make and SQLite are installed. It no longer makes ports public automatically. VS Code tasks/debug paths point to src/ and the real TypeScript build target.
  • Repository Copilot instructions distinguish guide maintenance from exercise work and name the correct default and per-language commands.
  • The frontend uses Vite's same-origin API proxy during development and allows only the current Codespace's exact forwarded hostname. Make targets no longer force a separate public Codespaces API URL. Explicit deployment/runtime API settings remain supported.
  • Default npm installs use the imported lockfiles. Documentation clarifies working directories, the default TypeScript-only install, Java 17, private port forwarding, and separate guide/app commands.
  • LF checkout rules preserve the imported text blob identities on Windows as well as Linux.
  • Cost and permission notices precede the Azure exercises; the finish page adds a resource, identity, automation, and Codespaces cleanup checklist.
  • The website adds ordered navigation, section links, copy buttons, local progress/resume, static search that excludes solutions, and explicit per-visit solution reveals. The original instructional prose, success criteria, optional stretches, resources, tables, code, and diagrams are retained.

Refresh safely#

Use Node 24 and run the bounded importer from the repository root:

node tools/import-upstream.mjs --output .upstream-import

The importer is pinned to the commit and subtree above, refuses an existing output directory, checks the complete non-truncated manifest, and verifies every blob before writing it. It does not run imported code or Azure scripts, alter the working copy, or use a GitHub token.

Review a staged import before applying changes. Keep this manifest and license with the source, reapply the documented adaptations, and review new executable files/workflows before activation. For a deliberate version update, change the pin and expected tree SHA together, document the reason, and regenerate provenance. Never blindly copy an upstream .github/workflows folder over the active Pages workflow.

After content changes, run the site's content/unit checks, type check, build, emitted-link check, and browser flows. See the root README for exact commands.

The original MIT notice

    MIT License

    Copyright (c) Microsoft Corporation.

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE
View this page's MarkdownLearning content is pinned to the credited upstream import.

Search the workshop

Solutions are not included.

    Search runs in your browser against the guide. It does not query GitHub or an AI service.

    Reset your workshop progress?

    This removes saved success criteria, completion marks, and the resume location in this browser. It does not change your repository or Azure resources.