# assets.stormtrust.net

`assets.stormtrust.net` publishes shared StormTrust brand marks, application icons, mockups, CSS, and design tokens as a Cloudflare Workers Static Assets application.

## Application reference

| Property        | Value                      |
| --------------- | -------------------------- |
| Source          | org/apps/assets/           |
| Worker          | stormtrust-assets          |
| Custom domain   | assets.stormtrust.net      |
| Durable storage | None                       |
| Verification    | make app-verify APP=assets |

## Source and delivery model

The repository is the source of truth. Cloudflare delivers the deployed assets, but the production site does not use GitHub as a CDN.

| Layer                 | Source or owner                            | Purpose                                    |
| --------------------- | ------------------------------------------ | ------------------------------------------ |
| Editable inputs       | org/apps/assets/source/brand/              | Preserve canonical brand source files      |
| Published releases    | org/apps/assets/public/v<version>/         | Define immutable public URLs               |
| Static bundle         | Wrangler and Workers Static Assets         | Deploy the selected release files          |
| Edge delivery         | assets.stormtrust.net and Cloudflare cache | Serve assets near consumers                |
| Independent artifacts | Owning application and R2 bucket           | Serve large or separately generated output |

Keep authored sources, schemas, producers, and release metadata in the repository. Use R2 only when an artifact needs an independent lifecycle.

## Asset placement

Choose a location from the asset behavior:

| Asset behavior                      | Repository location                               |
| ----------------------------------- | ------------------------------------------------- |
| Editable shared brand source        | org/apps/assets/source/brand/                     |
| Immutable shared release            | org/apps/assets/public/v<version>/                |
| Stable app-specific public URL      | org/apps/<app>/public/                            |
| Astro-processed documentation image | org/apps/developers/src/assets/images/stormtrust/ |
| StormTrust documentation source     | org/apps/developers/src/content/docs/stormtrust/  |
| Build output                        | The application build directory; do not commit    |

The developers Worker uses its `MIDDLECACHE` R2 binding for ` openapi.json`, ` llms-full.txt`, and Model Context Protocol (MCP) server cards. These artifacts remain separate from the shared asset application.

## Release contract

Published version directories are immutable. Add a semantic version directory instead of changing a released URL. Public CSS tokens and classes use the `st-` namespace.

Release `v1.2.0` contains the canonical SVG marks, PNG icons from 16 through 1024 pixels, the dashboard mockup, and the shared CSS contract. It adds explicit light and dark semantic tokens, honors the system preference when no override is present, and accepts ` data-theme="light"` or ` data-theme="dark"` for a stable application override. The icon source is the square transparent 1024-pixel StormTrust mark; the pinned Tauri icon CLI generates all derived sizes.

The application remains static-only unless request-time behavior has a defined use case. Do not add secrets or unlicensed third-party assets.

## Ownership

Terraform creates the Worker identity. Wrangler deploys the static bundle and owns the custom domain. For the complete boundary, refer to [Terraform and Wrangler ownership](/stormtrust/engineering/cloudflare/ownership/).

## Operational guides

Use the shared [validation and deployment guides](/stormtrust/engineering/operations/) and [health evidence by app](/stormtrust/engineering/operations/health/#evidence-by-application). For a failed release, follow [recovery procedures](/stormtrust/engineering/operations/recover/) with this application's state and access boundaries.
