Repository navigation
Commit a251cf3
authored
feat(devex): add project templates, Python SDK demo, quickstart scrip… (#359)
* feat(devex): add project templates, Python SDK demo, quickstart scripts, and Vercel deploy config
- Add Templates page (/templates) to web dashboard with 6 project templates
(React SDK Demo, Kanban Board, Social Media Clone, Python SDK Demo,
TypeScript Quickstart, Python Quickstart)
- Add sidebar navigation link for Templates
- Create Python SDK demo project with full auth, CRUD, storage, mail demos
and unit tests (6/6 passing with mocks)
- Add interactive quickstart scripts for TypeScript and Python SDK scaffolding
- Configure Vercel deployment for all frontend examples
- Add CI workflow for example projects
- Add comprehensive DevEx documentation (examples/DEVEX.md)
* fix: use array form for providers prop in react-sdk-demo
* fix: remove enableEmailPassword prop not in installed @urbackend/react@0.1.1 types
* fix: use only supported props for @urbackend/react@0.1.1 UrAuth (providers, theme, onSuccess)
* fix: address security and compatibility findings
1. CI: add permissions: contents: read, persist-credentials: false,
include workflow in paths, pin Python deps
2. DEVEX.md: use immutable release tag + checksum verification for
quickstart scripts
3. main.py: use Optional[dict] instead of dict | None for Python 3.9 compat
4. Quickstart scripts: remove SECRET_KEY/PROJECT_ID from client scaffolds,
keep only publishable credentials
5. Python quickstart: fix base_url -> base parameter for UrBackendClient
* fix: address Node 20 requirement and vercel.json config
1. setup-ts-sdk.sh: require Node.js 20+ (needed for global File constructor)
2. vercel.json: replace unsupported top-level deploy object with per-app config
reference, each demo keeps its own vercel.json
* fix: address review findings - Node 20, vercel links, clipboard promises, storage cleanup, test mocks
1. setup-ts-sdk.sh: require Node.js 20+ for global File constructor
2. Templates.jsx: fix invalid deployUrl for quickstart-ts, add Promise
handling to copy buttons, card keyboard support already present
3. examples.yml: remove stray </write_to_file> artifact
4. DEVEX.md: replace placeholder checksums with actual SHA-256 digests
5. main.py: add remote file cleanup after storage upload
6. test_demo.py: remove module-level sys.modules override, use setup_method
* node.js version fix
* fix: remove stray </write_to_file> artifacts from examples.yml and vercel.json
* fix: pin @urbackend/sdk to 0.4.2 and urbackend to 0.1.0 in CI
- @urbackend/sdk@0.4.5 has broken exports, 0.4.2 works correctly
- urbackend Python package only has 0.1.0 on PyPI, not 0.1.1
* fix: use sign_up instead of signup in auth demo and tests
- Python SDK uses sign_up method name, not signup
- Updated all mock setups, side effects, and assertions
- Removed stray XML token from test_demo.py
* fix: build local SDK workspaces before example CI builds
- react-sdk-demo package-lock uses file: references to local SDKs
- Add build steps for sdks/urbackend-sdk and sdks/urbackend-react
* fix: use published npm packages instead of local file: references
- Pin @urbackend/sdk to 0.4.2 in all examples
- Pin @urbackend/react to 0.1.0 in react-sdk-demo
- Remove local file: references that require building SDKs first
- Update CI to build from root with workspace flags
* fix: use working-directory instead of --workspace for examples
- npm workspaces must be defined in root package.json
- examples are not in the workspaces array
- Use defaults.run.working-directory instead21 files changed
Lines changed: 4223 additions & 1336 deletions
File tree
- .github/workflows
- apps/web-dashboard/src
- components/Layout
- pages
- examples
- python-sdk-demo
- tests
- quickstart-scripts
- react-sdk-demo
- src
- sdk-kanban/client
- social-demo/client
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
84 | 93 | | |
85 | 94 | | |
86 | 95 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
84 | 88 | | |
85 | 89 | | |
86 | 90 | | |
| |||
0 commit comments