Files
Leantime/tests/Httprequests/JsonRPC-bearer.http

133 lines
3.1 KiB
HTTP

# Bearer-auth JSON-RPC requests for local exploration / debugging the
# Bearer auth path on /api/jsonrpc.
#
# Setup (one-time per environment):
# 1. Copy http-client.sample.env.json -> http-client.env.json
# 2. Edit http-client.env.json: set base-url and bearer-token
# 3. To mint a fresh bearer (no AdvancedAuth plugin required):
# php bin/leantime auth:create-bearer-token --email=you@example.com --quiet-output
# Copy the output into the bearer-token env var.
#
# These mirror the BearerApiCest.php contract suite, which is what runs
# in CI on every PR. Use this file when you need to poke at the auth
# behavior manually (different user, different project, different role)
# without running the full Codeception harness.
###
# whoami server-authoritative session resolution from Bearer
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Users.Users.getUser",
"params": {},
"id": 1
}
###
# Projects accessible to the bearer's user
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Projects.Projects.getProjectsUserHasAccessTo",
"params": {},
"id": 1
}
###
# Open tickets across all accessible projects
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Tickets.Tickets.getAllOpenUserTickets",
"params": {},
"id": 1
}
###
# Get a single ticket projectIdParam-resolved permission check.
# This is the call that started returning -32001 in the 2026-06 deploy.
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Tickets.Tickets.getTicket",
"params": {"id": 1},
"id": 1
}
###
# Quick-add a ticket RPC mutation under bearer
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Tickets.Tickets.quickAddTicket",
"params": {
"params": {
"headline": "Bearer-auth manual test",
"projectId": 1
}
},
"id": 1
}
###
# Get comments on a ticket entityScoped permission check.
# Second of the 2026-06 regression pair.
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Comments.Comments.getComments",
"params": {"module": "ticket", "moduleId": 1},
"id": 1
}
###
# Unread notifications count
POST {{ base-url }}/api/jsonrpc
Authorization: Bearer {{ bearer-token }}
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Notifications.Notifications.getUnreadCount",
"params": {},
"id": 1
}
###
# Missing bearer expect 401
POST {{ base-url }}/api/jsonrpc
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "leantime.rpc.Tickets.Tickets.getAllOpenUserTickets",
"params": {},
"id": 1
}