social.smallbury.graph.invite

lexicon.pds.smallbury.social

Documentation

Trust invitation from this actor to a contact. The invite URL carries a signed token bound to inviteId; acceptance must match intendedRecipientEncryptionPublicKey when set. Revocable by the inviter.

main record

Trust invitation from this actor to a contact. The invite URL carries a signed token bound to inviteId; acceptance must match intendedRecipientEncryptionPublicKey when set. Revocable by the inviter.

Record Key tid Timestamp-based ID

Properties

acceptedByDid string did Optional

Set when status becomes accepted.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

expiresAt string datetime Optional

Optional expiry; client should treat as expired after this time.

intendedRecipientEncryptionPublicKey bytes Optional

When set, only a party that proves possession of the matching private key can complete acceptance. Set for existing users at invite time; set by the new user on signup before accept completes.

maxLength: 256
inviteId string Required

Stable id for this invite; echoed in the signed invite token.

maxLength: 128 bytesminLength: 1 bytes
revokedAt string datetime Optional

An RFC 3339 formatted timestamp.

status string Required

Lifecycle state. pending until accepted or revoked/expired.

Known values: pending, accepted, revoked, expired
targetHint string Optional

Optional human hint (e.g. email) for the inviter's UI; not used for cryptography.

maxLength: 256 bytes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "inviteId",
      "status",
      "createdAt"
    ],
    "properties": {
      "status": {
        "type": "string",
        "description": "Lifecycle state. pending until accepted or revoked/expired.",
        "knownValues": [
          "pending",
          "accepted",
          "revoked",
          "expired"
        ]
      },
      "inviteId": {
        "type": "string",
        "maxLength": 128,
        "minLength": 1,
        "description": "Stable id for this invite; echoed in the signed invite token."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "expiresAt": {
        "type": "string",
        "format": "datetime",
        "description": "Optional expiry; client should treat as expired after this time."
      },
      "revokedAt": {
        "type": "string",
        "format": "datetime"
      },
      "targetHint": {
        "type": "string",
        "maxLength": 256,
        "description": "Optional human hint (e.g. email) for the inviter's UI; not used for cryptography."
      },
      "acceptedByDid": {
        "type": "string",
        "format": "did",
        "description": "Set when status becomes accepted."
      },
      "intendedRecipientEncryptionPublicKey": {
        "type": "bytes",
        "maxLength": 256,
        "description": "When set, only a party that proves possession of the matching private key can complete acceptance. Set for existing users at invite time; set by the new user on signup before accept completes."
      }
    }
  },
  "description": "Trust invitation from this actor to a contact. The invite URL carries a signed token bound to inviteId; acceptance must match intendedRecipientEncryptionPublicKey when set. Revocable by the inviter."
}

Lexicon Garden

@