Milestones
List view
The admin enables and disables a connection through Platform's PATCH /api/v1/connections/{id} with body {active} only, and reads the audit log with filters, paging and event detail, where PLAN_FEATURE_REQUIRED is shown as a plan limit. A Platform liveness check means a Studio outage never blocks Platform sign-in, and the mode can be switched in place. Includes recorded fixtures and a walkthrough. Enable and disable is blocked upstream until a Platform release ships the route.
No due date•10/10 issues closedAn admin picks Platform on the login page, signs in through Keycloak and lands in a Platform shell: they list the install's connections, see who holds access to each, grant a user access by picking them from Platform's Keycloak directory, change the level or expiry, and remove access. A non-admin is refused with a clear message. Nothing is created, edited or deleted on the phone, and Studio mode is unchanged. Needs a Docker/VM installer install with mobile enabled, or Railway platform-dev.
No due date•11/11 issues closedAn admin gives or revokes a user's read or write access to a connection from the phone, and reads the governed query audit, through a Platform v1 API that accepts the Keycloak access token. Done when: Platform v1 bearer routes exist (P-01, P-02), and M9-99 passes: an admin can list a connection's grants, search the directory, set level and expiry, revoke with confirmation, and filter the governed audit log, with each change recorded in Platform as coming from the mobile app.
No due date•1/1 issues closedType and run statements on a phone: an editor with SQL highlighting and a keyboard accessory row, a catalog picker, run and cancel, a fail-closed write confirmation, behaviour on backgrounding, statement history kept on the device, and, once Studio offers statement analysis (S-06), scripts and the classifier-based confirmation. Done when: M5-99 passes: a user can open the editor on a connection, run a statement, cancel a long run, see QUERY_ERROR text from the database, is asked to confirm before anything that is not on the read-only allowlist (with stronger wording on production), sees an honest 'interrupted' state after backgrounding during a run, re-runs a statement from on-device history, and opens a generated SELECT from the object browser in the editor. M5-04, M5-05 and M5-06 (blocked on S-06) may ship after the milestone closes.
No due date•26/26 issues closedShow rows on a phone: a reusable result view (card list, compact table, stats strip, load more), Studio-compatible cell rendering, client-side masking with Studio's role rules, row detail with copy, 'View rows' from the object browser and key values from the key browser, with no Studio prerequisite. Done when: M4-99 passes: tapping a SQL table or view, a MongoDB collection or a Redis key in the object browser shows its first page of rows or its value in the result view, masked columns are masked for a 'user' role as Studio's web grid masks them (with Studio's open masking bugs #1915 and #1917 fixed, not copied), load more works where providerMeta.supportsResultPagination and pagination.hasMore allow it, and NULL, JSON, binary and big-number cells render as Studio renders them.
No due date•12/12 issues closedLook inside a connection, read-only: containers, kind counts, object lists, object detail (columns, indexes, foreign keys), object source, object search and the key browser for key-value engines, all driven by provider-meta and cached per connection to protect the shared 120 per minute budget. Done when: M3-99 passes: against tool/studio-dev with SQLite, Postgres and Redis, a user can drill from a connection to a table and read its columns, indexes, foreign keys and the source of a view or function, search objects by name, and page Redis keys by pattern. Every new reader field has a recorded fixture or a hand-written mock per engine shape (zero, one and two container levels).
No due date•14/14 issues closedThe first real screen after sign-in: a reworked app shell that shows who the user is, and the grouped, searchable list of the connections Studio lets this user open, with environment and read-only markers, governance states, a connection check and a connection switcher, on an HTTP layer aligned with Studio's semantics. Done when: M2-99 passes on Android and iOS against tool/studio-dev and its governed profile (M2-19): a signed-in user sees their username and role, the connection list grouped by operator group with search, production and read-only badges, a distinct 'temporarily unavailable' state for 503 GOVERNANCE_UNAVAILABLE that keeps the last list, an offline banner, an on-demand connection check, an app-bar connection switcher that remembers the last connection, and sign-out that writes Studio's logout audit line. A 401 from /api/auth/me never signs the user out on its own. Issues blocked on Studio (M2-13, M2-14) may ship after the milestone closes.
No due date•45/45 issues closed