supadump 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ include README.md
2
+ include pyproject.toml
@@ -0,0 +1,184 @@
1
+ Metadata-Version: 2.4
2
+ Name: supadump
3
+ Version: 1.0.0
4
+ Summary: Snapshot your entire Supabase project — schema, data, functions, templates, storage, secrets, auth, realtime, vault, branches, and more
5
+ License: MIT
6
+ Project-URL: Homepage, https://gitlab.com/HYPER12755/supadump
7
+ Project-URL: Repository, https://gitlab.com/HYPER12755/supadump
8
+ Keywords: supabase,backup,disaster-recovery,cloud-migration,database-snapshot,postgresql,edge-functions,infrastructure-as-code,data-portability,business-continuity
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: System Administrators
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Database
17
+ Classifier: Topic :: System :: Archiving
18
+ Classifier: Topic :: System :: Systems Administration
19
+ Requires-Python: >=3.9
20
+ Description-Content-Type: text/markdown
21
+
22
+ <p align="center">
23
+ <img src="https://img.shields.io/badge/supadump-v1.0-%233FCF8E?style=flat-square&labelColor=%23181818" alt="version">
24
+ <img src="https://img.shields.io/badge/python-3.9%2B-%233776AB?style=flat-square&labelColor=%23181818" alt="python">
25
+ <img src="https://img.shields.io/badge/license-MIT-%23D9E06B?style=flat-square&labelColor=%23181818" alt="license">
26
+ <img src="https://img.shields.io/badge/16%20modules-%2394EBDC?style=flat-square&labelColor=%23181818" alt="modules">
27
+ </p>
28
+
29
+ <h1 align="center">supadump</h1>
30
+ <p align="center"><strong>One command. Your entire Supabase project. On disk.</strong></p>
31
+ <p align="center">
32
+ Schema · Data · Edge Functions · Email Templates · Storage · Secrets ·<br>
33
+ Auth Providers · Roles & Grants · Realtime · Vault · Branches ·<br>
34
+ Service Versions · Network & SSL · Metadata · Manifest
35
+ </p>
36
+
37
+ ---
38
+
39
+ ## Why supadump?
40
+
41
+ **Supabase has no built-in backup.** You can `pg_dump` the database, but that leaves functions, storage, auth config, templates, secrets, and a dozen other critical pieces stranded in the cloud. If your project goes down, gets corrupted, or you just need to migrate — you're stitching together half a dozen tools, scripts, and API calls.
42
+
43
+ **supadump changes that.** It's a single Python script that talks to the Supabase Management API and your local Supabase CLI to snapshot *every layer* of your project.
44
+
45
+ Think of it as `mysqldump`, but for all of Supabase.
46
+
47
+ ---
48
+
49
+ ## What it saves
50
+
51
+ | # | Module | What you get | Flag |
52
+ |---|--------|-------------|------|
53
+ | 1 | **Database Schema** | 117 tables, 648 functions, 88 triggers, 203 RLS policies, 32 cron jobs, indexes, extensions, enums, views, publications, event triggers, foreign wrappers | `--db` |
54
+ | 2 | **Table Data** | All rows via `pg_dump --data-only` | `--data` |
55
+ | 3 | **Edge Functions** | Raw TypeScript source of every function | `--functions` |
56
+ | 4 | **Email Templates** | HTML templates, subject overrides, SMTP config | `--templates` |
57
+ | 5 | **Storage** | Bucket metadata, folders, and every uploaded file | `--storage` |
58
+ | 6 | **Secrets & Keys** | Anon key, service role key, JWT secret | `--secrets` |
59
+ | 7 | **Auth Providers** | OAuth client IDs/secrets, rate limits, hooks, MFA config | `--auth-providers` |
60
+ | 8 | **Roles & Grants** | DB roles, table/function grants, default privileges | `--roles-grants` |
61
+ | 9 | **Realtime** | Publication tables | `--realtime` |
62
+ | 10 | **Vault Secrets** | Secret names & metadata (values redacted) | `--vault` |
63
+ | 11 | **Auth Schema** | `auth.*`, `storage.*`, `realtime.*` table structures | `--auth-schema` |
64
+ | 12 | **Service Versions** | Postgres, GoTrue, PostgREST, Realtime, Storage API, Edge Runtime | `--service-versions` |
65
+ | 13 | **Project Metadata** | Name, org, region, status | `--metadata` |
66
+ | 14 | **Network & SSL** | IP restrictions, SSL enforcement | `--network-ssl` |
67
+ | 15 | **Branches** | Preview branch list | `--branches` |
68
+ | 16 | **Manifest** | SHA256 checksums of every dumped file | `--manifest` |
69
+
70
+ ---
71
+
72
+ ## Quick start
73
+
74
+ ```bash
75
+ # Install the Supabase CLI (https://supabase.com/docs/guides/cli)
76
+ # Link your project
77
+ supabase login
78
+ supabase link --project-ref your-ref
79
+
80
+ # Dump everything
81
+ supadump
82
+
83
+ # Dump specific pieces
84
+ supadump --db # schema only
85
+ supadump --functions --templates # edge functions + email templates
86
+ supadump --all --output ./backup # full snapshot to custom dir
87
+
88
+ # Verify remote vs local
89
+ supadump --verify
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Why you need this
95
+
96
+ **You deploy to production.** You have RLS policies, edge functions, email templates, and a dozen auth providers configured through the dashboard. If you lose access, how long would it take to reconstruct every piece?
97
+
98
+ **You migrate between projects.** You're moving from free tier to pro, or from one org to another. You need schema *and* functions *and* auth config *and* storage — all at once, atomically.
99
+
100
+ **You want version control for your infra.** Dump to `./backup`, commit to git, and pin every layer of your project to a point in time. `git diff` your Supabase config.
101
+
102
+ **You sleep better at night.** One script. One command. Everything on disk.
103
+
104
+ ---
105
+
106
+ ## Usage
107
+
108
+ ```
109
+ supadump # snapshot everything
110
+ supadump --db # schema only (no data)
111
+ supadump --data # user data only (rows)
112
+ supadump --storage # bucket files only
113
+ supadump --functions # edge functions only
114
+ supadump --templates # email templates only
115
+ supadump --secrets # API keys & secrets
116
+ supadump --auth-providers # OAuth configs
117
+ supadump --roles-grants # DB roles & grants
118
+ supadump --realtime # realtime publication
119
+ supadump --vault # vault secrets meta
120
+ supadump --metadata # project info
121
+ supadump --network-ssl # network + SSL
122
+ supadump --branches # preview branches
123
+ supadump --auth-schema # auth/storage/realtime table structures
124
+ supadump --service-versions # GoTrue/PostgREST/etc versions
125
+ supadump --db --data # schema + data only
126
+ supadump --all --output ./backup # full snapshot
127
+ supadump --verify # compare remote vs local
128
+ supadump --manifest # checksums only
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Requirements
134
+
135
+ - **Python 3.9+**
136
+ - **Supabase CLI** (`supabase`) — linked to your project via `supabase link`
137
+ - **Supabase access token** with `manage_projects` scope (set via `SUPABASE_ACCESS_TOKEN` or `supabase login`)
138
+ - **Docker** (optional) — required only for `--data` (table rows) and `--storage` (file downloads). Metadata-only operations work without it.
139
+
140
+ ---
141
+
142
+ ## Security
143
+
144
+ - Vault secret values are **never saved** — only names and metadata
145
+ - Secrets are written to `.env` files — **store them offline, encrypt them, never commit them**
146
+ - The script passes your access token via environment variable, never on the command line
147
+ - Review the manifest (`--manifest`) to verify file integrity after dumping
148
+
149
+ ---
150
+
151
+ ## Architecture
152
+
153
+ ```
154
+ supadump
155
+ ├── ──db → supabase/migrations/schema.sql
156
+ ├── ──data → supabase/migrations/data.sql (Docker)
157
+ ├── ──functions → supabase/functions/{name}/index.ts
158
+ ├── ──templates → supabase/templates/{name}.html
159
+ ├── ──storage → supabase/.temp/storage/ (Docker)
160
+ ├── ──secrets → supabase/secrets/secrets.env
161
+ ├── ──auth-providers → supabase/secrets/auth_providers.json
162
+ ├── ──roles-grants → supabase/migrations/roles_grants.sql
163
+ ├── ──realtime → supabase/migrations/realtime_tables.sql
164
+ ├── ──vault → supabase/secrets/vault_secrets.json
165
+ ├── ──metadata → supabase/secrets/project_metadata.json
166
+ ├── ──network-ssl → supabase/secrets/network_*.json
167
+ ├── ──branches → supabase/secrets/branches.json
168
+ ├── ──auth-schema → supabase/migrations/auth_schema.sql
169
+ ├── ──service-versions → supabase/secrets/service_versions.json
170
+ ├── ──verify → comparison table (stdout)
171
+ └── ──manifest → supabase/manifest.json
172
+ ```
173
+
174
+ ---
175
+
176
+ ## Trending Topics
177
+
178
+ `backup and disaster recovery` `cloud data migration` `business continuity` `infrastructure backup` `database replication` `SaaS data protection` `project snapshot` `cloud infrastructure management` `data portability` `vendor lock-in prevention` `disaster recovery planning` `cyber resilience` `multi-cloud strategy` `database schema export` `edge function backup` `Supabase backup` `PostgreSQL dump` `infrastructure as code` `cloud migration tools` `data sovereignty`
179
+
180
+ ---
181
+
182
+ ## License
183
+
184
+ MIT
@@ -0,0 +1,163 @@
1
+ <p align="center">
2
+ <img src="https://img.shields.io/badge/supadump-v1.0-%233FCF8E?style=flat-square&labelColor=%23181818" alt="version">
3
+ <img src="https://img.shields.io/badge/python-3.9%2B-%233776AB?style=flat-square&labelColor=%23181818" alt="python">
4
+ <img src="https://img.shields.io/badge/license-MIT-%23D9E06B?style=flat-square&labelColor=%23181818" alt="license">
5
+ <img src="https://img.shields.io/badge/16%20modules-%2394EBDC?style=flat-square&labelColor=%23181818" alt="modules">
6
+ </p>
7
+
8
+ <h1 align="center">supadump</h1>
9
+ <p align="center"><strong>One command. Your entire Supabase project. On disk.</strong></p>
10
+ <p align="center">
11
+ Schema · Data · Edge Functions · Email Templates · Storage · Secrets ·<br>
12
+ Auth Providers · Roles & Grants · Realtime · Vault · Branches ·<br>
13
+ Service Versions · Network & SSL · Metadata · Manifest
14
+ </p>
15
+
16
+ ---
17
+
18
+ ## Why supadump?
19
+
20
+ **Supabase has no built-in backup.** You can `pg_dump` the database, but that leaves functions, storage, auth config, templates, secrets, and a dozen other critical pieces stranded in the cloud. If your project goes down, gets corrupted, or you just need to migrate — you're stitching together half a dozen tools, scripts, and API calls.
21
+
22
+ **supadump changes that.** It's a single Python script that talks to the Supabase Management API and your local Supabase CLI to snapshot *every layer* of your project.
23
+
24
+ Think of it as `mysqldump`, but for all of Supabase.
25
+
26
+ ---
27
+
28
+ ## What it saves
29
+
30
+ | # | Module | What you get | Flag |
31
+ |---|--------|-------------|------|
32
+ | 1 | **Database Schema** | 117 tables, 648 functions, 88 triggers, 203 RLS policies, 32 cron jobs, indexes, extensions, enums, views, publications, event triggers, foreign wrappers | `--db` |
33
+ | 2 | **Table Data** | All rows via `pg_dump --data-only` | `--data` |
34
+ | 3 | **Edge Functions** | Raw TypeScript source of every function | `--functions` |
35
+ | 4 | **Email Templates** | HTML templates, subject overrides, SMTP config | `--templates` |
36
+ | 5 | **Storage** | Bucket metadata, folders, and every uploaded file | `--storage` |
37
+ | 6 | **Secrets & Keys** | Anon key, service role key, JWT secret | `--secrets` |
38
+ | 7 | **Auth Providers** | OAuth client IDs/secrets, rate limits, hooks, MFA config | `--auth-providers` |
39
+ | 8 | **Roles & Grants** | DB roles, table/function grants, default privileges | `--roles-grants` |
40
+ | 9 | **Realtime** | Publication tables | `--realtime` |
41
+ | 10 | **Vault Secrets** | Secret names & metadata (values redacted) | `--vault` |
42
+ | 11 | **Auth Schema** | `auth.*`, `storage.*`, `realtime.*` table structures | `--auth-schema` |
43
+ | 12 | **Service Versions** | Postgres, GoTrue, PostgREST, Realtime, Storage API, Edge Runtime | `--service-versions` |
44
+ | 13 | **Project Metadata** | Name, org, region, status | `--metadata` |
45
+ | 14 | **Network & SSL** | IP restrictions, SSL enforcement | `--network-ssl` |
46
+ | 15 | **Branches** | Preview branch list | `--branches` |
47
+ | 16 | **Manifest** | SHA256 checksums of every dumped file | `--manifest` |
48
+
49
+ ---
50
+
51
+ ## Quick start
52
+
53
+ ```bash
54
+ # Install the Supabase CLI (https://supabase.com/docs/guides/cli)
55
+ # Link your project
56
+ supabase login
57
+ supabase link --project-ref your-ref
58
+
59
+ # Dump everything
60
+ supadump
61
+
62
+ # Dump specific pieces
63
+ supadump --db # schema only
64
+ supadump --functions --templates # edge functions + email templates
65
+ supadump --all --output ./backup # full snapshot to custom dir
66
+
67
+ # Verify remote vs local
68
+ supadump --verify
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Why you need this
74
+
75
+ **You deploy to production.** You have RLS policies, edge functions, email templates, and a dozen auth providers configured through the dashboard. If you lose access, how long would it take to reconstruct every piece?
76
+
77
+ **You migrate between projects.** You're moving from free tier to pro, or from one org to another. You need schema *and* functions *and* auth config *and* storage — all at once, atomically.
78
+
79
+ **You want version control for your infra.** Dump to `./backup`, commit to git, and pin every layer of your project to a point in time. `git diff` your Supabase config.
80
+
81
+ **You sleep better at night.** One script. One command. Everything on disk.
82
+
83
+ ---
84
+
85
+ ## Usage
86
+
87
+ ```
88
+ supadump # snapshot everything
89
+ supadump --db # schema only (no data)
90
+ supadump --data # user data only (rows)
91
+ supadump --storage # bucket files only
92
+ supadump --functions # edge functions only
93
+ supadump --templates # email templates only
94
+ supadump --secrets # API keys & secrets
95
+ supadump --auth-providers # OAuth configs
96
+ supadump --roles-grants # DB roles & grants
97
+ supadump --realtime # realtime publication
98
+ supadump --vault # vault secrets meta
99
+ supadump --metadata # project info
100
+ supadump --network-ssl # network + SSL
101
+ supadump --branches # preview branches
102
+ supadump --auth-schema # auth/storage/realtime table structures
103
+ supadump --service-versions # GoTrue/PostgREST/etc versions
104
+ supadump --db --data # schema + data only
105
+ supadump --all --output ./backup # full snapshot
106
+ supadump --verify # compare remote vs local
107
+ supadump --manifest # checksums only
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Requirements
113
+
114
+ - **Python 3.9+**
115
+ - **Supabase CLI** (`supabase`) — linked to your project via `supabase link`
116
+ - **Supabase access token** with `manage_projects` scope (set via `SUPABASE_ACCESS_TOKEN` or `supabase login`)
117
+ - **Docker** (optional) — required only for `--data` (table rows) and `--storage` (file downloads). Metadata-only operations work without it.
118
+
119
+ ---
120
+
121
+ ## Security
122
+
123
+ - Vault secret values are **never saved** — only names and metadata
124
+ - Secrets are written to `.env` files — **store them offline, encrypt them, never commit them**
125
+ - The script passes your access token via environment variable, never on the command line
126
+ - Review the manifest (`--manifest`) to verify file integrity after dumping
127
+
128
+ ---
129
+
130
+ ## Architecture
131
+
132
+ ```
133
+ supadump
134
+ ├── ──db → supabase/migrations/schema.sql
135
+ ├── ──data → supabase/migrations/data.sql (Docker)
136
+ ├── ──functions → supabase/functions/{name}/index.ts
137
+ ├── ──templates → supabase/templates/{name}.html
138
+ ├── ──storage → supabase/.temp/storage/ (Docker)
139
+ ├── ──secrets → supabase/secrets/secrets.env
140
+ ├── ──auth-providers → supabase/secrets/auth_providers.json
141
+ ├── ──roles-grants → supabase/migrations/roles_grants.sql
142
+ ├── ──realtime → supabase/migrations/realtime_tables.sql
143
+ ├── ──vault → supabase/secrets/vault_secrets.json
144
+ ├── ──metadata → supabase/secrets/project_metadata.json
145
+ ├── ──network-ssl → supabase/secrets/network_*.json
146
+ ├── ──branches → supabase/secrets/branches.json
147
+ ├── ──auth-schema → supabase/migrations/auth_schema.sql
148
+ ├── ──service-versions → supabase/secrets/service_versions.json
149
+ ├── ──verify → comparison table (stdout)
150
+ └── ──manifest → supabase/manifest.json
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Trending Topics
156
+
157
+ `backup and disaster recovery` `cloud data migration` `business continuity` `infrastructure backup` `database replication` `SaaS data protection` `project snapshot` `cloud infrastructure management` `data portability` `vendor lock-in prevention` `disaster recovery planning` `cyber resilience` `multi-cloud strategy` `database schema export` `edge function backup` `Supabase backup` `PostgreSQL dump` `infrastructure as code` `cloud migration tools` `data sovereignty`
158
+
159
+ ---
160
+
161
+ ## License
162
+
163
+ MIT
@@ -0,0 +1,38 @@
1
+ [build-system]
2
+ requires = ["setuptools>=69"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "supadump"
7
+ version = "1.0.0"
8
+ description = "Snapshot your entire Supabase project — schema, data, functions, templates, storage, secrets, auth, realtime, vault, branches, and more"
9
+ readme = "README.md"
10
+ license = { text = "MIT" }
11
+ requires-python = ">=3.9"
12
+ keywords = [
13
+ "supabase", "backup", "disaster-recovery", "cloud-migration",
14
+ "database-snapshot", "postgresql", "edge-functions",
15
+ "infrastructure-as-code", "data-portability", "business-continuity",
16
+ ]
17
+ classifiers = [
18
+ "Development Status :: 5 - Production/Stable",
19
+ "Environment :: Console",
20
+ "Intended Audience :: Developers",
21
+ "Intended Audience :: System Administrators",
22
+ "License :: OSI Approved :: MIT License",
23
+ "Operating System :: OS Independent",
24
+ "Programming Language :: Python :: 3",
25
+ "Topic :: Database",
26
+ "Topic :: System :: Archiving",
27
+ "Topic :: System :: Systems Administration",
28
+ ]
29
+
30
+ [project.urls]
31
+ Homepage = "https://gitlab.com/HYPER12755/supadump"
32
+ Repository = "https://gitlab.com/HYPER12755/supadump"
33
+
34
+ [project.scripts]
35
+ supadump = "supadump:main"
36
+
37
+ [tool.setuptools.packages.find]
38
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+