".
For example, 'phone@bob(key)' is 1234 (value). Now another key called altPhone@bob can refer to phone@bob by referencing it as altPhone@bob = atsign://phone@bob.
- When the user does a lookup on the key that contains a reference, the Secondary Server should return a fully resolved value.
+ When the user does a lookup on the key that contains a reference, the atServer should return a fully resolved value.
@@ -178,7 +178,7 @@ Text or binary values can be saved in a Secondary Server. The size of the value
Yes
|
- @sign that has created the key
+ | atSign that has created the key
|
@@ -194,7 +194,7 @@ Text or binary values can be saved in a Secondary Server. The size of the value
No
|
- @sign of the user with whom the key has been shared. Can be null if not shared with anyone.
+ | atSign of the user with whom the key has been shared. Can be null if not shared with anyone.
|
@@ -234,7 +234,7 @@ Text or binary values can be saved in a Secondary Server. The size of the value
No
|
- True if the key can be cached by another @sign user.
+ | True if the key can be cached by another atSign user.
|
@@ -258,7 +258,7 @@ Text or binary values can be saved in a Secondary Server. The size of the value
No
|
- Indicates if a cached key needs to be deleted when the @sign user who has originally shared it deletes it.
+ | Indicates if a cached key needs to be deleted when the atSign user who has originally shared it deletes it.
|
@@ -282,24 +282,24 @@ Text or binary values can be saved in a Secondary Server. The size of the value
### 2. Commit Log
-A Secondary Server should record any create, update and delete operations in a commit log. The Commit Log should record these operations with a unique commit id so that users of the secondary can lookup operations that happened on or after a given commit id.
+An atServer should record any create, update and delete operations in a commit log. The Commit Log should record these operations with a unique commit id so that users of the atServer can lookup operations that happened on or after a given commit id.
-A Secondary Server should provide a way to compact the Commit Log based on time and size.
+An atServer should provide a way to compact the Commit Log based on time and size.
### 3. Access Log
-A Secondary Server should record the following user actions: user login, user authentication and lookup. The Access Log should record these operations so that users of the secondary can retrieve various statistics such as the most visited @sign or most visited keys.
+An atServer should record the following user actions: user login, user authentication, and lookup. The Access Log should record these operations so that users of the atServer can retrieve various statistics such as the most visited atSign or most visited keys.
-A Secondary Server should provide a way to compact the Access Log based on time and size.
+An atServer should provide a way to compact the Access Log based on time and size.
### 4. Notification Log
-A Secondary Server should record any notifications that have been received and sent. Please check the `notify` verb specification for details on how a notification should be sent.
+An atServer should record any notifications that have been received and sent. Please check the `notify` verb specification for details on how a notification should be sent.
-A Secondary Server should provide a way to compact the Notification Log based on time and size.
+An atServer should provide a way to compact the Notification Log based on time and size.
## Standard Keys
-A Secondary Server should have the following standard keys:
+An atServer should have the following standard keys:
@@ -312,7 +312,7 @@ A Secondary Server should have the following standard keys:
public:publickey@
|
- Public key used by other atsigns for encryption.
+ | Public key used by other atSigns for encryption.
|
@@ -330,13 +330,13 @@ A Secondary Server should have the following standard keys:
:shared_key@
|
- Symmetric key used to encrypt/decrypt self atsign data
+ | Symmetric key used to encrypt/decrypt self atSign data
|
## Configuration Parameters
-A Secondary Server should honor the following configuration parameters.
+An atServer should honor the following configuration parameters.
@@ -355,7 +355,7 @@ A Secondary Server should honor the following configuration parameters.
true/false
|
- If set to true, a Secondary Server should automatically notify another @sign user when a key has been shared with him/her. Please refer to the notify verb spec for details.
+ | If set to true, an atServer should automatically notify another atSign user when a key has been shared with him/her. Please refer to the notify verb spec for details.
|
@@ -363,7 +363,7 @@ A Secondary Server should honor the following configuration parameters.
Number of bytes
|
- Maximum size of a value for a key that can be transferred to a Secondary Server
+ | Maximum size of a value for a key that can be transferred to an atServer
|
@@ -371,7 +371,7 @@ A Secondary Server should honor the following configuration parameters.
An Integer
|
- Maximum number of inbound connections that a Secondary Server can accept
+ | Maximum number of inbound connections that a atServer can accept
|
@@ -379,7 +379,7 @@ A Secondary Server should honor the following configuration parameters.
An Integer
|
- Maximum number of outbound connections that a secondary can make to another Secondary Server
+ | Maximum number of outbound connections that an atServer can make to another atServer
|
@@ -401,11 +401,11 @@ A Secondary Server should honor the following configuration parameters.
## Block List
-A user of the Secondary Server should be able to decide who is allowed to connect to a Secondary Server. The `config` verb should be used to configure this. Once added, a Secondary Server should honor the list at the time of accepting new connections from an @sign user using the `from` verb.
+A user of the atServer should be able to decide who is allowed to connect to a atServer. The `config` verb should be used to configure this. Once added, a atServer should honor the list at the time of accepting new connections from an atSign owner using the `from` verb.
-
+
## Verbs
@@ -413,7 +413,7 @@ A user of the Secondary Server should be able to decide who is allowed to connec
**Synopsis:**
-The `from` verb is used to tell a secondary whom you claim to be.
+The `from` verb is used to tell an atServer whom you claim to be.
Following regex represents the syntax of the `from` verb:
@@ -423,35 +423,35 @@ Following regex represents the syntax of the `from` verb:
**Response:**
-If the user who is trying to connect is the owner of the Secondary Server, then the `from` verb should respond with the following response.
+If the user who is trying to connect is the owner of the atServer, then the `from` verb should respond with the following response.
```key:```
-If the user who is trying to connect is not the owner of the Secondary Server, then the `from` verb should respond with the following response.
+If the user who is trying to connect is not the owner of the atServer, then the `from` verb should respond with the following response.
```proof:@<@sign>:```
-If the user is not allowed to connect to the Secondary Server, then it should respond back with the following error and close the connection to the server.
+If the user is not allowed to connect to the atServer, then it should respond back with the following error and close the connection to the server.
```error:AT0013-Connection Exception```
**Description:**
-The `from` verb is used to tell the Secondary Server what @sign you claim to be. With the `from` verb, one can connect to one's own Secondary Server or someone else's Secondary Server. In both cases, the Secondary Server responds back with a challenge to prove that you are who you claim to be. This is part of the authentication mechanism of the @protocol.
+The `from` verb is used to tell the atServer what atSign you claim to be. With the `from` verb, one can connect to one's own atServer or someone else's atServer. In both cases, the atServer responds back with a challenge to prove that you are who you claim to be. This is part of the authentication mechanism of the atProtocol.
-This authentication mechanism varies based on whether you are connecting to your own secondary (cram) or someone else's secondary (pol).
+This authentication mechanism varies based on whether you are connecting to your own atServer (cram) or someone else's atServer (pol).
**OPTIONS:**
```<@sign>```
Required: Yes
-Description: @sign with which you are connecting to a Secondary Server.
+Description: atSign with which you are connecting to a atServer.
### The `cram` verb
**Synopsis:**
-The `cram` verb is used to boostrap authenticate one's own self as an owner of a Secondary Server. It is
+The `cram` verb is used to boostrap authenticate one's own self as an owner of an atServer. It is
intended to be used once until a set of PKI keys are cut on the owner's mobile device and from then on
we use the `pkam` verb.
@@ -461,7 +461,7 @@ The following regex represents the syntax of the `cram` verb:
**Response:**
-If the user gets the challenge right, the prompt should change to the @sign of the user.
+If the user gets the challenge right, the prompt should change to the atSign of the user.
```<@sign>@```
@@ -471,7 +471,7 @@ If the user gets the cram authentication wrong, then it should respond back with
**Description:**
-The `cram` verb follows the `from` verb. As an owner of the Secondary Server, you should be able to take the challenge thrown by the `from` verb and encrypt using the shared key that the server has been bound with. Upon receiving the `cram` verb along with the digest, the server decrypts the digest using the shared key and matches it with the challenge. If they are the same, then the secondary lets you connect to the Secondary Server and changes the prompt to your @sign.
+The `cram` verb follows the `from` verb. As an owner of the atServer, you should be able to take the challenge thrown by the `from` verb and encrypt using the shared key that the server has been bound with. Upon receiving the `cram` verb along with the digest, the server decrypts the digest using the shared key and matches it with the challenge. If they are the same, then the atServer lets you connect to the atServer and changes the prompt to your atSign.
**OPTIONS:**
@@ -483,7 +483,7 @@ Description: Encrypted challenge
**Synopsis:**
-The `pol` verb is part of the `pkam` process to authenticate oneself while connecting to someone else's Secondary Server. The term
+The `pol` verb is part of the `pkam` process to authenticate oneself while connecting to someone else's atServer. The term
'pol' means 'proof of life' as it provides a near realtime assurance that the requestor is who it claims to be.
Following regex represents the syntax of the `pol` verb:
@@ -492,7 +492,7 @@ Following regex represents the syntax of the `pol` verb:
**Response:**
-If the user gets the challenge right the prompt should change to the @sign of the user.
+If the user gets the challenge right the prompt should change to the atSign of the user.
```<@sign>@```
@@ -502,7 +502,7 @@ If the user gets the cram authentication wrong then it should respond back with
**Description:**
-The `pol` verb follows the `from` verb. 'pol' indicates another secondary that the user who is trying to connect is ready to authenticate himself. For example, if @bob is trying to connect to @alice, @bob would take the key and value from the proof response of the verb and create a public key and value which then can be looked up by @alice. After @alice looks up @bob's secondary @alices secondary should change the prompt to @bob.
+The `pol` verb follows the `from` verb. 'pol' indicates another atServer that the user who is trying to connect is ready to authenticate himself. For example, if @bob is trying to connect to @alice, @bob would take the key and value from the proof response of the verb and create a public key and value which then can be looked up by @alice. After @alice looks up @bob's atServer @alices atServer should change the prompt to @bob.
**OPTIONS:**
@@ -512,7 +512,7 @@ NA
**Synopsis:**
-The `update` verb is used to insert key/value pairs into a Key Store. An update can only be run by the owner of a Secondary Server on his/her own Secondary Server.
+The `update` verb is used to insert key/value pairs into a Key Store. An update can only be run by the owner of a atServer on his/her own atServer.
Following regex represents the syntax of the `update` verb:
@@ -520,19 +520,19 @@ Following regex represents the syntax of the `update` verb:
**Response:**
-The Secondary Server should return the commit id from Commit Log if the update is successful.
+The atServer should return the commit id from Commit Log if the update is successful.
```data:```
-If the user provides the invalid update command, then it should respond with the following error and close the connection to the server
+If the user provides the invalid update command, then it should respond with the following error and close the connection to the server.
```error:AT0003-Invalid Syntax```
**Description:**
-The `update` verb should be used to perform create/update operations on the Secondary Server. The `update` verb requires the owner of the secondary to authenticate himself/herself to the Secondary Server using `from` and `cram` verbs.
+The `update` verb should be used to perform create/update operations on the atServer. The `update` verb requires the owner of the atServer to authenticate himself/herself to the atServer using `from` and `cram` verbs.
-If a key has been created for another @sign user, the Secondary Server should honor "autoNotify" configuration parameter.
+If a key has been created for another atSign user, the atServer should honor "autoNotify" configuration parameter.
**OPTIONS:**
@@ -551,15 +551,15 @@ Description: Time to refresh in milliseconds.
``
Required: No
-Description: A value of "true" indicates that the cached key needs to be deleted when the @sign user who has originally shared it deletes it.
+Description: A value of "true" indicates that the cached key needs to be deleted when the atSign user who has originally shared it deletes it.
``
Required: Yes (Not required when the key is a public key)
-Description: @sign of the user with whom the key has been shared
+Description: atSign of the user with whom the key has been shared
`<@sign>`
Required: Yes
-Description: @sign of the owner
+Description: atSign of the owner
``
Required: Yes
@@ -569,7 +569,7 @@ Description: Value for the key
**Synopsis:**
-The `update:meta` verb should be used to update the metadata of a key @sign user without having to send or save the value again.
+The `update:meta` verb should be used to update the metadata of a key atSign user without having to send or save the value again.
Following is the regex for the `update:meta` verb
@@ -577,7 +577,7 @@ Following is the regex for the `update:meta` verb
**Response:**
-The Secondary Server should return the commit id from Commit Log if the update is successful.
+The atServer should return the commit id from Commit Log if the update is successful.
```data:```
@@ -588,9 +588,9 @@ If the user provides the invalid update meta command, then it should respond wit
**Description:**
-The `update:meta` verb should be used to perform create/update operations on the Secondary Server. The `update:meta` verb requires the owner of the secondary to authenticate himself/herself to the Secondary Server using `from` and `cram` verbs.
+The `update:meta` verb should be used to perform create/update operations on the atServer. The `update:meta` verb requires the owner of the atServer to authenticate himself/herself to the atServer using `from` and `cram` verbs.
-The Secondary Server should allow creation of keys with null values. If a key has been created for another @sign user, the Secondary Server should honor "autoNotify" configuration parameter.
+The atServer should allow creation of keys with null values. If a key has been created for another atSign user, the atServer should honor "autoNotify" configuration parameter.
**OPTIONS:**
@@ -609,21 +609,21 @@ Description: Time to refresh in milliseconds.
``
Required: No
-Description: A value of "true" indicates that the cached key needs to be deleted when the @sign user who has originally shared it deletes it.
+Description: A value of "true" indicates that the cached key needs to be deleted when the atSign user who has originally shared it deletes it.
``
Required: Yes (Not required when the key is a public key)
-Description: @sign of the user with whom the key has been shared
+Description: atSign of the user with whom the key has been shared
`<@sign>`
Required: Yes
-Description: @sign of the owner
+Description: atSign of the owner
### The `lookup` verb
**Synopsis:**
-The `lookup` verb should be used to lookup the value shared by another @sign user.
+The `lookup` verb should be used to lookup the value shared by another atSign user.
The following is the regex of the `lookup` verb:
@@ -631,7 +631,7 @@ The following is the regex of the `lookup` verb:
**Response:**
-If the operation is not specified the Secondary Server should just respond back with the value saved by the user as is.
+If the operation is not specified the atServer should just respond back with the value saved by the user as is.
```data:```
@@ -694,30 +694,30 @@ data:
}
```
-If the other Secondary Server on which the lookup needs to be performed is down then the secondary should return the following error and keep the connection alive.
+If the other atServer on which the lookup needs to be performed is down then the atServer should return the following error and keep the connection alive.
-```error:AT0007-Secondary Server not found.```
+```error:AT0007-atServer not found.```
-If the lookup command is not valid, then the Secondary Server should return the following error and close the connection:
+If the lookup command is not valid, then the atServer should return the following error and close the connection:
```error:AT0003-Invalid Syntax```
-For whatever reasons, If the handshake with another secondary fails, then the Secondary Server should return the following error:
+For whatever reasons, If the handshake with another atServer fails, then the atServer should return the following error:
```data:AT0008-Handshake failure```
**Description:**:
-The `lookup` verb should be used to fetch the value of the key shared by another @sign user. If there is a public and user key with the same name then the result should be based on whether the user is trying to lookup is authenticated or not. If the user is authenticated then the user key has to be returned, otherwise the public key has to be returned.
+The `lookup` verb should be used to fetch the value of the key shared by another atSign user. If there is a public and user key with the same name then the result should be based on whether the user is trying to lookup is authenticated or not. If the user is authenticated then the user key has to be returned, otherwise the public key has to be returned.
### The `plookup` verb:
**Synopsis:**
-The `plookup` verb enables to lookup the value of the public key shared by another @sign user.
+The `plookup` verb enables to lookup the value of the public key shared by another atSign user.
Following is the regex of the `plookup` verb:
@@ -725,27 +725,27 @@ Following is the regex of the `plookup` verb:
**Response:**
-The Secondary Server should return the value or metadata or the value and metadata together based on the option specified.
+The atServer should return the value or metadata or the value and metadata together based on the option specified.
The response structure should be exactly the same as the `lookup` verb.
-If the other Secondary Server on which the `lookup` needs to be performed is not available, then the secondary should return the following error and keep the connection alive.
+If the other atServer on which the `lookup` needs to be performed is not available, then the atServer should return the following error and keep the connection alive.
-```error:AT0007-Secondary Server not found.```
+```error:AT0007- Secondary Server not found.```
-If the `lookup` command is not valid, then the Secondary Server should return the following error and close the connection:
+If the `lookup` command is not valid, then the atServer should return the following error and close the connection:
```error:AT0003-Invalid Syntax```
**Description:**:
-The `plookup` verb should be used to fetch the value of the public key shared by another @sign user.
+The `plookup` verb should be used to fetch the value of the public key shared by another atSign user.
### The `llookup` verb
**Synopsis:**
-The `llookup` verb should be used to look up one's own secondary and this should return the value as is (i.e. without any resolution).
+The `llookup` verb should be used to look up one's own atServer and this should return the value as is (i.e. without any resolution).
The Following is the regex of the `llookup` verb:
@@ -753,22 +753,22 @@ The Following is the regex of the `llookup` verb:
**Response:**
-The Secondary Server should return the value or metadata or the value and metadata together based on the option specified.
+The atServer should return the value or metadata or the value and metadata together based on the option specified.
The response structure should be exactly the same as the `lookup` verb.
-If the other Secondary Server on which the lookup needs to be performed is down then the secondary should return the following error and keep the connection alive.
+If the other atServer on which the lookup needs to be performed is down then the atServer should return the following error and keep the connection alive.
-```error:AT0007-Secondary Server not found.```
+```error:AT0007- Secondary Server not found.```
-> If the lookup command is not valid, then the Secondary Server should return the following error and close the connection:
+> If the lookup command is not valid, then the atServer should return the following error and close the connection:
```error:AT0003-Invalid Syntax```
**Description:**:
-The `llookup` verb should be used to fetch the value of the key in the owners secondary store as is without resolving it. For example if a key contains a reference as a value, the `lookup` verb should resolve it to a value whereas llookup should return the value as is.
+The `llookup` verb should be used to fetch the value of the key in the owners atServer store as is without resolving it. For example if a key contains a reference as a value, the `lookup` verb should resolve it to a value whereas llookup should return the value as is.
**Example:**
@@ -779,7 +779,7 @@ then `lookup` of altphone@bob should return "1234" whereas `llookup` of altphone
**Synopsis:**
-The `pkam` verb is used to authenticate one's own self as an owner of a Secondary Server using a PKI style authentication.
+The `pkam` verb is used to authenticate one's own self as an owner of a atServer using a PKI style authentication.
Following regex represents the syntax of the `pkam` verb:
@@ -787,7 +787,7 @@ Following regex represents the syntax of the `pkam` verb:
**Response:**
-If the user gets the challenge right, the prompt should change to the @sign of the user.
+If the user gets the challenge right, the prompt should change to the atSign of the user.
```<@sign>@```
@@ -797,7 +797,7 @@ If the user gets the pkam authentication wrong then it should respond back with
**Description:**
-The `pkam` verb follows the `from` verb. As an owner of the Secondary Server, you should be able to take the challenge thrown by the `from` verb and encrypt using the private key of the RSA key pair with what the server has been bound with. Upon receiving the `cram` verb along with the digest, the server decrypts the digest using the public key and matches it with the challenge. If they are the same then the secondary lets you connect to the Secondary Server and changes the prompt to your @sign.
+The `pkam` verb follows the `from` verb. As an owner of the atServer, you should be able to take the challenge thrown by the `from` verb and encrypt using the private key of the RSA key pair with what the server has been bound with. Upon receiving the `cram` verb along with the digest, the server decrypts the digest using the public key and matches it with the challenge. If they are the same then the atServer lets you connect to the atServer and changes the prompt to your atSign.
**OPTIONS:**
@@ -809,7 +809,7 @@ Description: Encrypted challenge
**Synopsis:**
-The `stats` verb should be used to get the statistics of an atsign.
+The `stats` verb should be used to get the statistics of an atSign.
Following is the regex of the `stats` verb
@@ -841,7 +841,7 @@ data: [{"id":"1","name":"activeInboundConnections","value":"1"}]
**Synopsis:**
-The `sync` verb enables to synchronize the keys between the local Secondary Server and remote Secondary Server.
+The `sync` verb enables to synchronize the keys between the local atServer and remote atServer.
Following is the regex:
@@ -858,7 +858,7 @@ data:[{"atKey":"@bob:phone@alice","operation":"+","opTime":"2020-10-26 11:57:43.
The `notify` verb
-The `notify` verb enables us to notify the atsign user of some data event.
+The `notify` verb enables us to notify the atSign user of some data event.
The Following is the regex for the `notify` verb
@@ -874,7 +874,7 @@ When a key is notified successfully, returns
**Description:**
-When an atsign user notifies the key to another atsign user, an entry has to be created in received notifications list on the user who has shared the key and an entry has to be created in sent notifications list on the user to whom the key is to be notified. When auto notify is set to true, when a key is created/updated and deleted notification is triggered to another atsign user.
+When an atSign owner notifies the key to another atSign owner, an entry has to be created in received notifications list on the user who has shared the key and an entry has to be created in sent notifications list on the user to whom the key is to be notified. When auto notify is set to true, when a key is created/updated and deleted notification is triggered to another atSign user.
### Notify List
@@ -972,15 +972,15 @@ The `monitor` verb accepts an optional parameter to filter the notifications by
Outbound connection limit exceeded
|
- Exception occurs when the number of open connections to other secondaries reaches the maximum limit configured.
+ | Exception occurs when the number of open connections to other atServers reaches the maximum limit configured.
|
AT0007
|
- Secondary Server not found
+ | atServer not found
|
- Exception occurs when a secondary tries to connect to another secondary which is not available in the root directory or not yet instantiated.
+ | Exception occurs when an atServer tries to connect to another atServer which is not available in the atDirectory or not yet instantiated.
|
@@ -988,7 +988,7 @@ The `monitor` verb accepts an optional parameter to filter the notifications by
Handshake failure
|
- This exception is for any exception during the handshake process of two secondaries.
+ | This exception is for any exception during the handshake process of two atServers.
|
@@ -997,7 +997,7 @@ The `monitor` verb accepts an optional parameter to filter the notifications by
UnAuthorized client in the request
|
UnAuthorized Exception
- will occur when an unsuccessful handshake happens between two secondaries.
+ will occur when an unsuccessful handshake happens between two atServers.
|
@@ -1037,7 +1037,7 @@ The `monitor` verb accepts an optional parameter to filter the notifications by
Connection Exception
|
- This will occur when a blocked user tries to connect to the secondary.
+ | This will occur when a blocked user tries to connect to the atServer.
|
@@ -1059,24 +1059,24 @@ The `monitor` verb accepts an optional parameter to filter the notifications by
AT0021
|
- Unable to connect to secondary
+ | Unable to connect to atServer
|
- This exception will occur when we are unable to connect to secondary.
+ | This exception will occur when we are unable to connect to an atServer.
|
Glossary
-> @protocol (Pronounced, at protocol)
+> atProtocol (Pronounced, at protocol)
-> @sign (Pronounced, at sign)
-@sign is a unique name that a user gets when enrolled with @sign.com
+> atSign (Pronounced, at sign)
+atSign is a unique name that a user gets when enrolled with atsign.com
-> Root Server
+> atDirectory
-> Secondary Server
+> atServer
> Verb
@@ -1107,4 +1107,4 @@ Glossary
> Access Log
-
\ No newline at end of file
+