diff --git a/repeater/web/api_endpoints.py b/repeater/web/api_endpoints.py index b7573ce..401f2c4 100644 --- a/repeater/web/api_endpoints.py +++ b/repeater/web/api_endpoints.py @@ -2651,6 +2651,9 @@ class APIEndpoints: diff --git a/repeater/web/openapi.yaml b/repeater/web/openapi.yaml index eef60f9..8b063c8 100644 --- a/repeater/web/openapi.yaml +++ b/repeater/web/openapi.yaml @@ -645,6 +645,133 @@ paths: items: $ref: '#/components/schemas/Identity' + /acl_info: + get: + tags: [ACL] + summary: Get ACL information + description: Get access control list information for identities + parameters: + - name: identity_hash + in: query + schema: + type: string + pattern: '^0x[0-9a-fA-F]{2}$' + description: Identity hash + example: "0x42" + - name: identity_name + in: query + schema: + type: string + description: Identity name + example: "General" + responses: + '200': + description: ACL information + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + data: + type: object + + /acl_clients: + get: + tags: [ACL] + summary: List ACL clients + description: Get list of clients in access control list + parameters: + - name: identity_hash + in: query + schema: + type: string + pattern: '^0x[0-9a-fA-F]{2}$' + description: Identity hash + example: "0x42" + - name: identity_name + in: query + schema: + type: string + description: Identity name + example: "General" + responses: + '200': + description: ACL clients list + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + data: + type: object + properties: + clients: + type: array + items: + $ref: '#/components/schemas/ACLEntry' + + /acl_remove_client: + post: + tags: [ACL] + summary: Remove client from ACL + description: Remove a client from the access control list + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [identity_hash, client_pubkey] + properties: + identity_hash: + type: string + pattern: '^0x[0-9a-fA-F]{2}$' + description: Identity hash + example: "0x42" + identity_name: + type: string + description: Identity name (alternative to hash) + example: "General" + client_pubkey: + type: string + pattern: '^[0-9a-fA-F]{64}$' + description: Client public key to remove + example: "abc123def456..." + responses: + '200': + description: Client removed from ACL + content: + application/json: + schema: + $ref: '#/components/schemas/SuccessResponse' + + /acl_stats: + get: + tags: [ACL] + summary: Get ACL statistics + description: Get statistics about access control lists + responses: + '200': + description: ACL statistics + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + data: + type: object + properties: + total_entries: + type: integer + by_identity: + type: object + /room_messages: get: tags: [Room Server]