Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f133c43
docs: close out dp-20 audit — remove resolved TODOs, update PROGRESS.md
Jordanmuss99 Apr 28, 2026
a979596
fix(resources): batch location availability reads
Jordanmuss99 Aug 17, 2026
35ac195
test: support standalone Paymenter checkouts
Jordanmuss99 Aug 17, 2026
f652667
docs: refresh availability security wiki
Jordanmuss99 Aug 17, 2026
b978393
test: harden standalone database isolation
Jordanmuss99 Aug 17, 2026
ae33b46
docs: reconcile wiki with batched location reads
Jordanmuss99 Aug 17, 2026
6347021
docs: remove residual per-node wiki flow
Jordanmuss99 Aug 17, 2026
1d8ce1a
fix: harden test isolation and availability errors
Jordanmuss99 Aug 17, 2026
c34192e
docs: remove final per-node availability remnants
Jordanmuss99 Aug 17, 2026
77c9807
test: atomically claim standalone sqlite database
Jordanmuss99 Aug 17, 2026
2a9c3a4
fix: fail closed on malformed availability payloads
Jordanmuss99 Aug 17, 2026
d21bcfc
test: generate isolated standalone sqlite database
Jordanmuss99 Aug 17, 2026
6ebc7ce
fix: reject incomplete capacity payloads
Jordanmuss99 Aug 17, 2026
ec7ba5e
docs: align wiki and reconciliation status
Jordanmuss99 Aug 17, 2026
2f75665
test: isolate sqlite without filesystem paths
Jordanmuss99 Aug 17, 2026
d97a0ac
fix: use one validated availability snapshot
Jordanmuss99 Aug 17, 2026
a7f77f5
docs: document single snapshot and cpu policy gate
Jordanmuss99 Aug 17, 2026
975105c
fix: reject truncated capacity snapshots
Jordanmuss99 Aug 17, 2026
d65c73d
docs: align strict snapshot contracts
Jordanmuss99 Aug 17, 2026
a349b2a
fix: reject duplicate capacity records
Jordanmuss99 Aug 17, 2026
b078be9
docs: record strict identity validation
Jordanmuss99 Aug 17, 2026
1382e83
fix: verify complete capacity pages
Jordanmuss99 Aug 17, 2026
0afff90
docs: define strict capacity boundaries
Jordanmuss99 Aug 17, 2026
6b7f83b
fix: distinguish missing relationships
Jordanmuss99 Aug 17, 2026
64c04ea
docs: refresh strict boundary anchors
Jordanmuss99 Aug 17, 2026
b8b0f2d
docs: name strict relationship parser
Jordanmuss99 Aug 17, 2026
87f21b8
docs: require full safety rebase
Jordanmuss99 Aug 17, 2026
3202e2c
docs: repair qoder source anchors
Jordanmuss99 Aug 17, 2026
fcc3df9
docs: align qoder anchor labels
Jordanmuss99 Aug 17, 2026
a9e5b25
docs: normalize qoder whitespace
Jordanmuss99 Aug 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions .qoder/repowiki/en/content/API Reference/API Reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ F --> I["AvailabilityController<br/>GET /availability/{locationId}/nodes"]
- [routes/api.php:17-40](file://routes/api.php#L17-L40)

**Section sources**
- [routes/api.php:1-41](file://routes/api.php#L1-L41)
- [routes/api.php:1-40](file://routes/api.php#L1-L40)

## Core Components
- AvailabilityController: Returns per-location availability aggregates and, when authenticated as admin, detailed node information.
Expand All @@ -70,10 +70,10 @@ F --> I["AvailabilityController<br/>GET /availability/{locationId}/nodes"]

**Section sources**
- [AvailabilityController.php:9-70](file://Http/Controllers/Api/AvailabilityController.php#L9-L70)
- [PricingController.php:12-158](file://Http/Controllers/Api/PricingController.php#L12-L158)
- [ReservationController.php:13-138](file://Http/Controllers/Api/ReservationController.php#L13-L138)
- [AdminCapacityController.php:8-63](file://Http/Controllers/Api/Admin/AdminCapacityController.php#L8-L63)
- [AdminReservationController.php:9-76](file://Http/Controllers/Api/Admin/AdminReservationController.php#L9-L76)
- [PricingController.php:12-157](file://Http/Controllers/Api/PricingController.php#L12-L157)
- [ReservationController.php:13-137](file://Http/Controllers/Api/ReservationController.php#L13-L137)
- [AdminCapacityController.php:8-62](file://Http/Controllers/Api/Admin/AdminCapacityController.php#L8-L62)
- [AdminReservationController.php:9-75](file://Http/Controllers/Api/Admin/AdminReservationController.php#L9-L75)

## Architecture Overview
The API integrates with Paymenter core models and services and with the Pterodactyl panel via HTTP. Services encapsulate business logic and data aggregation.
Expand All @@ -88,11 +88,12 @@ participant ResCalc as "ResourceCalculationService"
participant Ptero as "Pterodactyl API"
Client->>Routes : GET /api/dynamic-pterodactyl/availability/{locationId}
Routes->>AvailCtrl : getByLocation(locationId)
AvailCtrl->>NodeSel : getMaxAvailable(locationId)
AvailCtrl->>ResCalc : getLocationAvailability(locationId)
ResCalc->>Ptero : fetch nodes/servers (real-time)
Ptero-->>ResCalc : node/server data
ResCalc-->>AvailCtrl : aggregated availability
AvailCtrl->>NodeSel : getMaxAvailable(locationId, locationData)
NodeSel-->>AvailCtrl : max_available from same snapshot
AvailCtrl-->>Client : {success,data : {location_id,max_memory,max_cpu,max_disk,node_count,has_capacity,resource_capacity}}
```

Expand Down Expand Up @@ -145,7 +146,7 @@ AvailCtrl-->>Client : {success,data : {location_id,max_memory,max_cpu,max_disk,n
- has_capacity: boolean
- resource_capacity: object with memory/cpu/disk booleans
- Errors:
- 500: failure to fetch availability (includes message and error fields)
- 500: failure to fetch availability (returns only the generic message; exception details are reported server-side)

- GET /api/dynamic-pterodactyl/admin/availability/{locationId}/nodes
- Auth: web + auth + admin
Expand Down Expand Up @@ -203,7 +204,7 @@ Important:

**Section sources**
- [routes/api.php:17-22](file://routes/api.php#L17-L22)
- [PricingController.php:24-158](file://Http/Controllers/Api/PricingController.php#L24-L158)
- [PricingController.php:24-157](file://Http/Controllers/Api/PricingController.php#L24-L157)
- [StoreReservationRequest.php:38-112](file://Http/Requests/StoreReservationRequest.php#L38-L112)

#### Reservations
Expand Down Expand Up @@ -287,8 +288,8 @@ Notes:

**Section sources**
- [routes/api.php:24-30](file://routes/api.php#L24-L30)
- [ReservationController.php:24-138](file://Http/Controllers/Api/ReservationController.php#L24-L138)
- [StoreReservationRequest.php:10-163](file://Http/Requests/StoreReservationRequest.php#L10-L163)
- [ReservationController.php:24-137](file://Http/Controllers/Api/ReservationController.php#L24-L137)
- [StoreReservationRequest.php:10-162](file://Http/Requests/StoreReservationRequest.php#L10-L162)
- [ReservationService.php:43-141](file://Services/ReservationService.php#L43-L141)
- [ResourceReservationPolicy.php:25-58](file://Policies/ResourceReservationPolicy.php#L25-L58)

Expand Down Expand Up @@ -317,7 +318,7 @@ Notes:

**Section sources**
- [routes/api.php:32-40](file://routes/api.php#L32-L40)
- [AdminCapacityController.php:17-63](file://Http/Controllers/Api/Admin/AdminCapacityController.php#L17-L63)
- [AdminCapacityController.php:17-62](file://Http/Controllers/Api/Admin/AdminCapacityController.php#L17-L62)
- [ResourceCalculationService.php:69-141](file://Services/ResourceCalculationService.php#L69-L141)

#### Admin Reservations
Expand Down Expand Up @@ -352,7 +353,7 @@ Notes:

**Section sources**
- [routes/api.php:32-40](file://routes/api.php#L32-L40)
- [AdminReservationController.php:18-76](file://Http/Controllers/Api/Admin/AdminReservationController.php#L18-L76)
- [AdminReservationController.php:18-75](file://Http/Controllers/Api/Admin/AdminReservationController.php#L18-L75)
- [ReservationService.php:208-241](file://Services/ReservationService.php#L208-L241)

## Dependency Analysis
Expand Down Expand Up @@ -519,4 +520,4 @@ The Dynamic Pterodactyl extension exposes a focused set of APIs for availability
- Validate inputs on the client side but rely on server-side validation and authorization.
- Do not expose node-level details to customers; use admin endpoints for internal tools only.

[No sources needed since this section provides general guidance]
[No sources needed since this section provides general guidance]
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ Notes:
- [api.php:32-40](file://routes/api.php#L32-L40)
- [AdminCapacityController.php:17-61](file://Http/Controllers/Api/Admin/AdminCapacityController.php#L17-L61)
- [ResourceCalculationService.php:69-141](file://Services/ResourceCalculationService.php#L69-L141)
- [ResourceCalculationService.php:247-289](file://Services/ResourceCalculationService.php#L247-L289)
- [ResourceCalculationService.php:227-257](file://Services/ResourceCalculationService.php#L227-L257)
- [ResourceCalculationService.php:426-450](file://Services/ResourceCalculationService.php#L426-L450)

### Reservation Management: GET /api/dynamic-pterodactyl/admin/reservations
Expand Down Expand Up @@ -349,10 +349,10 @@ RESOURCE_RESERVATION ||--o| SERVICE : "service_id"
```

**Diagram sources**
- [ResourceReservation.php:10-66](file://Models/ResourceReservation.php#L10-L66)
- [ResourceReservation.php:10-65](file://Models/ResourceReservation.php#L10-L65)

**Section sources**
- [ResourceReservation.php:10-66](file://Models/ResourceReservation.php#L10-L66)
- [ResourceReservation.php:10-65](file://Models/ResourceReservation.php#L10-L65)

## Dependency Analysis
- Admin controllers depend on services:
Expand Down
Loading