# Features — datafy_powersync

Evidence date: 2026-10-17. Revision: `main` `0aa51f9` (2025-02-25, Jaco Brits, "added abolute paths"). Full SHA `0aa51f98ff6068260c0a96ccac1d1f47310e769e`.

The source repository does not list features. `README.md` is empty. Status below is from the git tree and history. No roadmap file was found.

## Current features (main)

| Feature | What it does | Evidence | Status |
|---|---|---|---|
| Root PowerSync service | `journeyapps/powersync-service:latest`, command `start -r unified`, port `${PS_PORT}` | `docker-compose.yaml` | Implemented declaration. A recorded successful run is not in git |
| Mongo bucket store | Replica set `rs0`, database name `powersync_datafy`, port 27017 | `ps-mongo.yaml`, `PS_MONGO_URI` in `docker-compose.yaml` | Implemented. Root service does not wait for init |
| Env-based Postgres source | URI built from `PG_DATABASE_*` | `docker-compose.yaml`, `example.env`, `config/powersync.yaml` | Implemented. Host substitution is missing `$` (see `prd.md` FR-003) |
| Service config with `!env` | Postgres, Mongo, and port from `PS_*` variables. Sync rules from a file | `config/powersync.yaml` | Implemented file. Root compose does not set `POWERSYNC_CONFIG_PATH` |
| Four-table sync rules | `global`, `user_tasks`, `user_stores` | `config/sync_rules.yaml` | Implemented SQL. Same text copied in several places (below) |
| Supabase client auth flag | `supabase: true`, audiences `powersync-dev` and `powersync` | `config/powersync.yaml` and the other service YAML files | Implemented flag. JWKS URI is commented |
| Telemetry left on | `disable_telemetry_sharing: false` | `config/powersync.yaml` | Implemented |
| Reusable service snippets | PowerSync, Mongo, Postgres definitions for the demos | `services/*.yaml` | Implemented. Root `docker-compose.yaml` does not extend them |
| Postgres logical WAL for demos | `postgres` command includes `-c wal_level=logical` | `services/postgres.yaml`, `v2/docker-compose.yaml` | Implemented flag. **Inferred** that this is for PowerSync replication. No comment in those files states the reason. `docker-compose_old.yaml` uses the same flag on a commented Postgres service |
| v2 stack | PowerSync plus local Postgres, Mongo commented out, Ubuntu absolute paths | `v2/docker-compose.yaml` | Implemented file. Host `/home/ubuntu/datafy_powersync` is not verified from this machine |
| RDS as v2 source | Replication URI to `datafy-supabase-databasecluster...eu-west-1.rds.amazonaws.com` | `v2/config.yaml`, `v2/powersync.yaml`, `v2/config/config.yaml`, `v2/config/powersync.yaml` | Implemented. Password is in git and is omitted from this document set. `sslmode: disable` |
| Local Postgres bucket store | `storage.type: postgresql` | The four `v2/` YAML files | Implemented. Host is `localhost` in three files and `postgres` in `v2/config/config.yaml`. Port 5431 in all four |
| Node todo demo | React routes for lists, a list editor, and a SQL console. Backend image built from GitHub | `demos/nodejs/` | Implemented demo. Sync rules and env vars do not match the todo schema (`prd.md` FR-011, FR-012) |
| Anonymous demo login | Random `ps_user_id` in `localStorage`, token from the demo backend | `DemoConnector.ts`, demo README | Implemented in the client. Backend source is not in this repo |
| Demo schema `lists` / `todos` | Tables, two seed rows, publication `powersync` | `demos/nodejs/init-scripts/setup.sql` | Implemented SQL. Runs only on first Postgres volume init (documented in the demo README) |
| Supabase demo compose | PowerSync on the demo config, JWT secret env, Mongo include | `demos/supabase/docker-compose.yaml` | Implemented. External Supabase network is commented out |
| Mackup compose | Same service plus `demo-client` on `4170:4173` and external network `supabase_network_powersync_datafy` | `Mackup.yml` | Implemented compose file. The name is not explained. Dockerfile path is `demo-client.dockerfile` with no `context`, and that file is not next to `Mackup.yml` |
| Supabase demo client image | Clones `powersync-ja/powersync-js` and builds `demos/react-supabase-todolist` | `demos/supabase/demo-client.dockerfile` | Implemented Dockerfile. No git ref |
| Older single-file config | Inline URI and inline sync rules, port 8080, Mongo storage | `config.yaml` | Implemented file. No compose `volumes` or `include` points at it |
| Scratch notes | Alternate YAML shape (`database`, `http`, `auth`) and a `/home/ubuntu/powersync` compose snippet | `old.txt` | Implemented text file. Not wired into Compose |
| Previous root stack | PowerSync on 8080, volume `./config.yml`, Mongo, Postgres commented out | `docker-compose_old.yaml` | Implemented file. `config.yml` is not in git. Not included by the current root compose |
| Stock ignore file | Bitbucket's example `.gitignore` | `.gitignore` | Implemented. Does not ignore `.env` or `*.yaml` secrets |
| Empty readme | Root `README.md` | 0 bytes | Implemented empty file |

## Copies of the same sync SQL

The bucket SQL for `task`, `store`, `app_user`, and `store_user_link` is present in:

- `config/sync_rules.yaml`
- `config.yaml` (`sync_rules.content`)
- `v2/config.yaml`, `v2/powersync.yaml`, `v2/config/config.yaml`, `v2/config/powersync.yaml`
- `demos/supabase/config/sync_rules.yaml`
- `old.txt` (labelled there as `sync-rules.yaml`)

Provenance: **Implemented** duplicates. A change to one file does not update the others. Nothing in git generates them.

## Completed, from git history

Subjects are the commit messages. Only `037261a` and `0aa51f9` were diffed for this document.

| When | Commit | What the message says |
|---|---|---|
| 2025-02-22 | `07fc67c` | Initial commit |
| 2025-02-22 | `30dd7ef` | update powersync |
| 2025-02-22 | `72e42cb` | update docker |
| 2025-02-22 | `1ef0669` | add extra mountings |
| 2025-02-24 | `76d2c73` | update config |
| 2025-02-25 | `a78fa29` | update docker |
| 2025-02-25 | `9f0d2a1` | Add Bridge in |
| 2025-02-25 | `c04c39e` | aded mongo params |
| 2025-02-25 | `169372e` | update values |
| 2025-02-25 | `2528176` | testing supabase conection |
| 2025-02-25 | `2db0d21` | update naming |
| 2025-02-25 | `3397b03` | update |
| 2025-02-25 | `483a8ac` | add net work id |
| 2025-02-25 | `51dd422` | Update |
| 2025-02-25 | `5a9e6a4` | updates |
| 2025-02-25 | `22e0b35` | up date mongo |
| 2025-02-25 | `f38a59e` | version 2 |
| 2025-02-25 | `bbd3f4e` | remove services |
| 2025-02-25 | `037261a` | use postgress as the store. Diff: `v2/config.yaml`, `v2/docker-compose.yaml`. At HEAD, v2 bucket storage is Postgres and the Mongo services in that compose file are commented out |
| 2025-02-25 | `a8bcc79` | yaml updated |
| 2025-02-25 | `8bfceb0` | update config |
| 2025-02-25 | `7f2f06d` | update yaml request |
| 2025-02-25 | `0bf89cd` | new files updated |
| 2025-02-25 | `68422ea` | update config |
| 2025-02-25 | `15d0f2d` | new powersync |
| 2025-02-25 | `0aa51f9` | added abolute paths. Diff: only `v2/docker-compose.yaml` |

Author of every commit: Jaco Brits `<jaco@netstart.co.za>`.

## Planned

No planned-feature list exists.

Comments that describe unused options:

| Item | Where | Status |
|---|---|---|
| `TODO use specific sync rules here` | `config.yaml` and the `v2/` YAML files, immediately above the four-table SQL | The SQL is present. The TODO is stale relative to the lines under it. **Documented** comment |
| `jwks_uri: [TODO]` | `config.yaml` and `v2/` YAML | Not set |
| Split API and sync containers | Comments in `docker-compose.yaml` and `services/powersync.yaml` | Not the selected command |
| `block_local_jwks: true` | Comment in `config/powersync.yaml` says production should enable it | Commented out |
| Multiple Postgres connections | Comment in `config/powersync.yaml`: "Multiple connection support is on the roadmap" | Vendor comment. Not configured |
| Postgres service in `docker-compose_old.yaml` and Mongo in `v2/docker-compose.yaml` | Commented YAML | Not part of the active service list in those files |

## In development

Nothing on `main` is marked as a draft branch. The tree still contains overlapping stacks (`docker-compose.yaml`, `docker-compose_old.yaml`, `v2/`, `services/`, demos). Provenance: **Implemented** files side by side. Calling the set "in development" would be a product judgement. It is not stated in the repo.

## Recently changed

The only change on the tip commit is the absolute-path edit in `v2/docker-compose.yaml` (`0aa51f9`, 2025-02-25). No later commit is on `origin/main`.

## Deprecated or removed

| Item | Evidence | Status |
|---|---|---|
| Mongo as the v2 bucket store | Commented in `v2/docker-compose.yaml` and in the `v2/` service YAML (`type: mongodb` / `powersync_demo` commented; `type: postgresql` active) | Commented out in `v2/`. Still active in the root stack |
| `docker-compose_old.yaml` | File remains. Current root file does not include it | Superseded only by the existence of `docker-compose.yaml`. Nothing deletes or labels the old file |
| `./config.yml` mount | `docker-compose_old.yaml` | The source file is not in git |
| Root compose use of `services/powersync.yaml` | Commit message `bbd3f4e` "remove services" | The `services/` directory is still in git and the demos still extend it. What that commit removed was not re-diffed beyond the message |

## Not in this repository

These show up in other Silicon Ark sets and are absent here:

- Flutter or webportal screens, Rep/Admin roles, `active = 1` on `store_user_link`.
- Survey, promo, KaChing, and product sync buckets documented for `flutter_app`.
- The hosted project URL `https://67c1c2c9586c8d282a0669f2.powersync.journeyapps.com`.
- Table DDL, RLS, and metric jobs documented for `datafy-supabase-functions`.
- Sonar project key and `sonarqube_scan.bat` named by the 2026-09-28 scan.

Provenance: absent from this git tree. Cross-repo identity is **Unknown / Requires Confirmation**.
