mirror of
https://github.com/internetee/registry.git
synced 2025-07-24 03:30:33 +02:00
Add domain list documentation
This commit is contained in:
parent
29e06d83c0
commit
d49b4b5c0f
3 changed files with 106 additions and 6 deletions
120
doc/registrant-api/v1/authentication.md
Normal file
120
doc/registrant-api/v1/authentication.md
Normal file
|
@ -0,0 +1,120 @@
|
|||
# Authentication
|
||||
|
||||
## Authenticating with mobileID or ID-card
|
||||
|
||||
For specified partners the API allows for use of data from mobile ID for
|
||||
authentication. API client should perform authentication with eID according to
|
||||
the approriate documentation, and then pass on values from the webserver's
|
||||
certificate to the API server.
|
||||
|
||||
## POST /repp/v1/registrant/auth/eid/token
|
||||
|
||||
Returns a bearer token to be used for further API requests. Tokens are valid for 2 hours since their creation.
|
||||
|
||||
#### Paramaters
|
||||
|
||||
Values in brackets represent values that come from the id card certificate.
|
||||
|
||||
| Field name | Required | Type | Allowed values | Description |
|
||||
| ----------------- | -------- | ---- | -------------- | ----------- |
|
||||
| ident | true | String | | Identity code of the user (`serialNumber`) |
|
||||
| first_name | true | String | | Name of the customer (`GN`) |
|
||||
| last_name | true | String | | Name of the customer (`SN`) |
|
||||
| country | true | String | 'ee' | Code of the country that issued the id card (`C`) |
|
||||
| issuing authority | true | String | 'AS Sertifitseerimiskeskus' | |
|
||||
| | | | | |
|
||||
|
||||
|
||||
#### Request
|
||||
```
|
||||
POST /repp/v1/auth/token HTTP/1.1
|
||||
Accept: application/json
|
||||
Content-length: 0
|
||||
Content-type: application/json
|
||||
|
||||
{
|
||||
"ident": "30110100103",
|
||||
"first_name": "Jaan",
|
||||
"last_name": "Tamm",
|
||||
"country": "ee",
|
||||
"issuing authority": "AS Sertifitseerimiskeskus"
|
||||
}
|
||||
```
|
||||
|
||||
#### Response
|
||||
```
|
||||
HTTP/1.1 201
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
Content-Length: 0
|
||||
Content-Type: application.json
|
||||
|
||||
|
||||
{
|
||||
"access_token": "<SOME TOKEN>",
|
||||
"expires_at": "2018-07-13 11:30:51 UTC",
|
||||
"type": "Bearer"
|
||||
}
|
||||
```
|
||||
|
||||
## POST /repp/v1/auth/username/token -- NOT IMPLEMENTED
|
||||
|
||||
#### Paramaters
|
||||
|
||||
Values in brackets represent values that come from the id card certificate
|
||||
|
||||
| Field name | Required | Type | Allowed values | Description |
|
||||
| ----------------- | -------- | ---- | -------------- | ----------- |
|
||||
| username | true | String | Username as provided by the user | |
|
||||
| password | true | String | Password as provided by the user | |
|
||||
|
||||
|
||||
#### Request
|
||||
```
|
||||
POST /repp/v1/auth/token HTTP/1.1
|
||||
Accept: application/json
|
||||
Content-length: 0
|
||||
Content-type: application/json
|
||||
```
|
||||
|
||||
#### Response
|
||||
```
|
||||
HTTP/1.1 201
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
Content-Length: 0
|
||||
Content-Type: application.json
|
||||
|
||||
|
||||
{
|
||||
"access_token": "<SOME TOKEN>",
|
||||
"expires_at": "2018-07-13 11:30:51 UTC",
|
||||
"type": "Bearer"
|
||||
}
|
||||
```
|
||||
|
||||
## Implementation notes:
|
||||
|
||||
We do not need to store the session data at all, instead we can levarage AES encryption and use
|
||||
Rails secret as the key. General approximation:
|
||||
|
||||
```ruby
|
||||
class AuthenticationToken
|
||||
def initialize(secret = Rails.application.config.secret_key_base, values = {})
|
||||
end
|
||||
|
||||
def create_token_hash
|
||||
data = values.to_s
|
||||
|
||||
cipher = OpenSSL::Cipher::AES.new(256, :CBC)
|
||||
cipher.encrypt
|
||||
|
||||
encrypted = cipher.update(data) + cipher.final
|
||||
base64_encoded = Base64.encode64(encrypted)
|
||||
|
||||
{
|
||||
token: base64_encoded,
|
||||
expires_in = values[:expires_in]
|
||||
type: "Bearer"
|
||||
}
|
||||
end
|
||||
end
|
||||
```
|
102
doc/registrant-api/v1/domain.md
Normal file
102
doc/registrant-api/v1/domain.md
Normal file
|
@ -0,0 +1,102 @@
|
|||
# Domain related actions
|
||||
|
||||
## GET /repp/v1/registrant/domains
|
||||
Returns domains of the current registrar.
|
||||
|
||||
|
||||
#### Parameters
|
||||
|
||||
| Field name | Required | Type | Allowed values | Description |
|
||||
| ---------- | -------- | ---- | -------------- | ----------- |
|
||||
| limit | false | Integer | [1..200] | How many domains to show |
|
||||
| offset | false | Integer | | Domain number to start at |
|
||||
| details | false | String | ["true", "false"] | Whether to include details |
|
||||
|
||||
#### Request
|
||||
```
|
||||
GET repp/v1/registrant/domains?limit=1&details=true HTTP/1.1
|
||||
Accept: application/json
|
||||
Authorization: Bearer Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
||||
Content-Length: 0
|
||||
Content-Type: application/json
|
||||
```
|
||||
|
||||
#### Response
|
||||
```
|
||||
HTTP/1.1 200
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
Content-Length: 808
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"domains": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "domain0.ee",
|
||||
"registrar_id": 2,
|
||||
"registered_at": "2015-09-09T09:11:14.861Z",
|
||||
"status": null,
|
||||
"valid_from": "2015-09-09T09:11:14.861Z",
|
||||
"valid_to": "2016-09-09T09:11:14.861Z",
|
||||
"registrant_id": 1,
|
||||
"transfer_code": "98oiewslkfkd",
|
||||
"created_at": "2015-09-09T09:11:14.861Z",
|
||||
"updated_at": "2015-09-09T09:11:14.860Z",
|
||||
"name_dirty": "domain0.ee",
|
||||
"name_puny": "domain0.ee",
|
||||
"period": 1,
|
||||
"period_unit": "y",
|
||||
"creator_str": null,
|
||||
"updator_str": null,
|
||||
"legacy_id": null,
|
||||
"legacy_registrar_id": null,
|
||||
"legacy_registrant_id": null,
|
||||
"outzone_at": "2016-09-24T09:11:14.861Z",
|
||||
"delete_at": "2016-10-24T09:11:14.861Z",
|
||||
"registrant_verification_asked_at": null,
|
||||
"registrant_verification_token": null,
|
||||
"pending_json": {
|
||||
},
|
||||
"force_delete_at": null,
|
||||
"statuses": [
|
||||
"ok"
|
||||
],
|
||||
"reserved": false,
|
||||
"status_notes": {
|
||||
},
|
||||
"statuses_backup": [
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"total_number_of_records": 2
|
||||
}
|
||||
```
|
||||
|
||||
## GET repp/v1/registrant/domains
|
||||
Returns domain names with offset.
|
||||
|
||||
|
||||
#### Request
|
||||
```
|
||||
GET repp/v1/registrant/domains?offset=1 HTTP/1.1
|
||||
Accept: application/json
|
||||
Authorization: Bearer Z2l0bGFiOmdoeXQ5ZTRmdQ==
|
||||
Content-Length: 0
|
||||
Content-Type: application/json
|
||||
```
|
||||
|
||||
#### Response
|
||||
```
|
||||
HTTP/1.1 200
|
||||
Cache-Control: max-age=0, private, must-revalidate
|
||||
Content-Length: 54
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"domains": [
|
||||
"domain1.ee"
|
||||
],
|
||||
"total_number_of_records": 2
|
||||
}
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue