Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
4d01ecd
chore: ignore local workspace files
nothingnesses May 26, 2026
454fbcc
chore: remove test output caching
nothingnesses May 26, 2026
8c7d965
Add RustFS package to devenv
nothingnesses May 26, 2026
d57b8d1
Ignore Nix build result symlinks
nothingnesses May 26, 2026
c44c465
Replace services-flake services with RustFS
nothingnesses May 26, 2026
ed6a872
Verify RustFS identity during bootstrap
nothingnesses May 26, 2026
b9028ba
Rename storage configuration to S3
nothingnesses May 26, 2026
513432f
Migrate backend storage to AWS SDK
nothingnesses May 26, 2026
08f5c3f
Add storage bootstrap helper and tests
nothingnesses May 26, 2026
6e5359b
Add storage integration CI
nothingnesses May 26, 2026
4569ce5
Remove obsolete MinIO advisory ignore
nothingnesses May 26, 2026
8ffc653
Generalize Nix flake update workflow
nothingnesses May 26, 2026
050a97b
Update Nix flake inputs
nothingnesses May 27, 2026
bd3b24d
Update frontend dependencies
nothingnesses May 27, 2026
4e064cb
Update Rust dependencies
nothingnesses May 27, 2026
908c9f1
Document production deployment
nothingnesses May 27, 2026
566a223
Stop tracking frontend runtime config
nothingnesses May 27, 2026
e702ec7
Centralize local service defaults
nothingnesses May 27, 2026
a94031f
Regenerate frontend UnoCSS output
nothingnesses May 27, 2026
55e3035
Fix local app startup and upload flow
nothingnesses May 27, 2026
19a515d
Add Playwright test infrastructure
nothingnesses May 29, 2026
17497c9
Stub map tiles in Playwright tests
nothingnesses May 29, 2026
abc29c1
Add headless E2E runner
nothingnesses May 29, 2026
406aa64
Add authenticated E2E workflow coverage
nothingnesses May 29, 2026
d6c29d4
Add E2E CI job
nothingnesses May 29, 2026
6c1e835
Fix CI OIDC permissions
nothingnesses May 29, 2026
4f1c004
Use GitHub cache for Nix CI
nothingnesses May 29, 2026
8363385
Avoid service wrapper in default dev shell
nothingnesses May 29, 2026
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
9 changes: 6 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ SMTP_PASS=password
SMTP_FROM=noreply@example.com
COOKIE_SECRET=supersecretkeymustbeatleast64byteslongforsecurityreasons1234567890
FRONTEND_URL=http://localhost:3000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_URL=http://localhost:9000/
S3_ENDPOINT_URL=http://127.0.0.1:9000/
S3_ACCESS_KEY=memorymapdev
S3_SECRET_KEY=memorymapdevsecret
S3_BUCKET_NAME=memory-map
S3_REGION=us-east-1
S3_FORCE_PATH_STYLE=true
S3_PRESIGNED_URL_TTL_SECONDS=604800
SERVER_HOST=127.0.0.1
SERVER_PORT=8000
CORS_ALLOWED_ORIGINS=http://127.0.0.1:3000
67 changes: 67 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
id-token: write

env:
CARGO_TERM_COLOR: always
SKIP_DIRENV: "1"
Expand All @@ -22,6 +26,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: cd devenv && nix fmt -- --ci

check:
Expand All @@ -31,6 +38,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just check

clippy:
Expand All @@ -40,6 +50,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just clippy

test:
Expand All @@ -49,6 +62,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just test

doc:
Expand All @@ -58,6 +74,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just doc

deny:
Expand All @@ -67,6 +86,9 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just deny

frontend:
Expand All @@ -76,4 +98,49 @@ jobs:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just frontend-build

storage-integration:
name: Storage Integration
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just storage-ci
- name: Upload process-compose log
if: failure()
uses: actions/upload-artifact@v7
with:
name: process-compose-log
path: process-compose.log
if-no-files-found: ignore

e2e:
name: E2E
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
with:
use-flakehub: false
use-gha-cache: true
- run: nix develop ./devenv/ --command just e2e
- name: Upload E2E logs and artifacts
if: failure()
uses: actions/upload-artifact@v7
with:
name: e2e-artifacts
path: |
e2e-logs/
frontend/playwright-report/
frontend/test-results/
frontend/blob-report/
if-no-files-found: ignore
23 changes: 22 additions & 1 deletion .github/workflows/update-cargo-deps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,38 @@ jobs:
contents: write
pull-requests: write
steps:
- name: Generate app token
id: app-token
uses: actions/create-github-app-token@v3
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}

- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main

- name: Update Cargo dependencies
run: nix develop ./devenv/ --command cargo update

- name: Check for changes
id: diff
run: |
if git diff --quiet Cargo.lock; then
echo "changed=false" >> "$GITHUB_OUTPUT"
else
echo "changed=true" >> "$GITHUB_OUTPUT"
fi

- name: Disable git hooks
if: steps.diff.outputs.changed == 'true'
run: git config --unset core.hooksPath || true

- name: Create pull request
if: steps.diff.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ steps.app-token.outputs.token }}
commit-message: "chore: update Cargo dependencies"
branch: update-cargo-deps
title: "chore: update Cargo dependencies"
Expand Down
37 changes: 29 additions & 8 deletions .github/workflows/update-nixpkgs.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Update nixpkgs
name: Update Nix flake inputs

on:
schedule:
Expand All @@ -12,19 +12,40 @@ jobs:
contents: write
pull-requests: write
steps:
- name: Generate app token
id: app-token
uses: actions/create-github-app-token@v3
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}

- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main

- name: Update nixpkgs input
run: nix flake update nixpkgs --flake ./devenv/
- name: Update Nix flake inputs
run: nix flake update --flake ./devenv/

- name: Check for changes
id: diff
run: |
if git diff --quiet devenv/flake.lock; then
echo "changed=false" >> "$GITHUB_OUTPUT"
else
echo "changed=true" >> "$GITHUB_OUTPUT"
fi

- name: Disable git hooks
if: steps.diff.outputs.changed == 'true'
run: git config --unset core.hooksPath || true

- name: Create pull request
if: steps.diff.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "chore: update nixpkgs input"
branch: update-nixpkgs
title: "chore: update nixpkgs input"
token: ${{ steps.app-token.outputs.token }}
commit-message: "chore: update Nix flake inputs"
branch: update-nix-flake-inputs
title: "chore: update Nix flake inputs"
body: |
Automated weekly update of the `nixpkgs` flake input.
Automated weekly update of moving Nix flake inputs.
15 changes: 13 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
target/
data/
data/minio1/
data/pg1/
data/postgres/
data/rustfs/
.env
frontend/public/config.json
.direnv/
.cache/test-output/
/result
/result-*
process-compose.log
e2e-logs/
frontend/playwright-report/
frontend/test-results/
frontend/blob-report/
.claude/worktrees/
.codex/worktrees/
.pre-commit-config.yaml
.playwright-mcp/
*.code-workspace
10 changes: 1 addition & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,11 @@ just check # Run cargo check
just clippy # Run Clippy with warnings as errors
just deny # Check dependency licenses and advisories
just doc # Build docs and run ASCII/link checks
just test # Run tests with cached output
just test # Run tests
just frontend-build # Build the Trunk frontend
just verify # Run the full verification suite
```

## Tests

`just test` caches command output under `.cache/test-output/`. The cache key is
based on tracked file contents and the test arguments.

After creating a new source or test file, run `git add <file>` once so the cache
can see it. Use `just clean` to clear build artifacts and cached test output.

## Documentation And Text

Source and Markdown documentation are kept ASCII-only. Use plain ASCII
Expand Down
Loading
Loading