storj/satellite/admin
Michal Niewrzal fe6a6f063f private/testplanet: cleanup predefined data generation
Use Console service to create user and project instead direct DB
modifications.

Change-Id: Ib0074b38313b3dc43b7d8d63ab2775d29028fb7b
2020-05-20 12:38:43 +00:00
..
common.go satellite/admin: administrative endpoint 2020-02-12 12:12:50 +02:00
coupon_test.go private/testplanet: cleanup predefined data generation 2020-05-20 12:38:43 +00:00
coupon.go satellite/admin: add coupon deletion (#3893) 2020-05-19 15:49:44 +03:00
project_test.go satellite/admin: add user creation endpoint (#3889) 2020-05-18 22:37:18 +02:00
project.go satellite/admin: add user creation endpoint (#3889) 2020-05-18 22:37:18 +02:00
README.md satellite/admin: add user update endpoint (#3896) 2020-05-20 12:20:04 +03:00
server_test.go satellite/admin: add project limit modification and authorization token 2020-02-17 07:56:16 +00:00
server.go satellite/admin: add user update endpoint (#3896) 2020-05-20 12:20:04 +03:00
user_test.go private/testplanet: cleanup predefined data generation 2020-05-20 12:38:43 +00:00
user.go satellite/admin: add user update endpoint (#3896) 2020-05-20 12:20:04 +03:00

satellite/admin

Satellite Admin package provides API endpoints for administrative tasks.

Requires setting Authorization header for requests.

POST /api/user

Adds a new user.

A successful request:

{
    "email": "alice@mail.test",
    "fullName": "Alice Test",
    "password": "password"
}

A successful response:

{
    "id":           "12345678-1234-1234-1234-123456789abc",
    "email":        "alice@mail.test",
    "fullName":     "Alice Test",
    "shortName":    "",
    "passwordHash": ""
}

PUT /api/user/{user-email}

Updates the details of existing user found by its email.

A successful update request:

{
    "email": "alice+2@mail.test",
    "shortName": "Al",
    "passwordHash": "1234abcd"
}

GET /api/user/{user-email}

This endpoint returns information about user and their projects.

A successful response:

{
    "user":{
        "id": "12345678-1234-1234-1234-123456789abc",
        "fullName": "Alice Bob",
        "email":"alice@example.test"
    },
    "projects":[
        {
            "id": "abcabcab-1234-abcd-abcd-abecdefedcab",
            "name": "Project",
            "description": "Project to store data.",
            "ownerId": "12345678-1234-1234-1234-123456789abc"
        }
    ],
    "coupons": [
        {
            "id":          "2fcdbb8f-8d4d-4e6d-b6a7-8aaa1eba4c89",
            "userId":      "12345678-1234-1234-1234-123456789abc",
            "duration":    2,
            "amount":      3000,
            "description": "promotional coupon (valid for 2 billing cycles)",
            "type":        0, 
            "status":      0,
            "created":     "2020-05-19T00:34:13.265761+02:00"
        }
    ]
}

POST /api/coupon

Adds a coupon for specific user.

A successful request:

{
    "userId":      "12345678-1234-1234-1234-123456789abc",
    "duration":    2,
    "amount":      3000,
    "description": "promotional coupon (valid for 2 billing cycles)"
}

A successful response:

{
    "id": "2fcdbb8f-8d4d-4e6d-b6a7-8aaa1eba4c89"
}

GET /api/coupon/{coupon-id}

Gets a coupon with the specified id.

A successful request:

{
    "id": "2fcdbb8f-8d4d-4e6d-b6a7-8aaa1eba4c89"
}

A successful response:

{
    "id":          "2fcdbb8f-8d4d-4e6d-b6a7-8aaa1eba4c89",
    "userId":      "12345678-1234-1234-1234-123456789abc",
    "duration":    2,
    "amount":      3000,
    "description": "promotional coupon (valid for 2 billing cycles)",
    "type":        0, 
    "status":      0,
    "created":     "2020-05-19T00:34:13.265761+02:00"
}

DELETE /api/coupon/{coupon-id}

Deletes the specified coupon.

GET /api/project/{project-id}/limit

This endpoint returns information about project limits.

A successful response:

{
    "usage": {
        "amount":"0 B",
        "bytes":0
    },
    "rate":{
        "rps":0
    }
}

POST /api/project/{project-id}/limit?usage={value}

Updates usage limit for a project.

POST /api/project/{project-id}/limit?rate={value}

Updates rate limit for a project.

DELETE /api/project/{project-id}

Deletes the project.

POST /api/project

Adds a project for specific user.

A successful request:

{
    "ownerId": "ca7aa0fb-442a-4d4e-aa36-a49abddae837",
    "projectName": "My Second Project"
}

A successful response:

{
    "projectId": "ca7aa0fb-442a-4d4e-aa36-a49abddae837"
}