Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build-host.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jobs:
env:
INPUT_ENVIRONMENT: ${{ inputs.environment }}
run: |
echo "ICONS_URL=https://boxel-icons.boxel.ai" >> $GITHUB_ENV
if [ "$INPUT_ENVIRONMENT" = "production" ]; then
echo "RESOLVED_BASE_REALM_URL=https://app.boxel.ai/base/" >> $GITHUB_ENV
echo "RESOLVED_CATALOG_REALM_URL=https://app.boxel.ai/catalog/" >> $GITHUB_ENV
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ Instead of running `pnpm start:base`, you can alternatively use `pnpm start:all`
| :4201 | `/experiments` experiments realm | ✅ | 🚫 |
| :4202 | `/test` host test realm, `/node-test` node test realm | ✅ | 🚫 |
| :4205 | `/test` realm for matrix client tests (playwright controlled) | 🚫 | 🚫 |
| :4206 | Boxel icons server | ✅ | 🚫 |
| :4210 | Development Worker Manager (spins up 1 worker by default) | ✅ | 🚫 |
| :4211 | Test Worker Manager (spins up 1 worker by default) | ✅ | 🚫 |
| :4212 | Worker Manager for matrix client tests (playwright controlled - 1 worker) | ✅ | 🚫 |
Expand Down
1 change: 1 addition & 0 deletions packages/boxel-icons/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ The [BoxelUI preview app](https://boxel-ui.stack.cards) contains a preview of al
## Local Development

`pnpm serve` in this directory starts a local webserver. You can point `host` at it by setting ICONS_URL=http://localhost:4206.
The server includes CORS headers for `Authorization` and `X-Boxel-Assume-User` so host-side authenticated icon fetches work in local dev.
2 changes: 1 addition & 1 deletion packages/boxel-icons/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"start": "concurrently \"pnpm:start:*\" --names \"start:\"",
"start:js": "rollup --config --watch --no-watch.clearScreen",
"start:types": "glint --declaration --watch",
"serve": "http-server --cors --port 4206 dist",
"serve": "http-server --cors=Origin,X-Requested-With,Content-Type,Accept,Range,Authorization,X-Boxel-Assume-User --port 4206 dist",
"test": "echo 'A v2 addon does not have tests, run tests in test-app'",
"test:ember": "ember test"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/host/config/environment.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ module.exports = function (environment) {
fileSizeLimitBytes: Number(
process.env.FILE_SIZE_LIMIT_BYTES ?? DEFAULT_FILE_SIZE_LIMIT_BYTES,
),
iconsURL: process.env.ICONS_URL || 'https://boxel-icons.boxel.ai',
iconsURL: process.env.ICONS_URL || 'http://localhost:4206',
publishedRealmBoxelSpaceDomain:
process.env.PUBLISHED_REALM_BOXEL_SPACE_DOMAIN || 'localhost:4201',
publishedRealmBoxelSiteDomain:
Expand Down
84 changes: 42 additions & 42 deletions packages/host/tests/integration/realm-indexing-test.gts
Original file line number Diff line number Diff line change
Expand Up @@ -4125,23 +4125,23 @@ module(`Integration | realm indexing`, function (hooks) {
.filter((ref) => !ref.includes('glimmer-scoped.css')),
[
'http://localhost:4202/test/person',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-box-left-middle',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-left',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/arrow-left',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/captions',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/code',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/eye',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/file-pencil',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/folder-pen',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/hash',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/import',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/letter-case',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/link',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/notepad-text',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/palette',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/trash-2',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/wand',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-box-left-middle',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-left',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/arrow-left',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/captions',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/code',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/eye',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/file-pencil',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/folder-pen',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/hash',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/import',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/letter-case',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/link',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/notepad-text',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/palette',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/trash-2',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/wand',
'https://cardstack.com/base/-private',
'https://cardstack.com/base/card-api',
'https://cardstack.com/base/card-serialization',
Expand Down Expand Up @@ -4248,31 +4248,31 @@ module(`Integration | realm indexing`, function (hooks) {
.filter((ref) => !ref.includes('glimmer-scoped.css')),
[
'http://localhost:4202/test/person',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-box-left-middle',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-left',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/apps',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/arrow-left',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/book-open-text',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/box-model',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/captions',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/code',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/eye',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/file-pencil',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/folder-pen',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/git-branch',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/hash',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/import',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/layers-subtract',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/layout-list',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/letter-case',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/link',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/notepad-text',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/palette',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/stack',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/toggle-left',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/trash-2',
'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/wand',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-box-left-middle',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-left',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/apps',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/arrow-left',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/book-open-text',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/box-model',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/captions',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/code',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/eye',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/file-pencil',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/folder-pen',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/git-branch',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/hash',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/import',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/layers-subtract',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/layout-list',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/letter-case',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/link',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/notepad-text',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/palette',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/stack',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/toggle-left',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/trash-2',
'http://localhost:4206/@cardstack/boxel-icons/v1/icons/wand',
'https://cardstack.com/base/-private',
'https://cardstack.com/base/boolean',
'https://cardstack.com/base/card-api',
Expand Down
1 change: 1 addition & 0 deletions packages/realm-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
"test-module": "./scripts/remove-test-dbs.sh; LOG_LEVELS=\"*=error,prerenderer-chrome=silent,pg-adapter=warn,realm:requests=warn${LOG_LEVELS:+,}${LOG_LEVELS}\" NODE_NO_WARNINGS=1 PGPORT=5435 STRIPE_WEBHOOK_SECRET=stripe-webhook-secret STRIPE_API_KEY=stripe-api-key qunit --require ts-node/register/transpile-only --module ${TEST_MODULE} tests/index.ts",
"start:matrix": "cd ../matrix && pnpm assert-synapse-running",
"start:smtp": "cd ../matrix && pnpm assert-smtp-running",
"start:icons": "sh ./scripts/start-icons.sh",
"start:pg": "./scripts/start-pg.sh",
"stop:pg": "./scripts/stop-pg.sh",
"test:wait-for-servers": "WAIT_ON_TIMEOUT=900000 NODE_NO_WARNINGS=1 start-server-and-test 'pnpm run wait' 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' 'pnpm run wait' 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' 'test-module'",
Expand Down
2 changes: 1 addition & 1 deletion packages/realm-server/scripts/start-all-except-optional.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

WAIT_ON_TIMEOUT=900000 SKIP_EXPERIMENTS=true SKIP_CATALOG=true SKIP_BOXEL_HOMEPAGE=true SKIP_SUBMISSION=true NODE_NO_WARNINGS=1 start-server-and-test \
'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \
'run-p -ln start:worker-test start:test-realms' \
'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \
'wait'
3 changes: 2 additions & 1 deletion packages/realm-server/scripts/start-all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ NODE_TEST_REALM_READY="$NODE_TEST_REALM$READY_PATH"

SYNAPSE_URL="http://localhost:8008"
SMTP_4_DEV_URL="http://localhost:5001"
ICONS_URL="http://localhost:4206"

WAIT_ON_TIMEOUT=1200000 NODE_NO_WARNINGS=1 start-server-and-test \
'run-p -ln start:pg start:matrix start:smtp start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \
"$BASE_REALM_READY|$CATALOG_REALM_READY|$SKILLS_REALM_READY|$BOXEL_HOMEPAGE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL" \
"$BASE_REALM_READY|$CATALOG_REALM_READY|$SKILLS_REALM_READY|$BOXEL_HOMEPAGE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \
'run-p -ln start:worker-test start:test-realms' \
"$NODE_TEST_REALM_READY" \
'wait'
9 changes: 9 additions & 0 deletions packages/realm-server/scripts/start-development.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
SCRIPTS_DIR="$(cd "$(dirname "$0")" && pwd)"
. "$SCRIPTS_DIR/wait-for-pg.sh"

sh "$SCRIPTS_DIR/start-icons.sh" &
ICONS_PID=$!
cleanup_icons_server() {
if [ -n "$ICONS_PID" ]; then
kill "$ICONS_PID" >/dev/null 2>&1 || true
fi
}
trap cleanup_icons_server EXIT INT TERM

wait_for_postgres

pnpm --dir=../skills-realm skills:setup
Expand Down
8 changes: 8 additions & 0 deletions packages/realm-server/scripts/start-icons.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#! /bin/sh

if curl --fail --silent --show-error http://localhost:4206 >/dev/null 2>&1; then
echo "icons server already running on http://localhost:4206, skipping startup"
exit 0
fi

pnpm --dir=../boxel-icons serve
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ WAIT_ON_TIMEOUT=900000 \
NODE_NO_WARNINGS=1 \
start-server-and-test \
'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \
'run-p -ln start:worker-test start:test-realms' \
'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \
'wait'
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ pnpm --dir=../skills-realm skills:setup
WAIT_ON_TIMEOUT=600000 NODE_NO_WARNINGS=1 SKIP_SUBMISSION=true \
start-server-and-test \
'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:worker-base start:base' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \
'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:4206' \
'wait'
9 changes: 9 additions & 0 deletions packages/realm-server/scripts/start-test-realms.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
SCRIPTS_DIR="$(cd "$(dirname "$0")" && pwd)"
. "$SCRIPTS_DIR/wait-for-pg.sh"

sh "$SCRIPTS_DIR/start-icons.sh" &
ICONS_PID=$!
cleanup_icons_server() {
if [ -n "$ICONS_PID" ]; then
kill "$ICONS_PID" >/dev/null 2>&1 || true
fi
}
trap cleanup_icons_server EXIT INT TERM

wait_for_postgres
PRERENDER_URL="${PRERENDER_URL:-http://localhost:4221}"

Expand Down
3 changes: 2 additions & 1 deletion packages/realm-server/scripts/start-without-matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@ TEST_REALM_READY="$TEST_REALM$READY_PATH"

SYNAPSE_URL="http://localhost:8008"
SMTP_4_DEV_URL="http://localhost:5001"
ICONS_URL="http://localhost:4206"

WAIT_ON_TIMEOUT=900000 SKIP_BOXEL_HOMEPAGE=true NODE_NO_WARNINGS=1 start-server-and-test \
'run-p start:pg start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \
"$BASE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL" \
"$BASE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \
'run-p start:worker-test start:test-realms' \
"$NODE_TEST_REALM_READY" \
'wait'
Loading