- Added media bucket structure (avatars, floor-plans, documents, reports) - Added storage URL pattern 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
793 lines
25 KiB
JSON
793 lines
25 KiB
JSON
{
|
|
"_meta": {
|
|
"name": "ENV and existing API",
|
|
"updatedAt": "2025-12-18T12:00:00.000Z"
|
|
},
|
|
"elements": [
|
|
{
|
|
"id": "env_header",
|
|
"type": "card",
|
|
"title": "WellNuo API Documentation",
|
|
"borderColor": "purple",
|
|
"tags": [
|
|
"overview"
|
|
],
|
|
"description": "Backend API for WellNuo Elderly Monitoring System\n\nBase URL: https://eluxnetworks.net/function/well-api/api\nMethod: POST (most endpoints), GET (some)\nContent-Type: application/x-www-form-urlencoded\n\nAPI VERIFIED: Working as of Dec 15, 2025",
|
|
"x": 140,
|
|
"y": 77.5
|
|
},
|
|
{
|
|
"id": "web_dashboard",
|
|
"type": "card",
|
|
"title": "Web Dashboard",
|
|
"borderColor": "blue",
|
|
"tags": [
|
|
"frontend",
|
|
"verified"
|
|
],
|
|
"description": "React Web Application\n\nURL: https://react.eluxnetworks.net/dashboard\nStack: React + TailwindCSS\nAuth: JWT tokens stored in localStorage (auth2)\n\nNote: For embedding in mobile app via WebView",
|
|
"x": 140,
|
|
"y": 192.5
|
|
},
|
|
{
|
|
"id": "api_auth",
|
|
"type": "card",
|
|
"title": "credentials (Auth) ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"backend",
|
|
"verified"
|
|
],
|
|
"description": "function=credentials\nMethod: POST\n\nRequest:\n- user_name: string\n- ps: string (password)\n- clientId: string (e.g. \"001\")\n- nonce: string (random)\n\nResponse:\n{\n \"access_token\": \"eyJhbG...\",\n \"privileges\": \"21,45,29\",\n \"user_id\": 59,\n \"max_role\": 2,\n \"status\": \"200 OK\"\n}\n\nTESTED: Dec 15, 2025 - WORKING",
|
|
"x": 426,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "test_credentials",
|
|
"type": "card",
|
|
"title": "Test Credentials ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"credentials",
|
|
"verified"
|
|
],
|
|
"description": "PRIMARY Test Account:\n\nUsername: slunginovic\nPassword: sale2025\nClientId: 001\nNonce: 111\n\nUser ID: 59\nPrivileges: 21,45,29\nMax Role: 2\n\nSECONDARY Account:\nUsername: anandk\nPassword: anandk_8\n\nTESTED: Dec 15, 2025",
|
|
"x": 667,
|
|
"y": -92
|
|
},
|
|
{
|
|
"id": "api_deployments_list",
|
|
"type": "card",
|
|
"title": "deployments_list ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"backend",
|
|
"verified"
|
|
],
|
|
"description": "function=deployments_list\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string (JWT)\n- first: number (pagination start, e.g. 0)\n- last: number (pagination end, e.g. 1000)\n\nResponse:\n{\n \"result_list\": [\n {\n \"deployment_id\": 21,\n \"email\": \"user@example.com\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\"\n }\n ],\n \"status\": \"200 OK\"\n}\n\nTESTED: Dec 15, 2025 - WORKING",
|
|
"x": 700,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_dashboard_single",
|
|
"type": "card",
|
|
"title": "dashboard_single ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"backend",
|
|
"verified"
|
|
],
|
|
"description": "function=dashboard_single\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string (JWT)\n- deployment_id: number\n- date: string (YYYY-MM-DD)\n- nonce: string (optional)\n\nResponse: Wellness data, location, temperature, sleep hours, etc.\n\nUsed for: Main patient monitoring dashboard",
|
|
"x": 351,
|
|
"y": 264
|
|
},
|
|
{
|
|
"id": "api_dashboard_list",
|
|
"type": "card",
|
|
"title": "dashboard_list",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=dashboard_list\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string\n- user_id: number (optional)\n- date: string (YYYY-MM-DD)\n\nReturns: List of dashboards for user",
|
|
"x": 351,
|
|
"y": 380
|
|
},
|
|
{
|
|
"id": "api_voice_ask",
|
|
"type": "card",
|
|
"title": "voice_ask (AI Chat) ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"backend",
|
|
"verified"
|
|
],
|
|
"description": "function=voice_ask\nMethod: POST\n\nRequest:\n- clientId: string (e.g. \"MA_001\")\n- user_name: string\n- token: string\n- question: string (keyword-based!)\n- deployment_id: number\n\nWORKING KEYWORDS:\n- \"how is dad/mom\" - full status\n- \"bathroom\" - restroom usage\n- \"kitchen\" - cooking activity\n- \"sleep/night\" - sleep hours\n- \"temperature\" - room temp\n- \"last seen\" - online status",
|
|
"x": 416,
|
|
"y": 500
|
|
},
|
|
{
|
|
"id": "api_beneficiaries_list",
|
|
"type": "card",
|
|
"title": "beneficiaries_list",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=beneficiaries_list\nMethod: POST\n\nRequest:\n- token: string\n- user_name: string\n- first: number (0)\n- last: number (1000)\n\nReturns: List of all beneficiaries (elderly persons)",
|
|
"x": 980,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_beneficiary_form",
|
|
"type": "card",
|
|
"title": "beneficiary_form",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=beneficiary_form\nMethod: POST\n\nCreate/Edit beneficiary:\n- new_user_name: string\n- editing_user_id: number (for edit)\n- role_ids: string (e.g. \"1,2\")\n- email, first_name, last_name\n- address_street, address_city\n- address_zip, address_state\n- address_country\n- phone_number, picture",
|
|
"x": 980,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_get_beneficiary",
|
|
"type": "card",
|
|
"title": "get_beneficiary",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_beneficiary\nMethod: POST\n\nRequest:\n- token: string\n- user_name: string\n- user_id: number\n\nReturns: Detailed beneficiary info",
|
|
"x": 980,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_caretakers_list",
|
|
"type": "card",
|
|
"title": "caretakers_list",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=caretakers_list\nMethod: POST\n\nRequest:\n- token: string\n- user_name: string\n- first: number (0)\n- last: number (1000)\n\nReturns: List of all caretakers",
|
|
"x": 1200,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_caretaker_form",
|
|
"type": "card",
|
|
"title": "caretaker_form",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=caretaker_form\nMethod: POST\n\nCreate/Edit caretaker:\n- new_user_name: string\n- user_id, editing_user_id: number\n- key: string (password)\n- role_ids, access_to: string\n- email, first_name, last_name\n- address_*, phone_number, picture",
|
|
"x": 1200,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_get_caretaker",
|
|
"type": "card",
|
|
"title": "get_caretaker",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_caretaker\nMethod: POST\n\nRequest:\n- token: string\n- user_name: string\n- user_id: number\n\nReturns: Detailed caretaker info",
|
|
"x": 1200,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_deployment_form",
|
|
"type": "card",
|
|
"title": "deployment_form",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=deployment_form\nMethod: POST\n\nCreate/Edit deployment:\n- editing_deployment_id: number\n- beneficiary_id, caretaker_id\n- owner_id, installer_id: number\n- address_*: string\n- persons, gender, race: number\n- born: number (year)\n- pets: number\n- lat, lng: number (coords)\n- devices: JSON array of MACs\n- time_zone_s: string",
|
|
"x": 700,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_deployment_edit",
|
|
"type": "card",
|
|
"title": "deployment_edit",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "name=deployment_edit\nMethod: GET\n\nQuery params:\n- user_name: string\n- token: string\n- deployment_id: number\n\nReturns: Deployment data for editing",
|
|
"x": 700,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_deployment_delete",
|
|
"type": "card",
|
|
"title": "deployment_delete",
|
|
"borderColor": "orange",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=deployment_delete\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string\n- editing_deployment_id: number\n- user_id: number\n- priviledges: string\n\nCAUTION: Destructive operation!",
|
|
"x": 700,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "api_get_deployment",
|
|
"type": "card",
|
|
"title": "get_deployment",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_deployment\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string\n- deployment_id: number\n- date: string (optional)\n\nReturns: Full deployment details",
|
|
"x": 550,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "api_find_deployments",
|
|
"type": "card",
|
|
"title": "find_deployments",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=find_deployments\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string\n- well_ids: string (comma-separated)\n\nReturns: Deployments matching well IDs",
|
|
"x": 550,
|
|
"y": 510
|
|
},
|
|
{
|
|
"id": "api_device_list",
|
|
"type": "card",
|
|
"title": "device_list",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_list\nMethod: POST\n\nRequest:\n- user_name: string\n- token: string\n- first: number (0)\n- last: number (1000)\n\nReturns: List of all devices (sensors)",
|
|
"x": 1420,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_device_list_by_deployment",
|
|
"type": "card",
|
|
"title": "device_list_by_deployment",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_list_by_deployment\nMethod: POST\n\nRequest:\n- user_name, token: string\n- deployment_id: number\n- first, last: number\n\nReturns: Devices for specific deployment",
|
|
"x": 1420,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_device_form",
|
|
"type": "card",
|
|
"title": "device_form",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_form\nMethod: POST\n\nCreate/Edit device:\n- well_id: number\n- device_mac: string\n- description: string\n- location: number\n- close_to: string\n- radar_threshold: number\n- temperature_calib: string\n- humidity_calib: string\n- group: number",
|
|
"x": 1420,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_get_device",
|
|
"type": "card",
|
|
"title": "get_device",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_device\nMethod: POST\n\nRequest:\n- user_name, token: string\n- device_id: number\n- mac: string (optional)\n\nReturns: Device details and status",
|
|
"x": 1420,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "api_device_reboot",
|
|
"type": "card",
|
|
"title": "device_reboot",
|
|
"borderColor": "orange",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_reboot\nMethod: POST\n\nRequest:\n- user_name, token: string\n- device_id: number (optional)\n- mac: string\n\nAction: Reboots the device remotely",
|
|
"x": 1560,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_device_get_live",
|
|
"type": "card",
|
|
"title": "device_get_live",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_get_live\nMethod: POST\n\nRequest:\n- user_name, token: string\n- device_id: number\n\nReturns: Live sensor data from device",
|
|
"x": 1560,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_device_set_group",
|
|
"type": "card",
|
|
"title": "device_set_group",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_set_group\nMethod: POST\n\nRequest:\n- user_name, token: string\n- device_id: number\n- group_id: number\n\nAction: Assigns device to a group",
|
|
"x": 1560,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_device_set_well_id",
|
|
"type": "card",
|
|
"title": "device_set_well_id",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=device_set_well_id\nMethod: POST\n\nRequest:\n- user_name, token: string\n- device_id: number\n- well_id: number\n- mac: string\n\nAction: Sets device well_id",
|
|
"x": 1560,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "api_alarm_on_off",
|
|
"type": "card",
|
|
"title": "alarm_on_off",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=alarm_on_off\nMethod: POST\n\nRequest:\n- user_name, token: string\n- deployment_id: number\n- alarm_on: number (1=on, 0=off)\n\nAction: Toggle alarm state",
|
|
"x": 140,
|
|
"y": 320
|
|
},
|
|
{
|
|
"id": "api_get_alarm_state",
|
|
"type": "card",
|
|
"title": "get_alarm_state",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_alarm_state\nMethod: POST\n\nRequest:\n- user_name, token: string\n- deployment_id: number\n\nReturns: Current alarm status",
|
|
"x": 140,
|
|
"y": 430
|
|
},
|
|
{
|
|
"id": "api_activity_detected",
|
|
"type": "card",
|
|
"title": "activity_detected",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=activity_detected\nMethod: POST\n\nRequest:\n- user_name, token: string\n- time: number (epoch timestamp)\n\nAction: Log activity detection event",
|
|
"x": 140,
|
|
"y": 540
|
|
},
|
|
{
|
|
"id": "api_activities_report_details",
|
|
"type": "card",
|
|
"title": "activities_report_details",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=activities_report_details\nMethod: POST\n\nRequest:\n- user_name, token: string\n- deployment_id: number\n- filter: number (1-6)\n\nReturns: Detailed activity reports",
|
|
"x": 140,
|
|
"y": 650
|
|
},
|
|
{
|
|
"id": "api_get_floor_layout",
|
|
"type": "card",
|
|
"title": "get_floor_layout",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_floor_layout\nMethod: POST\n\nRequest:\n- user_name, token: string\n- deployment_id: number\n- date: string (YYYY-MM-DD)\n\nReturns: Floor layout configuration",
|
|
"x": 1700,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_location_map",
|
|
"type": "card",
|
|
"title": "get_full_location_map",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "name=get_full_location_map\nMethod: GET\n\nQuery params:\n- user_name, token: string\n- deployment_id: number\n- date: string\n- re_create, bw, motion: boolean\n- scale_global: boolean\n- map_type, filter: number\n- fast: boolean\n\nReturns: Full location/room mapping",
|
|
"x": 1700,
|
|
"y": 180
|
|
},
|
|
{
|
|
"id": "api_get_image_file",
|
|
"type": "card",
|
|
"title": "get_image_file",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "name=get_image_file\nMethod: GET\n\nQuery params:\n- user_name, token: string\n- deployment_id: number\n- radar_part: string (e.g. \"s28\")\n- date: string\n- re_create: boolean\n- group_by: string\n- map_type: number\n\nReturns: Generated image file",
|
|
"x": 1700,
|
|
"y": 290
|
|
},
|
|
{
|
|
"id": "api_download",
|
|
"type": "card",
|
|
"title": "download",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "name=download\nMethod: GET\n\nQuery params:\n- user_name, token: string\n- deployment_id: number\n- date_from, date_to: string\n- group_by: string (e.g. \"by_minute\")\n- re_create: boolean\n- radar_part: string\n\nReturns: Data export file",
|
|
"x": 1700,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "api_get_devices_locations",
|
|
"type": "card",
|
|
"title": "get_devices_locations",
|
|
"borderColor": "yellow",
|
|
"tags": [
|
|
"backend",
|
|
"pending"
|
|
],
|
|
"description": "function=get_devices_locations\nMethod: POST\n\nRequest:\n- user_name, token: string\n- well_ids: string (comma-separated)\n\nReturns: Device location mappings",
|
|
"x": 1700,
|
|
"y": 510
|
|
},
|
|
{
|
|
"id": "jwt_token",
|
|
"type": "card",
|
|
"title": "JWT Token Structure",
|
|
"borderColor": "teal",
|
|
"tags": [
|
|
"backend"
|
|
],
|
|
"description": "Token Format: JWT (HS256)\n\nPayload:\n{\n \"username\": \"slunginovic\",\n \"exp\": 1765910792 (Unix timestamp)\n}\n\nExpiration: ~7 days\nStorage: localStorage.auth2 (web)\nMobile: expo-secure-store\n\nUsage: Include as 'token' param in all authenticated requests",
|
|
"x": 520,
|
|
"y": 620
|
|
},
|
|
{
|
|
"id": "deployment_ids",
|
|
"type": "card",
|
|
"title": "Deployment IDs (Patient IDs)",
|
|
"borderColor": "teal",
|
|
"tags": [
|
|
"backend",
|
|
"verified"
|
|
],
|
|
"description": "What are Deployment IDs?\n\nDeployment ID = Patient ID = Beneficiary ID\nEach elderly person has unique ID.\n\nHow they work:\n- User logs in - gets 'privileges' string\n- Privileges = comma-separated deployment_ids\n- Example: \"21,45,29\" = 3 patients\n\nUsage:\n- dashboard_single: Get patient wellness\n- voice_ask: Ask AI about patient",
|
|
"x": 900,
|
|
"y": 400
|
|
},
|
|
{
|
|
"id": "server_info",
|
|
"type": "card",
|
|
"title": "Server Infrastructure",
|
|
"borderColor": "gray",
|
|
"tags": [
|
|
"external"
|
|
],
|
|
"description": "API Server:\n- Domain: eluxnetworks.net\n- SSL: Let's Encrypt\n- Status: ONLINE (verified Dec 15, 2025)\n\nReact Frontend:\n- Domain: react.eluxnetworks.net\n\nDev Server (HTTP):\n- eluxnetworks.net:8000 (debug)",
|
|
"x": 1840,
|
|
"y": 68
|
|
},
|
|
{
|
|
"id": "api_status_summary",
|
|
"type": "card",
|
|
"title": "API Status Summary",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"overview",
|
|
"verified"
|
|
],
|
|
"description": "VERIFIED ENDPOINTS (Dec 15, 2025):\n\n1. credentials - Login, get JWT token\n2. deployments_list - List patients\n3. dashboard_single - Patient wellness\n4. voice_ask - AI chat\n\nPENDING TEST (need valid data):\n- All device_* endpoints\n- All beneficiary_* endpoints\n- All caretaker_* endpoints\n- Maps and images\n- Downloads\n\nAPI is WORKING and ACCESSIBLE",
|
|
"x": 1840,
|
|
"y": 200
|
|
},
|
|
{
|
|
"id": "expo_config",
|
|
"type": "card",
|
|
"title": "Mobile App Config",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"frontend",
|
|
"verified"
|
|
],
|
|
"description": "Tech Stack:\n- Expo SDK 54\n- React Native 0.81.5\n- Expo Router 6.x\n\nFeatures:\n- WebView for dashboard embedding\n- Push notifications (FCM/APNs)\n- Biometric auth (future)",
|
|
"x": 1840,
|
|
"y": 340
|
|
},
|
|
{
|
|
"id": "gitea_repo",
|
|
"type": "card",
|
|
"title": "Git Repository ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"external",
|
|
"verified"
|
|
],
|
|
"description": "Gitea Server:\nURL: https://gitea.wellnua.com\nRepo: sergei_t/WellNuo\nBranch: development\n\nCredentials:\n- Username: sergei_t\n- Password: Orelkosyak5!",
|
|
"x": 1840,
|
|
"y": 460
|
|
},
|
|
{
|
|
"id": "eas_build",
|
|
"type": "card",
|
|
"title": "EAS Build & Deploy ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"external",
|
|
"verified"
|
|
],
|
|
"description": "EAS (Expo Application Services)\n\nApp Info:\n- Name: WellNuo\n- iOS Bundle ID: com.wellnuo.BluetoothScanner\n- Android Package: com.wellnuo.app\n- Expo Project ID: 4f415b4b-41c8-4b98-989c-32f6b3f97481\n\nApple Account (Robert's):\n- Apple ID: kosyakorel1@gmail.com\n- Team ID: UHLZD54ULZ (ZMR Inc)\n\nBuilds:\n- iOS: https://expo.dev/artifacts/eas/vTqLY2yWKzcCfPJSVzGZMZ.ipa\n- Android: https://expo.dev/artifacts/eas/5DXfBCuPc2uJ2fSzW6maie.aab\n\nUpdated: Dec 17, 2025",
|
|
"x": 1840,
|
|
"y": 580
|
|
},
|
|
{
|
|
"id": "supabase_db",
|
|
"type": "card",
|
|
"title": "Supabase Database ✓",
|
|
"borderColor": "green",
|
|
"tags": [
|
|
"external",
|
|
"verified"
|
|
],
|
|
"description": "Supabase (PostgreSQL + Storage)\n\nProject: WellNuo\nURL: https://bfzizknbxbsfrffqityf.supabase.co\n\nCredentials:\n- DB Password: Orelkosyak5!\n- Service Key: sb_secret_N7TN930UzzXGgFgrAaozqA_Y4b0DKlM\n\nTables (migrated from eluxnetworks.net):\n- deployments: 45 rows\n- devices: 455 rows\n- person_details: 8 rows\n- deployment_details: 23 rows\n\nStorage Bucket: media (public)\n- /avatars/ - User avatars\n- /floor-plans/ - Deployment floor plans\n- /documents/ - PDFs, disclaimers\n- /reports/ - Generated reports\n\nStorage URL:\nhttps://bfzizknbxbsfrffqityf.supabase.co/storage/v1/object/public/media/{path}\n\nMigration: Dec 18, 2025\nStatus: VERIFIED",
|
|
"x": 1840,
|
|
"y": 720
|
|
}
|
|
],
|
|
"connections": [
|
|
{
|
|
"from": "env_header",
|
|
"to": "api_auth"
|
|
},
|
|
{
|
|
"from": "env_header",
|
|
"to": "web_dashboard"
|
|
},
|
|
{
|
|
"from": "test_credentials",
|
|
"to": "api_auth"
|
|
},
|
|
{
|
|
"from": "api_auth",
|
|
"to": "api_deployments_list"
|
|
},
|
|
{
|
|
"from": "api_auth",
|
|
"to": "api_dashboard_single"
|
|
},
|
|
{
|
|
"from": "api_auth",
|
|
"to": "jwt_token"
|
|
},
|
|
{
|
|
"from": "api_dashboard_single",
|
|
"to": "api_dashboard_list"
|
|
},
|
|
{
|
|
"from": "api_dashboard_single",
|
|
"to": "api_voice_ask"
|
|
},
|
|
{
|
|
"from": "api_dashboard_single",
|
|
"to": "deployment_ids"
|
|
},
|
|
{
|
|
"from": "api_deployments_list",
|
|
"to": "api_deployment_form"
|
|
},
|
|
{
|
|
"from": "api_deployment_form",
|
|
"to": "api_deployment_edit"
|
|
},
|
|
{
|
|
"from": "api_deployment_edit",
|
|
"to": "api_deployment_delete"
|
|
},
|
|
{
|
|
"from": "api_deployment_edit",
|
|
"to": "api_get_deployment"
|
|
},
|
|
{
|
|
"from": "api_get_deployment",
|
|
"to": "api_find_deployments"
|
|
},
|
|
{
|
|
"from": "api_deployments_list",
|
|
"to": "api_beneficiaries_list"
|
|
},
|
|
{
|
|
"from": "api_beneficiaries_list",
|
|
"to": "api_beneficiary_form"
|
|
},
|
|
{
|
|
"from": "api_beneficiary_form",
|
|
"to": "api_get_beneficiary"
|
|
},
|
|
{
|
|
"from": "api_beneficiaries_list",
|
|
"to": "api_caretakers_list"
|
|
},
|
|
{
|
|
"from": "api_caretakers_list",
|
|
"to": "api_caretaker_form"
|
|
},
|
|
{
|
|
"from": "api_caretaker_form",
|
|
"to": "api_get_caretaker"
|
|
},
|
|
{
|
|
"from": "api_caretakers_list",
|
|
"to": "api_device_list"
|
|
},
|
|
{
|
|
"from": "api_device_list",
|
|
"to": "api_device_list_by_deployment"
|
|
},
|
|
{
|
|
"from": "api_device_list_by_deployment",
|
|
"to": "api_device_form"
|
|
},
|
|
{
|
|
"from": "api_device_form",
|
|
"to": "api_get_device"
|
|
},
|
|
{
|
|
"from": "api_device_list",
|
|
"to": "api_device_reboot"
|
|
},
|
|
{
|
|
"from": "api_device_reboot",
|
|
"to": "api_device_get_live"
|
|
},
|
|
{
|
|
"from": "api_device_get_live",
|
|
"to": "api_device_set_group"
|
|
},
|
|
{
|
|
"from": "api_device_set_group",
|
|
"to": "api_device_set_well_id"
|
|
},
|
|
{
|
|
"from": "web_dashboard",
|
|
"to": "api_alarm_on_off"
|
|
},
|
|
{
|
|
"from": "api_alarm_on_off",
|
|
"to": "api_get_alarm_state"
|
|
},
|
|
{
|
|
"from": "api_get_alarm_state",
|
|
"to": "api_activity_detected"
|
|
},
|
|
{
|
|
"from": "api_activity_detected",
|
|
"to": "api_activities_report_details"
|
|
},
|
|
{
|
|
"from": "api_device_set_well_id",
|
|
"to": "api_get_floor_layout"
|
|
},
|
|
{
|
|
"from": "api_get_floor_layout",
|
|
"to": "api_location_map"
|
|
},
|
|
{
|
|
"from": "api_location_map",
|
|
"to": "api_get_image_file"
|
|
},
|
|
{
|
|
"from": "api_get_image_file",
|
|
"to": "api_download"
|
|
},
|
|
{
|
|
"from": "api_download",
|
|
"to": "api_get_devices_locations"
|
|
},
|
|
{
|
|
"from": "api_get_floor_layout",
|
|
"to": "server_info"
|
|
},
|
|
{
|
|
"from": "server_info",
|
|
"to": "api_status_summary"
|
|
},
|
|
{
|
|
"from": "api_status_summary",
|
|
"to": "expo_config"
|
|
},
|
|
{
|
|
"from": "expo_config",
|
|
"to": "gitea_repo"
|
|
},
|
|
{
|
|
"from": "gitea_repo",
|
|
"to": "eas_build"
|
|
},
|
|
{
|
|
"from": "eas_build",
|
|
"to": "supabase_db"
|
|
},
|
|
{
|
|
"from": "deployment_ids",
|
|
"to": "api_get_beneficiary"
|
|
}
|
|
],
|
|
"tagsDictionary": [
|
|
{
|
|
"id": "tag-frontend",
|
|
"name": "frontend",
|
|
"color": "green"
|
|
},
|
|
{
|
|
"id": "tag-backend",
|
|
"name": "backend",
|
|
"color": "blue"
|
|
},
|
|
{
|
|
"id": "tag-external",
|
|
"name": "external",
|
|
"color": "orange"
|
|
},
|
|
{
|
|
"id": "tag-verified",
|
|
"name": "verified",
|
|
"color": "lime"
|
|
},
|
|
{
|
|
"id": "tag-pending",
|
|
"name": "pending",
|
|
"color": "yellow"
|
|
},
|
|
{
|
|
"id": "tag-credentials",
|
|
"name": "credentials",
|
|
"color": "red"
|
|
},
|
|
{
|
|
"id": "tag-overview",
|
|
"name": "overview",
|
|
"color": "purple"
|
|
}
|
|
]
|
|
}
|