Example

Admin Commands

Route-level auth via middleware, typed boolean and number params, push-based announcements.

local ADMINS = { [123456789] = true }

app:Use("admin-guard", function(Player, Payload)
    if Payload.route:match("^admin/") and not ADMINS[Player.UserId] then
        return false  -- 403
    end
end)

app:Post("admin/kick/:userId=number", function(Player, Payload, req, res)
    local target = game.Players:GetPlayerByUserId(req.params.userId)
    if not target then res:Status(404):Error("Not in server"); return end
    target:Kick(req.data and req.data.reason or "Kicked")
    res:Send({ kicked = target.Name })
end)

app:Post("admin/god/:userId=number/:state=boolean", function(Player, Payload, req, res)
    -- req.params.state is already a boolean, req.params.userId already a number
    app:Push(game.Players:GetPlayerByUserId(req.params.userId), "admin.god", { enabled = req.params.state })
    res:Send({ ok = true })
end)

app:Post("admin/announce", function(Player, Payload, req, res)
    app:PushAll("admin.announce", { message = req.data.message, from = Player.Name })
    res:Send({ ok = true })
end)

What this demonstrates

PatternDetail
Route-scoped middlewarePayload.route:match("^admin/") | guard only admin routes
Typed :number param:userId=number | arrives as a Lua number
Typed :boolean param:state=boolean | "true"/"false" coerced to boolean
Targeted pushapp:Push(player, ...) | one specific player
Broadcast pushapp:PushAll("admin.announce") | all players

See also

App | middleware, push  ·  Router | typed params  ·  Middleware Guide | route-scoped guards  ·  Authentication Guide | full auth middleware patterns