feat: Add comprehensive plugin documentation and advanced template system
Added complete plugin documentation with visual mockups and expanded template
variable system with CONTEXT, DATE helpers, and default values.
Backend Changes:
- Extended template_parser.py to support all new template types
- Added PROMPT with default values: {{PROMPT:var|desc|default}}
- Added CONTEXT variables: {{CONTEXT:business_name}}, {{CONTEXT:owner_email}}
- Added DATE helpers: {{DATE:today}}, {{DATE:+7d}}, {{DATE:monday}}
- Implemented date expression evaluation for relative dates
- Updated compile_template to handle all template types
- Added context parameter for business data auto-fill
Frontend Changes:
- Created comprehensive HelpPluginDocs.tsx with Stripe-style API docs
- Added visual mockup of plugin configuration form
- Documented all template types with examples and benefits
- Added Command Reference section with allowed/blocked Python commands
- Documented all HTTP methods (GET, POST, PUT, PATCH, DELETE)
- Added URL whitelisting requirements and approval process
- Created Platform Staff management page with edit modal
- Added can_approve_plugins and can_whitelist_urls permissions
Platform Staff Features:
- List all platform_manager and platform_support users
- Edit user details with role-based permissions
- Superusers can edit anyone
- Platform managers can only edit platform_support users
- Permission cascade: users can only grant permissions they have
- Real-time updates via React Query cache invalidation
Documentation Highlights:
- 4 template types: PROMPT, CONTEXT, DATE, and automatic validation
- Visual form mockup showing exactly what users see
- All allowed control flow (if/elif/else, for, while, try/except, etc.)
- All allowed built-in functions (len, range, min, max, etc.)
- All blocked operations (import, exec, eval, class/function defs)
- Complete HTTP API reference with examples
- URL whitelisting process: contact pluginaccess@smoothschedule.com
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"status": "failed",
|
||||
"failedTests": [
|
||||
"4ccd3b6df344f024c4e8-470435a1aee1bc432b30"
|
||||
"590ad8d7fc7ae2069797-2afcd486fa868ee7fcc3",
|
||||
"590ad8d7fc7ae2069797-90df2b140e1ff4bac88e",
|
||||
"590ad8d7fc7ae2069797-def5944da7e0860b9fef"
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB |
@@ -1,268 +0,0 @@
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [ref=e1]:
|
||||
- generic [ref=e3]:
|
||||
- generic [ref=e5]:
|
||||
- button "Collapse sidebar" [ref=e6]:
|
||||
- generic [ref=e7]: DE
|
||||
- generic [ref=e8]:
|
||||
- heading "Demo Company" [level=1] [ref=e9]
|
||||
- paragraph [ref=e10]: demo.smoothschedule.com
|
||||
- navigation [ref=e11]:
|
||||
- link "Dashboard" [ref=e12] [cursor=pointer]:
|
||||
- /url: "#/"
|
||||
- img [ref=e13]
|
||||
- generic [ref=e18]: Dashboard
|
||||
- link "Scheduler" [ref=e19] [cursor=pointer]:
|
||||
- /url: "#/scheduler"
|
||||
- img [ref=e20]
|
||||
- generic [ref=e22]: Scheduler
|
||||
- link "Customers" [ref=e23] [cursor=pointer]:
|
||||
- /url: "#/customers"
|
||||
- img [ref=e24]
|
||||
- generic [ref=e29]: Customers
|
||||
- link "Services" [ref=e30] [cursor=pointer]:
|
||||
- /url: "#/services"
|
||||
- img [ref=e31]
|
||||
- generic [ref=e34]: Services
|
||||
- link "Resources" [ref=e35] [cursor=pointer]:
|
||||
- /url: "#/resources"
|
||||
- img [ref=e36]
|
||||
- generic [ref=e39]: Resources
|
||||
- generic "Payments are disabled. Enable them in Business Settings to accept payments from customers." [ref=e40]:
|
||||
- img [ref=e41]
|
||||
- generic [ref=e43]: Payments
|
||||
- link "Messages" [ref=e44] [cursor=pointer]:
|
||||
- /url: "#/messages"
|
||||
- img [ref=e45]
|
||||
- generic [ref=e47]: Messages
|
||||
- link "Staff" [ref=e48] [cursor=pointer]:
|
||||
- /url: "#/staff"
|
||||
- img [ref=e49]
|
||||
- generic [ref=e54]: Staff
|
||||
- link "Business Settings" [ref=e56] [cursor=pointer]:
|
||||
- /url: "#/settings"
|
||||
- img [ref=e57]
|
||||
- generic [ref=e60]: Business Settings
|
||||
- generic [ref=e61]:
|
||||
- generic [ref=e62]:
|
||||
- img [ref=e63]
|
||||
- generic [ref=e69]:
|
||||
- generic [ref=e70]: Powered by
|
||||
- text: Smooth Schedule
|
||||
- button "Sign Out" [ref=e71]:
|
||||
- img [ref=e72]
|
||||
- generic [ref=e75]: Sign Out
|
||||
- generic [ref=e76]:
|
||||
- banner [ref=e77]:
|
||||
- generic [ref=e79]:
|
||||
- img [ref=e81]
|
||||
- textbox "Search" [ref=e84]
|
||||
- generic [ref=e85]:
|
||||
- button "🇺🇸 English" [ref=e87]:
|
||||
- img [ref=e88]
|
||||
- generic [ref=e91]: 🇺🇸
|
||||
- generic [ref=e92]: English
|
||||
- img [ref=e93]
|
||||
- button [ref=e95]:
|
||||
- img [ref=e96]
|
||||
- button [ref=e98]:
|
||||
- img [ref=e99]
|
||||
- button "Business Owner Owner BO" [ref=e104]:
|
||||
- generic [ref=e105]:
|
||||
- paragraph [ref=e106]: Business Owner
|
||||
- paragraph [ref=e107]: Owner
|
||||
- generic [ref=e108]: BO
|
||||
- img [ref=e109]
|
||||
- main [active] [ref=e111]:
|
||||
- generic [ref=e112]:
|
||||
- generic [ref=e113]:
|
||||
- heading "Dashboard" [level=2] [ref=e114]
|
||||
- paragraph [ref=e115]: Today's Overview
|
||||
- generic [ref=e116]:
|
||||
- generic [ref=e117]:
|
||||
- paragraph [ref=e118]: Total Appointments
|
||||
- generic [ref=e119]:
|
||||
- generic [ref=e120]: "50"
|
||||
- generic [ref=e121]:
|
||||
- img [ref=e122]
|
||||
- text: +12%
|
||||
- generic [ref=e125]:
|
||||
- paragraph [ref=e126]: Customers
|
||||
- generic [ref=e127]:
|
||||
- generic [ref=e128]: "1"
|
||||
- generic [ref=e129]:
|
||||
- img [ref=e130]
|
||||
- text: +8%
|
||||
- generic [ref=e133]:
|
||||
- paragraph [ref=e134]: Services
|
||||
- generic [ref=e135]:
|
||||
- generic [ref=e136]: "5"
|
||||
- generic [ref=e137]:
|
||||
- img [ref=e138]
|
||||
- text: 0%
|
||||
- generic [ref=e139]:
|
||||
- paragraph [ref=e140]: Resources
|
||||
- generic [ref=e141]:
|
||||
- generic [ref=e142]: "4"
|
||||
- generic [ref=e143]:
|
||||
- img [ref=e144]
|
||||
- text: +3%
|
||||
- generic [ref=e147]:
|
||||
- generic [ref=e149]:
|
||||
- generic [ref=e150]:
|
||||
- img [ref=e152]
|
||||
- heading "Quick Add Appointment" [level=3] [ref=e154]
|
||||
- generic [ref=e155]:
|
||||
- generic [ref=e156]:
|
||||
- generic [ref=e157]:
|
||||
- img [ref=e158]
|
||||
- text: Customer
|
||||
- combobox [ref=e161]:
|
||||
- option "Walk-in / No customer" [selected]
|
||||
- option "Customer User (customer@demo.com)"
|
||||
- generic [ref=e162]:
|
||||
- generic [ref=e163]:
|
||||
- img [ref=e164]
|
||||
- text: Service *
|
||||
- combobox [ref=e167]:
|
||||
- option "Select service..." [selected]
|
||||
- option "Beard Trim (15 min - $15)"
|
||||
- option "Consultation (30 min - $0)"
|
||||
- option "Full Styling (60 min - $75)"
|
||||
- option "Hair Coloring (90 min - $120)"
|
||||
- option "Haircut (30 min - $35)"
|
||||
- generic [ref=e168]:
|
||||
- generic [ref=e169]:
|
||||
- img [ref=e170]
|
||||
- text: Resource
|
||||
- combobox [ref=e173]:
|
||||
- option "Unassigned" [selected]
|
||||
- option "Conference Room A"
|
||||
- option "Dental Chair 1"
|
||||
- option "Meeting Room B"
|
||||
- option "Meeting Room B"
|
||||
- generic [ref=e174]:
|
||||
- generic [ref=e175]:
|
||||
- generic [ref=e176]: Date *
|
||||
- textbox [ref=e177]: 2025-11-27
|
||||
- generic [ref=e178]:
|
||||
- generic [ref=e179]:
|
||||
- img [ref=e180]
|
||||
- text: Time *
|
||||
- combobox [ref=e183]:
|
||||
- option "06:00"
|
||||
- option "06:15"
|
||||
- option "06:30"
|
||||
- option "06:45"
|
||||
- option "07:00"
|
||||
- option "07:15"
|
||||
- option "07:30"
|
||||
- option "07:45"
|
||||
- option "08:00"
|
||||
- option "08:15"
|
||||
- option "08:30"
|
||||
- option "08:45"
|
||||
- option "09:00" [selected]
|
||||
- option "09:15"
|
||||
- option "09:30"
|
||||
- option "09:45"
|
||||
- option "10:00"
|
||||
- option "10:15"
|
||||
- option "10:30"
|
||||
- option "10:45"
|
||||
- option "11:00"
|
||||
- option "11:15"
|
||||
- option "11:30"
|
||||
- option "11:45"
|
||||
- option "12:00"
|
||||
- option "12:15"
|
||||
- option "12:30"
|
||||
- option "12:45"
|
||||
- option "13:00"
|
||||
- option "13:15"
|
||||
- option "13:30"
|
||||
- option "13:45"
|
||||
- option "14:00"
|
||||
- option "14:15"
|
||||
- option "14:30"
|
||||
- option "14:45"
|
||||
- option "15:00"
|
||||
- option "15:15"
|
||||
- option "15:30"
|
||||
- option "15:45"
|
||||
- option "16:00"
|
||||
- option "16:15"
|
||||
- option "16:30"
|
||||
- option "16:45"
|
||||
- option "17:00"
|
||||
- option "17:15"
|
||||
- option "17:30"
|
||||
- option "17:45"
|
||||
- option "18:00"
|
||||
- option "18:15"
|
||||
- option "18:30"
|
||||
- option "18:45"
|
||||
- option "19:00"
|
||||
- option "19:15"
|
||||
- option "19:30"
|
||||
- option "19:45"
|
||||
- option "20:00"
|
||||
- option "20:15"
|
||||
- option "20:30"
|
||||
- option "20:45"
|
||||
- option "21:00"
|
||||
- option "21:15"
|
||||
- option "21:30"
|
||||
- option "21:45"
|
||||
- option "22:00"
|
||||
- option "22:15"
|
||||
- option "22:30"
|
||||
- option "22:45"
|
||||
- generic [ref=e184]:
|
||||
- generic [ref=e185]:
|
||||
- img [ref=e186]
|
||||
- text: Notes
|
||||
- textbox "Optional notes..." [ref=e189]
|
||||
- button "Add Appointment" [disabled] [ref=e190]:
|
||||
- img [ref=e191]
|
||||
- text: Add Appointment
|
||||
- generic [ref=e193]:
|
||||
- heading "Total Revenue" [level=3] [ref=e194]
|
||||
- application [ref=e198]:
|
||||
- generic [ref=e202]:
|
||||
- generic [ref=e203]:
|
||||
- generic [ref=e205]: Mon
|
||||
- generic [ref=e207]: Tue
|
||||
- generic [ref=e209]: Wed
|
||||
- generic [ref=e211]: Thu
|
||||
- generic [ref=e213]: Fri
|
||||
- generic [ref=e215]: Sat
|
||||
- generic [ref=e217]: Sun
|
||||
- generic [ref=e218]:
|
||||
- generic [ref=e220]: $0
|
||||
- generic [ref=e222]: $1
|
||||
- generic [ref=e224]: $2
|
||||
- generic [ref=e226]: $3
|
||||
- generic [ref=e228]: $4
|
||||
- generic [ref=e229]:
|
||||
- heading "Upcoming Appointments" [level=3] [ref=e230]
|
||||
- application [ref=e234]:
|
||||
- generic [ref=e250]:
|
||||
- generic [ref=e251]:
|
||||
- generic [ref=e253]: Mon
|
||||
- generic [ref=e255]: Tue
|
||||
- generic [ref=e257]: Wed
|
||||
- generic [ref=e259]: Thu
|
||||
- generic [ref=e261]: Fri
|
||||
- generic [ref=e263]: Sat
|
||||
- generic [ref=e265]: Sun
|
||||
- generic [ref=e266]:
|
||||
- generic [ref=e268]: "0"
|
||||
- generic [ref=e270]: "3"
|
||||
- generic [ref=e272]: "6"
|
||||
- generic [ref=e274]: "9"
|
||||
- generic [ref=e276]: "12"
|
||||
- generic [ref=e277]: "0"
|
||||
```
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB |
@@ -0,0 +1,84 @@
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [ref=e3]:
|
||||
- generic [ref=e7]:
|
||||
- generic [ref=e9]:
|
||||
- img [ref=e10]
|
||||
- generic [ref=e16]: Smooth Schedule
|
||||
- generic [ref=e17]:
|
||||
- heading "Orchestrate your business with precision." [level=1] [ref=e18]
|
||||
- paragraph [ref=e19]: The all-in-one scheduling platform for businesses of all sizes. Manage resources, staff, and bookings effortlessly.
|
||||
- generic [ref=e24]: © 2025 Smooth Schedule Inc.
|
||||
- generic [ref=e26]:
|
||||
- generic [ref=e27]:
|
||||
- heading "Welcome back" [level=2] [ref=e28]
|
||||
- paragraph [ref=e29]: Please enter your details to sign in.
|
||||
- generic [ref=e30]:
|
||||
- generic [ref=e31]:
|
||||
- generic [ref=e32]:
|
||||
- generic [ref=e33]: Username
|
||||
- generic [ref=e34]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Username" [active] [ref=e35]:
|
||||
- /placeholder: Enter your username
|
||||
- text: superuser
|
||||
- generic [ref=e36]:
|
||||
- generic [ref=e37]: Password
|
||||
- generic [ref=e38]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Password" [ref=e39]:
|
||||
- /placeholder: ••••••••
|
||||
- button "Sign in" [ref=e40]:
|
||||
- generic [ref=e41]:
|
||||
- text: Sign in
|
||||
- img [ref=e42]
|
||||
- generic [ref=e49]: Or continue with
|
||||
- button "🇺🇸 English" [ref=e52]:
|
||||
- img [ref=e53]
|
||||
- generic [ref=e56]: 🇺🇸
|
||||
- generic [ref=e57]: English
|
||||
- img [ref=e58]
|
||||
- generic [ref=e60]:
|
||||
- heading "🔓 Quick Login (Dev Only)" [level=3] [ref=e62]:
|
||||
- generic [ref=e63]: 🔓
|
||||
- generic [ref=e64]: Quick Login (Dev Only)
|
||||
- generic [ref=e65]:
|
||||
- button "Platform Superuser SUPERUSER" [ref=e66]:
|
||||
- generic [ref=e67]:
|
||||
- generic [ref=e68]: Platform Superuser
|
||||
- generic [ref=e69]: SUPERUSER
|
||||
- button "Platform Manager PLATFORM_MANAGER" [ref=e70]:
|
||||
- generic [ref=e71]:
|
||||
- generic [ref=e72]: Platform Manager
|
||||
- generic [ref=e73]: PLATFORM_MANAGER
|
||||
- button "Platform Sales PLATFORM_SALES" [ref=e74]:
|
||||
- generic [ref=e75]:
|
||||
- generic [ref=e76]: Platform Sales
|
||||
- generic [ref=e77]: PLATFORM_SALES
|
||||
- button "Platform Support PLATFORM_SUPPORT" [ref=e78]:
|
||||
- generic [ref=e79]:
|
||||
- generic [ref=e80]: Platform Support
|
||||
- generic [ref=e81]: PLATFORM_SUPPORT
|
||||
- button "Business Owner TENANT_OWNER" [ref=e82]:
|
||||
- generic [ref=e83]:
|
||||
- generic [ref=e84]: Business Owner
|
||||
- generic [ref=e85]: TENANT_OWNER
|
||||
- button "Business Manager TENANT_MANAGER" [ref=e86]:
|
||||
- generic [ref=e87]:
|
||||
- generic [ref=e88]: Business Manager
|
||||
- generic [ref=e89]: TENANT_MANAGER
|
||||
- button "Staff Member TENANT_STAFF" [ref=e90]:
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: Staff Member
|
||||
- generic [ref=e93]: TENANT_STAFF
|
||||
- button "Customer CUSTOMER" [ref=e94]:
|
||||
- generic [ref=e95]:
|
||||
- generic [ref=e96]: Customer
|
||||
- generic [ref=e97]: CUSTOMER
|
||||
- generic [ref=e98]:
|
||||
- text: "Password for all:"
|
||||
- code [ref=e99]: test123
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 449 KiB |
@@ -0,0 +1,84 @@
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [ref=e3]:
|
||||
- generic [ref=e7]:
|
||||
- generic [ref=e9]:
|
||||
- img [ref=e10]
|
||||
- generic [ref=e16]: Smooth Schedule
|
||||
- generic [ref=e17]:
|
||||
- heading "Orchestrate your business with precision." [level=1] [ref=e18]
|
||||
- paragraph [ref=e19]: The all-in-one scheduling platform for businesses of all sizes. Manage resources, staff, and bookings effortlessly.
|
||||
- generic [ref=e24]: © 2025 Smooth Schedule Inc.
|
||||
- generic [ref=e26]:
|
||||
- generic [ref=e27]:
|
||||
- heading "Welcome back" [level=2] [ref=e28]
|
||||
- paragraph [ref=e29]: Please enter your details to sign in.
|
||||
- generic [ref=e30]:
|
||||
- generic [ref=e31]:
|
||||
- generic [ref=e32]:
|
||||
- generic [ref=e33]: Username
|
||||
- generic [ref=e34]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Username" [active] [ref=e35]:
|
||||
- /placeholder: Enter your username
|
||||
- text: superuser
|
||||
- generic [ref=e36]:
|
||||
- generic [ref=e37]: Password
|
||||
- generic [ref=e38]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Password" [ref=e39]:
|
||||
- /placeholder: ••••••••
|
||||
- button "Sign in" [ref=e40]:
|
||||
- generic [ref=e41]:
|
||||
- text: Sign in
|
||||
- img [ref=e42]
|
||||
- generic [ref=e50]: Or continue with
|
||||
- button "🇺🇸 English" [ref=e53]:
|
||||
- img [ref=e54]
|
||||
- generic [ref=e58]: 🇺🇸
|
||||
- generic [ref=e59]: English
|
||||
- img [ref=e60]
|
||||
- generic [ref=e62]:
|
||||
- heading "🔓 Quick Login (Dev Only)" [level=3] [ref=e64]:
|
||||
- generic [ref=e65]: 🔓
|
||||
- generic [ref=e66]: Quick Login (Dev Only)
|
||||
- generic [ref=e67]:
|
||||
- button "Platform Superuser SUPERUSER" [ref=e68]:
|
||||
- generic [ref=e69]:
|
||||
- generic [ref=e70]: Platform Superuser
|
||||
- generic [ref=e71]: SUPERUSER
|
||||
- button "Platform Manager PLATFORM_MANAGER" [ref=e72]:
|
||||
- generic [ref=e73]:
|
||||
- generic [ref=e74]: Platform Manager
|
||||
- generic [ref=e75]: PLATFORM_MANAGER
|
||||
- button "Platform Sales PLATFORM_SALES" [ref=e76]:
|
||||
- generic [ref=e77]:
|
||||
- generic [ref=e78]: Platform Sales
|
||||
- generic [ref=e79]: PLATFORM_SALES
|
||||
- button "Platform Support PLATFORM_SUPPORT" [ref=e80]:
|
||||
- generic [ref=e81]:
|
||||
- generic [ref=e82]: Platform Support
|
||||
- generic [ref=e83]: PLATFORM_SUPPORT
|
||||
- button "Business Owner TENANT_OWNER" [ref=e84]:
|
||||
- generic [ref=e85]:
|
||||
- generic [ref=e86]: Business Owner
|
||||
- generic [ref=e87]: TENANT_OWNER
|
||||
- button "Business Manager TENANT_MANAGER" [ref=e88]:
|
||||
- generic [ref=e89]:
|
||||
- generic [ref=e90]: Business Manager
|
||||
- generic [ref=e91]: TENANT_MANAGER
|
||||
- button "Staff Member TENANT_STAFF" [ref=e92]:
|
||||
- generic [ref=e93]:
|
||||
- generic [ref=e94]: Staff Member
|
||||
- generic [ref=e95]: TENANT_STAFF
|
||||
- button "Customer CUSTOMER" [ref=e96]:
|
||||
- generic [ref=e97]:
|
||||
- generic [ref=e98]: Customer
|
||||
- generic [ref=e99]: CUSTOMER
|
||||
- generic [ref=e100]:
|
||||
- text: "Password for all:"
|
||||
- code [ref=e101]: test123
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 603 KiB |
@@ -0,0 +1,84 @@
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [ref=e3]:
|
||||
- generic [ref=e7]:
|
||||
- generic [ref=e9]:
|
||||
- img [ref=e10]
|
||||
- generic [ref=e16]: Smooth Schedule
|
||||
- generic [ref=e17]:
|
||||
- heading "Orchestrate your business with precision." [level=1] [ref=e18]
|
||||
- paragraph [ref=e19]: The all-in-one scheduling platform for businesses of all sizes. Manage resources, staff, and bookings effortlessly.
|
||||
- generic [ref=e24]: © 2025 Smooth Schedule Inc.
|
||||
- generic [ref=e26]:
|
||||
- generic [ref=e27]:
|
||||
- heading "Welcome back" [level=2] [ref=e28]
|
||||
- paragraph [ref=e29]: Please enter your details to sign in.
|
||||
- generic [ref=e30]:
|
||||
- generic [ref=e31]:
|
||||
- generic [ref=e32]:
|
||||
- generic [ref=e33]: Username
|
||||
- generic [ref=e34]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Username" [active] [ref=e35]:
|
||||
- /placeholder: Enter your username
|
||||
- text: superuser
|
||||
- generic [ref=e36]:
|
||||
- generic [ref=e37]: Password
|
||||
- generic [ref=e38]:
|
||||
- generic:
|
||||
- img
|
||||
- textbox "Password" [ref=e39]:
|
||||
- /placeholder: ••••••••
|
||||
- button "Sign in" [ref=e40]:
|
||||
- generic [ref=e41]:
|
||||
- text: Sign in
|
||||
- img [ref=e42]
|
||||
- generic [ref=e49]: Or continue with
|
||||
- button "🇺🇸 English" [ref=e52]:
|
||||
- img [ref=e53]
|
||||
- generic [ref=e56]: 🇺🇸
|
||||
- generic [ref=e57]: English
|
||||
- img [ref=e58]
|
||||
- generic [ref=e60]:
|
||||
- heading "🔓 Quick Login (Dev Only)" [level=3] [ref=e62]:
|
||||
- generic [ref=e63]: 🔓
|
||||
- generic [ref=e64]: Quick Login (Dev Only)
|
||||
- generic [ref=e65]:
|
||||
- button "Platform Superuser SUPERUSER" [ref=e66]:
|
||||
- generic [ref=e67]:
|
||||
- generic [ref=e68]: Platform Superuser
|
||||
- generic [ref=e69]: SUPERUSER
|
||||
- button "Platform Manager PLATFORM_MANAGER" [ref=e70]:
|
||||
- generic [ref=e71]:
|
||||
- generic [ref=e72]: Platform Manager
|
||||
- generic [ref=e73]: PLATFORM_MANAGER
|
||||
- button "Platform Sales PLATFORM_SALES" [ref=e74]:
|
||||
- generic [ref=e75]:
|
||||
- generic [ref=e76]: Platform Sales
|
||||
- generic [ref=e77]: PLATFORM_SALES
|
||||
- button "Platform Support PLATFORM_SUPPORT" [ref=e78]:
|
||||
- generic [ref=e79]:
|
||||
- generic [ref=e80]: Platform Support
|
||||
- generic [ref=e81]: PLATFORM_SUPPORT
|
||||
- button "Business Owner TENANT_OWNER" [ref=e82]:
|
||||
- generic [ref=e83]:
|
||||
- generic [ref=e84]: Business Owner
|
||||
- generic [ref=e85]: TENANT_OWNER
|
||||
- button "Business Manager TENANT_MANAGER" [ref=e86]:
|
||||
- generic [ref=e87]:
|
||||
- generic [ref=e88]: Business Manager
|
||||
- generic [ref=e89]: TENANT_MANAGER
|
||||
- button "Staff Member TENANT_STAFF" [ref=e90]:
|
||||
- generic [ref=e91]:
|
||||
- generic [ref=e92]: Staff Member
|
||||
- generic [ref=e93]: TENANT_STAFF
|
||||
- button "Customer CUSTOMER" [ref=e94]:
|
||||
- generic [ref=e95]:
|
||||
- generic [ref=e96]: Customer
|
||||
- generic [ref=e97]: CUSTOMER
|
||||
- generic [ref=e98]:
|
||||
- text: "Password for all:"
|
||||
- code [ref=e99]: test123
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Reference in New Issue
Block a user