Skip to content

Commit

Permalink
Use tables for operation listings. Update operations spec for identit…
Browse files Browse the repository at this point in the history
…y. Add operations spec for announcements.
  • Loading branch information
wesbiggs committed Nov 28, 2022
1 parent a00617b commit 53c371e
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 78 deletions.
10 changes: 10 additions & 0 deletions pages/DSNP/Announcements.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ Additional duplicate Announcements MUST be rejected or ignored.
Announcements may not be deleted, but some may be marked as invalid by using a [Tombstone Announcement](Types/Tombstone.md), or updated by using an [Update Announcement](Types/Update.md).
For example, if a user creates a Reaction Announcement, they may remove that reaction by creating a Tombstone Announcement.

## Operations

Each of the these MUST have verifiable approval of the acting
principal via signature proof or other system.

| Operation | Optional? | Principal | Inputs | Outputs/State Changes |
|---------- |---------- |---------- |------- |-------------- |
| Publish Announcement | no | User OR Delegate | User's DSNP Identifier, Announcement Type, Announcement Data | Announcement published to the network |
| Publish Batch | no | User OR Delegate | User or Delegate's DSNP Identifier, Announcement Type, URL of [Batch Publication File](BatchPublications.md) | Batch announcement published to network |

## Non-Normative

### Duplicate Announcements
Expand Down
92 changes: 14 additions & 78 deletions pages/DSNP/Identity.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,86 +26,22 @@ the ability to delegate permission to others to announce content on the user's b
* Announcements from a delegate MUST be able to be verified as to which delegate made the specific announcement.
* Delegation revocation MUST NOT be retroactive.


## Operations

Each of the these MUST have user approval via signature proof or other system.

### Create

#### Inputs
- User's Public Key
- User's Signature

#### State Changes
- New DSNP Id connected to User's Public Key

### Delegation Upsert

#### Inputs
- User's Signature
- Delegated Party's Signature
- User's DSNP Id
- Delegated Party
- Announcement Permissions Enums

#### State Changes
- Public Proof of Delegation

### User Directed Delegation Revocation

#### Inputs
- User's Signature
- User's DSNP Id
- Delegated Party

#### State Changes
- Proof of Delegation Revocation

### Delegated Party Directed Delegation Revocation

#### Inputs
- Delegated Party Signature
- User's DSNP Id
- Delegated Party

#### State Changes
- Proof of Delegation Revocation

### DSNP Id Retire

#### Inputs
- User's Signature
- User's DSNP Id

#### State Changes
- Allowed removal of all data send from User's DSNP Id
- Allowed removal of all User's Public Key(s) from DSNP Id
- Allowed removal of all User's Delegations

## Optional Operations

### Add DSNP Id Control Public Key

#### Inputs
- User's DSNP Id
- User's Current Signature
- User's New Signature
- User's New Public Key

#### State Changes
- User's DSNP Id connected to User's New Public Key

### Remove DSNP Id Control Public Key

#### Inputs
- User's DSNP Id
- User's Current Signature
- User's Public Key to Remove

#### State Changes
- User's DSNP Id is NOT connected to the input Public Key

Each of the these MUST have verifiable approval of the acting
principal(s) via signature proof or other system. For example, an
implementation might use the public key of an asymmetric key pair as a
control key, and provide a proof for each operation by producing a
cryptographic signature of the inputs and some nonce value.

| Operation | Optional? | Principal(s) | Inputs | Outputs/State Changes |
|---------- |---------- |------------- |------- |-------------- |
| Create DSNP Identifier | no | User | None | New DSNP Identifier connected to User's Control Key |
| Create or Update Delegation | no | User AND Delegate | User's DSNP Identifier, Delegate's DSNP Identifier, Set of Announcement Permissions | Proof of Delegation |
| Revoke Delegation | no | User OR Delegate | User's DSNP Identifier, Delegate's DSNP Identifier | Proof of Delegation Revocation |
| Retire DSNP Identifier | no | User | User's DSNP Identifier | Allowed removal of all data sent from User's DSNP Identifier, Allowed removal of all Control Keys from DSNP Identifier, Allowed removal of all User's Delegations |
| Add Control Key | YES | User | User's DSNP Identifier, New Control Key, Proof of Ownership of New Control Key | User's DSNP Identifier connected to User's New Control Key |
| Remove Control Key | YES | User | User's DSNP Identifier, User's Control Key to Remove | User's DSNP Identifier is NOT connected to the input Control Key |

## Non-normative

Expand Down

0 comments on commit 53c371e

Please sign in to comment.