# Features — intersect_cloud (Simpleflow Hub)

Evidence date: 2026-10-12. Source: `main` at `6efd925` unless a row says `prod`.

Status words:

- **Current** — present on `main` and reachable from `lib/index.dart` or imported by a page that is.
- **Present, not routed** — source exists; `lib/index.dart` does not export it, and imports were only found inside its own folder.
- **Pipeline** — Bitbucket behaviour, not a screen.
- **Not found** — named by the onboarding issue or by a dependency, and absent from the inspected tree.

There is no features document in the repository. Nothing in git is marked planned, deprecated, or removed except the APK deletion in history.

## Current

| Feature | What it does | Where |
|---|---|---|
| Email and password sign-in | Supabase `signInWithPassword`, then tenant and role load | `lib/pages/auth/login/`, `lib/auth/supabase_auth/email_auth.dart` |
| Forgot password | `resetPasswordForEmail` | `lib/pages/auth/forgot_password/`, `supabase_auth_manager.dart` |
| Reset password page | Route takes a `token` | `lib/pages/auth/reset_password/`, `nav.dart` |
| Create password / OTP | OTP for an existing user (`shouldCreateUser: false`) | `lib/pages/auth/create_user_password/`, `lib/custom_code/actions/get_otp.dart` |
| Splash | Hides after 1 second | `lib/main.dart` |
| Dashboard | Home tab | `lib/pages/dashboard/dashboard/` |
| Profile | Route `profile`. Side nav "My Profile" | `lib/pages/profile/profile/` |
| Notifications | Bottom-nav tab | `lib/pages/notifications/notification/` |
| Messages and view message | Routes, badge on side nav | `lib/pages/messages/` |
| Tasks | Bottom-nav tab. Implementation used by the route is `general_forms/tasks` | `lib/index.dart` |
| Process Hub | Tenant processes, filter chips, form lists | `lib/pages/process_hub/process_hub/`, `view_processes` |
| Job cards | List via `JobCardCall`; PDF actions `create_job_card_pdf` and `create_job_card_basic_pdf` | `api_calls.dart`, `lib/custom_code/actions/` |
| Building inspection | Hub branch and PDF action | `process_hub_widget.dart`, `create_building_inspection_pdf.dart` |
| Equipment inspection | Hub branch and PDF action. Assign-form type is spelled `EquimentInspectionAssignForm` | `process_hub_widget.dart`, `create_equipment_inspection_pdf.dart` |
| Scheduled inspection | Hub branch on the assign-form table | `process_hub_widget.dart` |
| Bookings calendar | Route `calendar`. More menu label "Booking Schedule" | `lib/pages/general_forms/bookings/calendar/` |
| Assets and parts | Route `assetList` | `lib/pages/general_forms/asset_register/asset_list/` |
| Documents | Route `documentList`. Access RPC `insert_document_access` and `get_user_documents_details` | `document_list`, `api_calls.dart` |
| Support tickets | Route `supportTicketList`, the only route with `requireAuth: true` | `nav.dart`, `lib/pages/general_forms/support_ticket/` |
| Reports | Route `reports`, job-card queries | `lib/pages/reporting/reports/` |
| System-admin management | Tenants, users, clients. Guard `systemRole == 'Admin'` | `lib/pages/management/` |
| Tenant-admin management | Users and clients. Guard `tenantRole == 'Admin'` | `lib/pages/management/management_user/`, `users/user_list_tenant_admin/`, `clients/clients_list_user/` |
| Tenant colours | Six colour fields applied at login and stored securely | `login_widget.dart`, `app_state.dart` |
| Pest Elite forms | Site form, action report, recommendation report, service report, checklists (rodent, cockroach, flies, SPI) and trap insert RPCs | `lib/pages/pest_elite/`, `api_calls.dart` |
| Plateau forms | Service report, non-conformance, corrective action, plus PDF actions | `lib/pages/plateau/`, `create_plateau_*.dart` |
| Signatures | Four signature pad widgets and `save_signature_action` | `lib/custom_code/widgets/signature_pad*.dart` |
| File upload | Buckets `uploads` and `pdfUploads` | `upload_file.dart`, `upload_file_jpg.dart` |
| Custom email call | RPC `send_custom_email` | `api_calls.dart` |
| Deep link | Scheme `simpleflowhub`, host `simpleflowhub.com` | Android manifest, iOS `Info.plist` |
| Web, Android, iOS, Windows projects | Web is what the pipeline ships | `web/`, `android/`, `ios/`, `windows/` |
| iOS image notification extension | `ImageNotification` target | `ios/ImageNotification/` |
| Committed web build | Pipeline uploads this tree | `build/web/` |

## Present, not routed

These folders are on `main`. They are not exported from `lib/index.dart`. A search for imports of `pages/user_management/` and of the variant hub names only found files inside those same folders.

| Feature | Where | Note |
|---|---|---|
| Second user-management tree | `lib/pages/user_management/` | Parallel to `lib/pages/management/`, which is the tree the router uses |
| Process Hub v1 | `lib/pages/process_hub/process_hub_v1/` | Not in `nav.dart` |
| Process Hub base | `lib/pages/process_hub/process_hub_base/` | Not in `nav.dart` |
| Process Hub Pest Elite copy | `lib/pages/process_hub/process_hub_pest_elite/` | The live hub imports Pest Elite forms from `view_processes` instead |
| Process Hub Plateau copy | `lib/pages/process_hub/process_hub_plateau/` | Same |
| Authentication landing | `lib/pages/authentication/user_landing/` | Sets `siteLink` to `https://demo.simpleflowhub.app/`. Not exported by `index.dart` |
| Tasks under `lib/pages/tasks/` | `lib/pages/tasks/` | The routed Tasks widget is `lib/pages/general_forms/tasks/` |
| Alternate pipeline file | `bitbucket-pipelines copy 2.yml` | Builds with `cirrusci/flutter:3.10.0`, runs `flutter analyze`, builds web, deploys staging only. Bitbucket does not execute this filename |

`lib/pages/nothing_found/`, `contact_detail/`, `customer_forms/`, `building_inspection_forms/`, `equipment_inspection_forms/`, `job_card/`, and `my_profile/` also exist. They were not each checked for a caller. Treat reachability of those folders as **Unknown** unless a row above already places them.

## Pipeline and local release helpers

| Feature | Status | Evidence |
|---|---|---|
| Deploy `main` to staging | **Pipeline.** Build step commented out. Uploads `./build/web` with `$AWS_ARN` | `bitbucket-pipelines.yml` |
| Deploy `prod` to production | **Pipeline.** Same file, `$AWS_PROD_ARN`. The `prod` branch tip is older than `main` | `bitbucket-pipelines.yml`, `git ls-remote` |
| `commit.bat` | Local script: `flutter pub get`, `flutter build web`, `git add .`, commit with the first argument, `git push origin` | `commit.bat` |

## Changed in the fetched history

The window is 16 commits, 2024-11-06 through 2025-01-22. Older parent `0dcad9d` was not fetched.

| When | Commit | What changed that is still visible |
|---|---|---|
| 2024-11-06 | `232f179` | Message "remove apk". The diff adds the Flutter project and also adds `app-release.apk` under `build/app/outputs/apk/release/` |
| 2024-11-06 | `56ac800` | Removes that APK |
| 2024-11-25 | `de61736` | "pestelite deploy": job-card item types and Pest Elite checklist edits, plus a new `build/web` bundle |
| 2024-12-10 | `5e27cff` | "qa deploy": Plateau list tables, calendar struct, API calls, plus a new web bundle |
| 2024-12-19 | `e1365c9` | Adds `assets/environment_values/environment.json` |
| 2025-01-22 | `6efd925` | Current tip, message "fixes update" |

## On `prod`, not the same as `main`

`prod` at `f72dda9` (2024-10-24):

- Hardcodes `https://alb.simpleflowhub.app` in `lib/backend/supabase/supabase.dart`.
- Does not have `lib/environment_values.dart` or `assets/environment_values/environment.json`.
- `Supabase.initialize` on that branch does not set `AuthFlowType.implicit`. `main` does.
- Pipeline YAML on that commit matches the deploy steps on `main` (build commented out; `prod` branch uses `$AWS_PROD_ARN`).

A full file diff was not reviewed. `git diff --stat` reported on the order of ten thousand paths, largely because the trees diverged and because `build/` is committed.

## Not found

| Item | Evidence |
|---|---|
| `sonar-project.properties`, `sonarqube_scan.bat` | OVER-160 listed them. `git ls-files` has no sonar path. `.gitignore` does not name them |
| Linux and macOS Flutter projects | No `linux/` or `macos/` directory |
| Apple sign-in screen | Package is in `pubspec.yaml`. No page calls `signInWithApple` |
| Direct use of Riverpod, Hive, or sqflite | Declared in `pubspec.yaml`. No import under `lib/` |
| Written roadmap, changelog, or deprecated-feature list | README is the FlutterFlow starter. No other product markdown |
| Store listing or release notes | Not in git |

## Planned

No planned feature is written in the repository. **Unknown / Requires Confirmation** whether any of the unwired page copies are unfinished work or abandoned copies.
