White List curl -X 'GET' \ 'http://localhost:8080/api/v1/admin/cors/whitelist' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/whitelist Server response Code Details 200 Response body Download { "count": 3, "items": [ { "ID": 3, "CreatedAt": "2026-02-15T07:43:24.505+03:00", "UpdatedAt": "2026-02-15T07:43:24.505+03:00", "DeletedAt": null, "origin": "http://localhost:8080", "description": "default seeded whitelist", "is_active": true, "created_by": "seed" }, { "ID": 2, "CreatedAt": "2026-02-15T07:43:24.488+03:00", "UpdatedAt": "2026-02-15T07:43:24.488+03:00", "DeletedAt": null, "origin": "http://localhost:5173", "description": "default seeded whitelist", "is_active": true, "created_by": "seed" }, { "ID": 1, "CreatedAt": "2026-02-15T07:43:24.473+03:00", "UpdatedAt": "2026-02-15T07:43:24.473+03:00", "DeletedAt": null, "origin": "http://localhost:3000", "description": "default seeded whitelist", "is_active": true, "created_by": "seed" } ] } Response headers content-length: 696 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:36:01 GMT whitelist add curl -X 'POST' \ 'http://localhost:8080/api/v1/admin/cors/whitelist' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "description": "test", "is_active": true, "origin": "http://test.com" }' Request URL http://localhost:8080/api/v1/admin/cors/whitelist Server response Code Details 201 Response body Download { "item": { "ID": 4, "CreatedAt": "2026-02-15T20:37:14.89782Z", "UpdatedAt": "2026-02-15T20:37:14.89782Z", "DeletedAt": null, "origin": "http://test.com", "description": "test", "is_active": true, "created_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 214 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:37:14 GMT vary: Origin whitelist Update curl -X 'PUT' \ 'http://localhost:8080/api/v1/admin/cors/whitelist/4' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "description": "Test", "is_active": true, "origin": "http://updatetest.com" }' Request URL http://localhost:8080/api/v1/admin/cors/whitelist/4 Server response Code Details 200 Response body Download { "item": { "ID": 4, "CreatedAt": "2026-02-15T23:37:14.897+03:00", "UpdatedAt": "2026-02-15T20:38:29.294829Z", "DeletedAt": null, "origin": "http://updatetest.com", "description": "Test", "is_active": true, "created_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 224 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:38:28 GMT vary: Origin whitelist delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/cors/whitelist/4' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/whitelist/4 Server response Code Details 200 Response body Download { "id": 4, "message": "soft deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:39:22 GMT vary: Origin whitelist hard delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/cors/whitelist/4/hard' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/whitelist/4/hard Server response Code Details 200 Response body Download { "id": 4, "message": "hard deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:40:08 GMT vary: Origin ######################################################################## Blacklist add curl -X 'POST' \ 'http://localhost:8080/api/v1/admin/cors/blacklist' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "is_active": true, "origin": "http://post.test.com", "reason": "spamer" }' Request URL http://localhost:8080/api/v1/admin/cors/blacklist Server response Code Details 201 Response body Download { "item": { "ID": 1, "CreatedAt": "2026-02-15T20:42:27.229052Z", "UpdatedAt": "2026-02-15T20:42:27.229052Z", "DeletedAt": null, "origin": "http://post.test.com", "reason": "spamer", "is_active": true, "created_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 218 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:42:26 GMT vary: Origin Blacklist List curl -X 'GET' \ 'http://localhost:8080/api/v1/admin/cors/blacklist' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/blacklist Server response Code Details 200 Response body Download { "count": 1, "items": [ { "ID": 1, "CreatedAt": "2026-02-15T23:42:27.229+03:00", "UpdatedAt": "2026-02-15T23:42:27.229+03:00", "DeletedAt": null, "origin": "http://post.test.com", "reason": "spamer", "is_active": true, "created_by": "beyhan@beyhan.dev" } ] } Response headers content-length: 235 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:43:26 GMT Blacklist Update curl -X 'PUT' \ 'http://localhost:8080/api/v1/admin/cors/blacklist/1' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "is_active": true, "origin": "http://update.test.com", "reason": "Sapammer Update" }' Request URL http://localhost:8080/api/v1/admin/cors/blacklist/1 Server response Code Details 200 Response body Download { "item": { "ID": 1, "CreatedAt": "2026-02-15T23:42:27.229+03:00", "UpdatedAt": "2026-02-15T20:44:35.812266Z", "DeletedAt": null, "origin": "http://update.test.com", "reason": "Sapammer Update", "is_active": true, "created_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 231 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:44:35 GMT vary: Origin Blacklist Delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/cors/blacklist/1' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/blacklist/1 Server response Code Details 200 Response body Download { "id": 1, "message": "soft deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:45:14 GMT vary: Origin Blacklist Hard Delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/cors/blacklist/1/hard' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/cors/blacklist/1/hard Server response Code Details 200 Response body Download { "id": 1, "message": "hard deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:45:40 GMT vary: Origin Rate Limit List curl -X 'GET' \ 'http://localhost:8080/api/v1/admin/rate-limit' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/rate-limit Server response Code Details 200 Response body Download { "count": 2, "items": [ { "ID": 2, "CreatedAt": "2026-02-15T07:43:24.453+03:00", "UpdatedAt": "2026-02-15T07:43:24.453+03:00", "DeletedAt": null, "name": "login", "description": "Login endpoint default rate limit", "max_requests": 10, "window_seconds": 60, "is_active": true, "updated_by": "seed" }, { "ID": 1, "CreatedAt": "2026-02-15T07:43:24.439+03:00", "UpdatedAt": "2026-02-15T07:43:24.439+03:00", "DeletedAt": null, "name": "register", "description": "Register endpoint default rate limit", "max_requests": 5, "window_seconds": 60, "is_active": true, "updated_by": "seed" } ] } Response headers content-length: 534 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:46:22 GMT Rate Limit Create curl -X 'POST' \ 'http://localhost:8080/api/v1/admin/rate-limit' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "description": "test için", "is_active": true, "max_requests": 100, "name": "test", "window_seconds": 100 }' Request URL http://localhost:8080/api/v1/admin/rate-limit Server response Code Details 201 Response body Download { "item": { "ID": 3, "CreatedAt": "2026-02-15T20:47:20.555797Z", "UpdatedAt": "2026-02-15T20:47:20.555797Z", "DeletedAt": null, "name": "test", "description": "test için", "max_requests": 100, "window_seconds": 100, "is_active": true, "updated_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 249 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:47:20 GMT vary: Origin Rate Limit Update curl -X 'PUT' \ 'http://localhost:8080/api/v1/admin/rate-limit/3' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' \ -H 'Content-Type: application/json' \ -d '{ "description": "update", "is_active": true, "max_requests": 34, "name": "update", "window_seconds": 34 }' Request URL http://localhost:8080/api/v1/admin/rate-limit/3 Server response Code Details 200 Response body Download { "item": { "ID": 3, "CreatedAt": "2026-02-15T23:47:20.555+03:00", "UpdatedAt": "2026-02-15T20:48:22.836239Z", "DeletedAt": null, "name": "update", "description": "update", "max_requests": 34, "window_seconds": 34, "is_active": true, "updated_by": "beyhan@beyhan.dev" } } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 247 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:48:22 GMT vary: Origin Rate Limit Delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/rate-limit/3' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/rate-limit/3 Server response Code Details 200 Response body Download { "id": 3, "message": "soft deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:48:56 GMT vary: Origin Rate Limit Hard Delete curl -X 'DELETE' \ 'http://localhost:8080/api/v1/admin/rate-limit/3/hard' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJlbWFpbCI6ImJleWhhbkBiZXloYW4uZGV2IiwiaXNfYWRtaW4iOnRydWUsImZpcnN0X25hbWUiOiJCZXloYW4iLCJsYXN0X25hbWUiOiJPxJ91ciIsInRva2VuX3R5cGUiOiJhY2Nlc3MiLCJzdWIiOiIxIiwiZXhwIjoxNzcxMTk0OTI4LCJpYXQiOjE3NzExODc3Mjh9.E6Kd65yQoIysJEDoHA-pVqLi4JvG4FBUeRdv8RiVh4E' Request URL http://localhost:8080/api/v1/admin/rate-limit/3/hard Server response Code Details 200 Response body Download { "id": 3, "message": "hard deleted" } Response headers access-control-allow-credentials: true access-control-allow-headers: Authorization,Content-Type,Accept,Origin,X-Requested-With access-control-allow-methods: GET,POST,PUT,PATCH,DELETE,OPTIONS access-control-allow-origin: http://localhost:8080 access-control-max-age: 600 content-length: 33 content-type: application/json; charset=utf-8 date: Sun,15 Feb 2026 20:49:21 GMT vary: Origin