Skip to content

feat: safe mode for iOS#626

Merged
datlechin merged 2 commits intomainfrom
feat/ios-safe-mode
Apr 7, 2026
Merged

feat: safe mode for iOS#626
datlechin merged 2 commits intomainfrom
feat/ios-safe-mode

Conversation

@datlechin
Copy link
Copy Markdown
Member

Summary

  • 3-level safe mode: Off, Confirm Writes, Read-Only
  • Per-connection setting via Picker in connection form
  • Enforcement across all write surfaces: data browser, row detail, query editor
  • Toolbar indicator: lock (red) for read-only, shield (orange) for confirm writes
  • Write query detection blocks INSERT/UPDATE/DELETE/DROP/ALTER/CREATE/TRUNCATE
  • Backward compatible: existing isReadOnly=true connections become .readOnly

Test plan

  • Set "Off" — all operations work normally
  • Set "Confirm Writes" — delete/insert show confirmation, SELECT runs freely
  • Set "Confirm Writes" — write queries show confirmation dialog before executing
  • Set "Read-Only" — insert/delete buttons hidden, Edit hidden in row detail
  • Set "Read-Only" — write queries blocked with alert in query editor
  • Lock/shield icon appears in toolbar
  • Edit existing connection with isReadOnly=true — shows as Read-Only
  • iCloud sync preserves safeModeLevel

@datlechin datlechin merged commit f829618 into main Apr 7, 2026
2 checks passed
@datlechin datlechin deleted the feat/ios-safe-mode branch April 7, 2026 15:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant