Admin Documentation & Debug Console

System documentation, templates, and API testing

Client Portal API Debug Console

Test and monitor all backend functions used by the client portal

Running automatic health checks...
publicClientProjects

Fetches all projects accessible to a client based on their token or slug credentials

Purpose: Used on the ClientProjects page to display a list of projects the client has access to

https://projects.achtungkraft.com/functions/publicClientProjects
token
string

Single-use access token

slug
string

Permanent client slug identifier

{ access: {...}, projects: [...] }
Success2:14:31 AM
Status: 200
{
  "success": true,
  "contact": {
    "id": "6944355c4b0b44e99374f722",
    "name": "Bryan Rasch",
    "email": "bryan@achtungkraft.com"
  },
  "accesses": [
    {
      "project_id": "6a948b2cac1cd4d832de4774"
    },
    {
      "project_id": "6aa4b6fe43dc2c89d3755235"
    },
    {
      "project_id": "6a7f107c32c0e112376d39d4"
    },
    {
      "project_id": "69a5d4ce9e62a2920b5aedd6"
    },
    {
      "project_id": "691e03c7cb6245ea947a5636"
    }
  ],
  "projects": [
    {
      "id": "691e03c7cb6245ea947a5636",
      "name": "AK EFI System",
      "client_name": "Achtung Kraft",
      "featured_image_url": "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/public/6913f39cea91db2169cc30c4/3fb510ab7_SCR-20251115-sail.png",
      "images": [
        "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/public/6913f39cea91db2169cc30c4/3fb510ab7_SCR-20251115-sail.png"
      ],
      "status_id": "6913f57422230d8c7ee2ef4e",
      "project_type_id": "691e002f38f4d24927e46243",
      "target_completion": "",
      "vin": ""
    },
    {
      "id": "69a5d4ce9e62a2920b5aedd6",
      "name": "964 GT3 Exhaust",
      "client_name": "Achtung Kraft",
      "featured_image_url": "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/public/6913f39cea91db2169cc30c4/bf9647865_SCR-20260302-lcvz.png",
      "images": [
        "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/public/6913f39cea91db2169cc30c4/bf9647865_SCR-20260302-lcvz.png"
      ],
      "status_id": "6913f57422230d8c7ee2ef4d",
      "project_type_id": "691e002f38f4d24927e46243",
      "target_completion": "",
      "vin": ""
    },
    {
      "id": "6a7f107c32c0e112376d39d4",
      "name": "24_9078_01 - Pravi Ice Green 1975",
      "client_name": "Pravi Thakkar",
      "featured_image_url": "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/b0a15e8b8_SCR-20260814-hoyu.png",
      "images": [
        "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/b0a15e8b8_SCR-20260814-hoyu.png"
      ],
      "status_id": "6913f57422230d8c7ee2ef4d",
      "project_type_id": "6913f57422230d8c7ee2ef57",
      "target_completion": "",
      "vin": ""
    },
    {
      "id": "6a948b2cac1cd4d832de4774",
      "name": "26_9107_04 - Porsche 964 + 993 Interior Parts",
      "client_name": "Alexander Salerno",
      "featured_image_url": "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/3485ee4c6_SCR-20260904-oktn.jpeg",
      "images": [
        "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/3485ee4c6_SCR-20260904-oktn.jpeg"
      ],
      "status_id": "6913f57422230d8c7ee2ef4d",
      "project_type_id": "6977771ceb14196f4172eba0",
      "target_completion": "",
      "vin": ""
    },
    {
      "id": "6aa4b6fe43dc2c89d3755235",
      "name": "26_9107_05 - Strosek 1990 964",
      "client_name": "Dr. Alexander Salerno",
      "featured_image_url": "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/a862a4c16_SCR-20260911-rusw.jpeg",
      "images": [
        "https://base44.app/api/apps/6913f39cea91db2169cc30c4/files/mp/public/6913f39cea91db2169cc30c4/ce0a7d0fd_SCR-20260911-rugw.jpeg"
      ],
      "status_id": "691551550359abdc9ddb7d70",
      "project_type_id": "6977771ceb14196f4172eba0",
      "target_completion": "",
      "vin": ""
    }
  ],
  "statuses": [
    {
      "id": "6913f57422230d8c7ee2ef4d",
      "label": "Planning",
      "color": "#3B82F6"
    },
    {
      "id": "691551550359abdc9ddb7d70",
      "label": "Design",
      "color": "#2ce407"
    },
    {
      "id": "6913f57422230d8c7ee2ef4e",
      "label": "In Progress",
      "color": "#F59E0B"
    },
    {
      "id": "696d0fd8f7020a99986e1288",
      "label": "In Production",
      "color": "#f50505"
    },
    {
      "id": "6913f57422230d8c7ee2ef4f",
      "label": "On Hold",
      "color": "#6B7280"
    },
    {
      "id": "6913f57422230d8c7ee2ef50",
      "label": "Completed",
      "color": "#10B981"
    }
  ],
  "projectTypes": [
    {
      "id": "6a7fc73947e004c71eedd1c1",
      "name": "BRYAN AND LAURA"
    },
    {
      "id": "6977771ceb14196f4172eba0",
      "name": "SALES"
    },
    {
      "id": "6913f57422230d8c7ee2ef58",
      "name": "Custom Part(s)"
    },
    {
      "id": "691a83764db4d0e98f901608",
      "name": "PLANNING/DESIGN"
    },
    {
      "id": "69642a855cb1964fdd91a89c",
      "name": "WOVEN LEATHER PRODUCTION"
    },
    {
      "id": "6913f57422230d8c7ee2ef57",
      "name": "INTERIOR BUILD"
    },
    {
      "id": "6913f57422230d8c7ee2ef55",
      "name": "FULL BUILD"
    },
    {
      "id": "691694f2db3666e84440c152",
      "name": "UPHOLSTERY"
    },
    {
      "id": "6913f57422230d8c7ee2ef59",
      "name": "MECHANICAL INSTALL"
    },
    {
      "id": "69aeeec214d6bb4b624f975a",
      "name": "ON HOLD // WAITING"
    },
    {
      "id": "691e002f38f4d24927e46243",
      "name": "PRODUCT DEVELOPMENT"
    },
    {
      "id": "691736da5099d4f10ff41b45",
      "name": "Achtung Kraft // OPERATIONS"
    },
    {
      "id": "696eaf5cd5995e2ee938436a",
      "name": "EVENTS"
    },
    {
      "id": "694b0da94784179336cfd739",
      "name": "COMPLETED"
    }
  ],
  "clientPages": [
    {
      "id": "69f8942bd20b392e50061856",
      "title": "TEST LANDING PAGE - TITLE",
      "page_slug": "test-landing-page-title",
      "purpose": "update",
      "short_description": "This is a test landing Page Desc",
      "project_id": "69a5d4ce9e62a2920b5aedd6",
      "visibility": "public_link",
      "updated_date": "2026-05-04T13:03:11.948000"
    }
  ],
  "requestSummaries": {}
}
publicClientPortalData

Fetches detailed portal data for a specific project including requests, comments, decisions, and attachments

Purpose: Used on the ClientProjectPortal page to display all requests and activity for a specific project

https://projects.achtungkraft.com/functions/publicClientPortalData
token
string

Access token

slug
string

Client slug

projectId
string
required

The project ID to fetch data for

{ access: {...}, project: {...}, requests: [...], comments: [...], decisions: [...], attachments: [...] }
publicClientRequestDetail

Fetches detailed information about a specific feedback request including its thread of comments and decisions

Purpose: Used on the ClientFeedbackRequestDetail page to display a single request with all its activity

https://projects.achtungkraft.com/functions/publicClientRequestDetail
token
string

Access token

slug
string

Client slug

requestId
string
required

The request ID to fetch

{ access: {...}, request: {...}, comments: [...], decisions: [...], attachments: [...], users: [...], clientContacts: [...] }
publicAddClientComment
⚠️ Currently returning 500 errors

Creates a new comment on a feedback request, with optional attachments (images, files, links)

Purpose: Used when clients submit comments on requests via the ClientFeedbackRequestDetail page

https://projects.achtungkraft.com/functions/publicAddClientComment
token
string

Access token

slug
string

Client slug

requestId
string
required

Request to comment on

comment
string
required

Comment text

attachments
array

Array of attachment objects

{ success: true, comment: {...} }
publicClientDecision
⚠️ Currently returning 500 errors

Records a client's decision (approve/request changes) on a request or specific images

Purpose: Used when clients approve content or request changes via the review interface

https://projects.achtungkraft.com/functions/publicClientDecision
token
string

Access token

slug
string

Client slug

requestId
string
required

Request to make decision on

decision
string
required

approved or changes_requested

note
string

Optional note explaining the decision

targetAttachmentIds
array

Specific images being decided on

newImages
array

Reference images uploaded with decision

{ success: true, decision: {...} }

🔍 Debugging Tips

  • Check the browser console for additional frontend errors
  • Verify that token/slug credentials are valid before testing
  • The functions proxy to: https://projects.achtungkraft.com/functions/*
  • 500 errors suggest issues on the external API side, not the proxy functions
  • Check Base44 function logs for detailed error messages with the new logging