Skip to content

Conversation

@edospadoni
Copy link
Member

@edospadoni edospadoni commented Jan 29, 2026

📋 Description

Briefly describe what this PR does and why it's needed.

Related Issue: #[ISSUE_NUMBER]

🚀 Testing Environment

To trigger a fresh deployment of all services in the PR preview environment, comment:

update deploy

Automatic PR environments:

✅ Merge Checklist

Code Quality:

  • Backend Tests
  • Collect Tests
  • Sync Tests
  • Frontend Tests

Builds:

  • Backend Build
  • Collect Build
  • Sync Build
  • Frontend Build

@github-actions
Copy link
Contributor

🔗 Redirect URIs Added to Logto

The following redirect URIs have been automatically added to the Logto application configuration:

Redirect URIs:

  • https://my-frontend-qa-pr-38.onrender.com/login-redirect
  • https://my-proxy-qa-pr-38.onrender.com/login-redirect

Post-logout redirect URIs:

  • https://my-frontend-qa-pr-38.onrender.com/login
  • https://my-proxy-qa-pr-38.onrender.com/login

These will be automatically removed when the PR is closed or merged.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 29, 2026

ℹ️ My API content change detected

Preview documentation

No structural change, nothing to display.

Powered by Bump.sh

@edospadoni
Copy link
Member Author

⚠️ Breaking change for frontend: all :id path parameters now use logto_id

With this PR, all APIs for users, distributors, resellers, customers that previously accepted a database UUID in the path now expect a Logto ID (e.g. jf584cz36kce).

APIs for systems and applications remain unchanged (database UUID).


Users

Method Endpoint Change
GET /api/users/:id :id = logto_id
PUT /api/users/:id :id = logto_id
DELETE /api/users/:id :id = logto_id
PATCH /api/users/:id/password :id = logto_id
PATCH /api/users/:id/suspend :id = logto_id
PATCH /api/users/:id/reactivate :id = logto_id

Distributors

Method Endpoint Change
GET /api/distributors/:id :id = logto_id
PUT /api/distributors/:id :id = logto_id
DELETE /api/distributors/:id :id = logto_id
GET /api/distributors/:id/stats :id = logto_id
PATCH /api/distributors/:id/suspend :id = logto_id
PATCH /api/distributors/:id/reactivate :id = logto_id

Resellers

Method Endpoint Change
GET /api/resellers/:id :id = logto_id
PUT /api/resellers/:id :id = logto_id
DELETE /api/resellers/:id :id = logto_id
GET /api/resellers/:id/stats :id = logto_id
PATCH /api/resellers/:id/suspend :id = logto_id
PATCH /api/resellers/:id/reactivate :id = logto_id

Customers

Method Endpoint Change
GET /api/customers/:id :id = logto_id
PUT /api/customers/:id :id = logto_id
DELETE /api/customers/:id :id = logto_id
GET /api/customers/:id/stats :id = logto_id
PATCH /api/customers/:id/suspend :id = logto_id
PATCH /api/customers/:id/reactivate :id = logto_id

Impersonation

Method Endpoint Change
POST /api/impersonate user_id in request body = logto_id

What does NOT change

  • GET/POST /api/systems/:id/* → still database UUID (systems have no logto_id)
  • GET/PATCH /api/applications/:id/* → still database UUID
  • List APIs (GET /api/users, GET /api/distributors, etc.) → unchanged, responses still return both id and logto_id
  • Self-service (/api/auth/me/*) → unchanged (uses JWT context)

In practice for the frontend

Where you previously used entity.id to build the URL, now use entity.logto_id for users, distributors, resellers and customers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants