Skip to content

Commit 73315f1

Browse files
agjscursoragent
andcommitted
refactor: update references from api-template to boringstack-api and ui-template to apps/ui
This commit includes several updates across the repository to reflect the new naming conventions. The changes involve updating documentation, workflow files, and configuration files to replace instances of "api-template" with "boringstack-api" and "ui-template" with "apps/ui". Additionally, the layout in AGENTS.md has been improved for clarity. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent c641ef7 commit 73315f1

123 files changed

Lines changed: 520 additions & 519 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/apps-api-acl-drift.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: acl-drift
22

3-
# Catch ui-template ACL type drift in the api-template PR that introduced
4-
# it. The generated file lives in ui-template's tree; without this gate,
3+
# Catch apps/ui ACL type drift in the apps/api PR that introduced
4+
# it. The generated file lives in the UI app's tree; without this gate,
55
# changes to src/lib/acl/acl.constants.ts here ship without the
6-
# corresponding ui-template regeneration.
6+
# corresponding apps/ui regeneration.
77

88
on:
99
push:
@@ -26,7 +26,7 @@ permissions:
2626

2727
jobs:
2828
drift:
29-
name: ui-template ACL types are fresh
29+
name: apps/ui ACL types are fresh
3030
defaults:
3131
run:
3232
working-directory: apps/api
@@ -41,11 +41,11 @@ jobs:
4141
with:
4242
bun-version: 1.3.13
4343

44-
- name: Install api-template deps
44+
- name: Install apps/api deps
4545
working-directory: apps/api
4646
run: bun install --frozen-lockfile
4747

48-
- name: Check ui-template ACL types are up-to-date
48+
- name: Check apps/ui ACL types are up-to-date
4949
working-directory: apps/api
5050
env:
5151
BORINGSTACK_UI_DIR: ${{ github.workspace }}/apps/ui

.github/workflows/apps-api-openapi-drift.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: openapi-drift
22

3-
# Catch ui-template schema drift in the api-template PR that introduced it.
4-
# Before this job, drift only surfaced in infra-docker-compose-template's
3+
# Catch apps/ui schema drift in the apps/api PR that introduced it.
4+
# Before this job, drift only surfaced in infra/compose's
55
# full-stack-smoke workflow — which runs only on infra pushes, so drift
6-
# would sit on api-template main until someone touched infra.
6+
# would sit on apps/api main until someone touched infra.
77

88
on:
99
push:
@@ -28,7 +28,7 @@ permissions:
2828

2929
jobs:
3030
drift:
31-
name: ui-template OpenAPI schema is fresh
31+
name: apps/ui OpenAPI schema is fresh
3232
runs-on: ubuntu-latest
3333
timeout-minutes: 8
3434

@@ -79,7 +79,7 @@ jobs:
7979
with:
8080
bun-version: 1.3.13
8181

82-
- name: Install api-template deps
82+
- name: Install apps/api deps
8383
working-directory: apps/api
8484
run: bun install --frozen-lockfile
8585

@@ -111,11 +111,11 @@ jobs:
111111
with:
112112
bun-version: 1.3.13
113113

114-
- name: Install ui-template deps
114+
- name: Install apps/ui deps
115115
working-directory: apps/ui
116116
run: bun install --frozen-lockfile
117117

118-
- name: Check ui-template schema is up-to-date
118+
- name: Check apps/ui schema is up-to-date
119119
working-directory: apps/ui
120120
env:
121121
OPENAPI_URL: http://localhost:3000/swagger/json

.github/workflows/apps-api-release.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: release
55
# - every push of a semver tag v*.*.* (adds the :<semver> tag, e.g. :0.3.0)
66
#
77
# Downstream consumers (BoringStack's WUD service in the prod compose stack)
8-
# watch ghcr.io/<owner>/api-template:latest and auto-redeploy when a new sha
8+
# watch ghcr.io/<owner>/<repo>-api:latest and auto-redeploy when a new sha
99
# is pushed.
1010

1111
on:
@@ -53,12 +53,9 @@ jobs:
5353
id: meta
5454
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
5555
with:
56-
# The image path tracks BOTH the owner AND the repo name, so a
57-
# "Use this template" fork with a different name (e.g. `my-saas-api`)
58-
# publishes to ghcr.io/<their-owner>/<their-renamed-repo> with no
59-
# config change. The consumer side (infra-docker-compose-template's
60-
# compose .env) reads the same values via IMAGE_OWNER + API_IMAGE.
61-
images: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
56+
# Monorepo image names are suffix-based so API and UI publish distinct
57+
# packages from the same repository.
58+
images: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}-api
6259
tags: |
6360
type=raw,value=latest,enable={{is_default_branch}}
6461
type=sha,prefix=sha-,format=short

.github/workflows/apps-docs-linkcheck.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ jobs:
4848
- name: Install docs deps
4949
run: bun install --frozen-lockfile
5050

51-
- name: Install ui-template deps for lint-meta export
51+
- name: Install apps/ui deps for lint-meta export
5252
working-directory: apps/ui
5353
run: bun install --frozen-lockfile
5454

55-
- name: Install api-template deps for lint-meta export
55+
- name: Install apps/api deps for lint-meta export
5656
working-directory: apps/api
5757
run: bun install --frozen-lockfile
5858

.github/workflows/apps-ui-release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ name: release
1010
# - on a changesets publish → also :<semver> (from the merged Version Packages PR)
1111
#
1212
# Downstream consumers (BoringStack's WUD service in the prod compose stack)
13-
# watch ghcr.io/<owner>/ui-template:latest and auto-redeploy when a new sha
13+
# watch ghcr.io/<owner>/<repo>-ui:latest and auto-redeploy when a new sha
1414
# is pushed.
1515

1616
on:
@@ -83,9 +83,9 @@ jobs:
8383
id: meta
8484
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
8585
with:
86-
# Tracks both the fork owner AND the repo name, so renaming after
87-
# "Use this template" Just Works without touching the workflow.
88-
images: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
86+
# Monorepo image names are suffix-based so API and UI publish distinct
87+
# packages from the same repository.
88+
images: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}-ui
8989
# Always produce :latest (on main) and :sha-<7>. Add the semver tag
9090
# only when changesets actually published a new version on this run.
9191
tags: |

.github/workflows/apps-ui-validate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
retention-days: 1
6969

7070
# NOTE: Playwright report upload lives in full-stack-smoke.yml in the
71-
# infra-docker-compose-template repo, where E2E actually runs.
71+
# infra/compose repo, where E2E actually runs.
7272

7373
- name: Upload Storybook
7474
if: always()

AGENTS.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ bun run check # drift checks before push
1313

1414
## Layout
1515

16-
| Path | Was | Role |
17-
|------|-----|------|
18-
| `apps/api` | api-template | Bun + Elysia API |
19-
| `apps/ui` | ui-template | Vite + React UI |
20-
| `apps/docs` | .github / boringstack.xyz | Astro docs site |
21-
| `infra/compose` | infra-docker-compose-template | Docker Compose |
22-
| `infra/bootstrap` | infra-bootstrap-tofu-template | OpenTofu bootstrap |
16+
| Path | Role |
17+
| ----------------- | ---------------------- |
18+
| `apps/api` | Bun + Elysia API |
19+
| `apps/ui` | Vite + React UI |
20+
| `apps/docs` | Astro docs site |
21+
| `infra/compose` | Docker Compose runtime |
22+
| `infra/bootstrap` | OpenTofu bootstrap |
2323

2424
CI: `.github/workflows/` at repo root with path filters.
2525

apps/api/.env.example

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ AUTH_RATE_LIMIT_WINDOW_MS=60000
3636
#
3737
# Running under docker-compose? Setting these HERE has no effect — the
3838
# api-migrate service interpolates `${SUPERUSER_EMAIL}` from
39-
# `infra-docker-compose-template/compose/.env`, not from this file.
39+
# `infra/compose/compose/.env`, not from this file.
4040
# Put them in compose/.env instead. (`bun run dev` standalone still
4141
# reads them from this file as expected.)
4242
SUPERUSER_EMAIL=
@@ -50,14 +50,14 @@ E2E_TEST_ENDPOINTS_ENABLED=false
5050

5151
# --- Error tracking — Sentry-compatible ---------------------------------
5252
# DSN can point at self-hosted GlitchTip (see
53-
# infra-docker-compose-template/docs/glitchtip.md) or sentry.io — same
53+
# infra/compose/docs/glitchtip.md) or sentry.io — same
5454
# wire protocol. Empty DSN means Sentry is not initialized.
5555
SENTRY_DSN=
5656
SENTRY_TRACES_SAMPLE_RATE=0.1
5757

5858
# Email — pick one provider; only that provider's keys are required.
5959
# Default: Cloudflare Email Service (https://developers.cloudflare.com/email-service/).
60-
# Setup walkthrough: infra-docker-compose-template/docs/runbooks/cloudflare-email.md
60+
# Setup walkthrough: infra/compose/docs/runbooks/cloudflare-email.md
6161
# In dev with all keys empty, a noop provider is used and emails are logged.
6262
# For local template iteration, set EMAIL_PROVIDER=smtp + SMTP_HOST=mailpit
6363
# and start the compose stack with WITH_MAILPIT=1; emails are caught at

apps/api/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<p align="center">
88
<a href="https://boringstack.xyz"><img src="https://img.shields.io/badge/boringstack.xyz-4ade80?style=for-the-badge&logo=safari&logoColor=4ade80&labelColor=090909" alt="boringstack.xyz"></a>
99
<a href="https://boringstack.xyz/api/overview/"><img src="https://img.shields.io/badge/Docs-4ade80?style=for-the-badge&logo=readthedocs&logoColor=4ade80&labelColor=090909" alt="Docs"></a>
10-
<a href="https://github.com/boringstack-xyz/api-template"><img src="https://img.shields.io/badge/GitHub-4ade80?style=for-the-badge&logo=github&logoColor=4ade80&labelColor=090909" alt="GitHub"></a>
10+
<a href="https://github.com/boringstack-xyz/boringstack/tree/main/apps/api"><img src="https://img.shields.io/badge/GitHub-4ade80?style=for-the-badge&logo=github&logoColor=4ade80&labelColor=090909" alt="GitHub"></a>
1111
</p>
1212

1313
<p align="center">
@@ -18,11 +18,11 @@
1818
<img src="https://img.shields.io/badge/TypeScript-3178c6?style=for-the-badge&logo=typescript&logoColor=3178c6&labelColor=090909" alt="TypeScript">
1919
</p>
2020

21-
# api-template
21+
# apps/api
2222

2323
Part of [BoringStack](https://boringstack.xyz).
2424

25-
For documentation on how to run, configure, and extend this template, see the [API template docs](https://boringstack.xyz/api/overview/).
25+
For documentation on how to run, configure, and extend the API app, see the [API docs](https://boringstack.xyz/api/overview/).
2626

2727
## License
2828

apps/api/SECURITY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ fails. The weekly cron exists so this surfaces even when no one pushes.
4747

4848
## Repo settings hardening
4949

50-
The `main` branch on every BoringStack template repo enforces:
50+
The `main` branch on the BoringStack monorepo enforces:
5151

5252
- Signed commits (configure your local signing before pushing)
5353
- Linear history (squash-merges only)
@@ -82,7 +82,7 @@ See `AGENTS.md` → "Security skill set" for the full skill reference.
8282
- **Security headers (CSP, HSTS, X-Frame-Options, Permissions-Policy,
8383
Referrer-Policy, X-Content-Type-Options)** — set by **Traefik** in
8484
front of the api, not by the api itself. The single source of truth
85-
is `infra-docker-compose-template/compose/docker-compose.production-labels.yml`.
85+
is `infra/compose/compose/docker-compose.production-labels.yml`.
8686
Running the api standalone (no Traefik in front) leaves it without
8787
these headers — front it with Traefik or your own reverse proxy.
8888
- **CORS** — gated on `ALLOWED_ORIGINS`. Empty (default) = not mounted

0 commit comments

Comments
 (0)