dev.roe.ama

An anonymous question, optionally with a published answer. While unanswered the question text is encrypted server-side (private to roe.dev). Once published, the question is rewritten in plaintext alongside the answer and per-platform URLs.

Repository @danielroe.dev did:plc:jbeaa5kdaladzwq3r7f5xgwe namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authorityroe.dev
Indexed
cid bafyreifhzf4nanbpwwdfwalvh7krbmpa2krvoub6zsoq54daprpksl3fhm

Checks

Valid
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "An anonymous question, optionally with a published answer. While unanswered the question text is encrypted server-side (private to roe.dev). Once published, the question is rewritten in plaintext alongside the answer and per-platform URLs.",
      "key": "tid",
      "record": {
        "properties": {
          "answeredAt": {
            "format": "datetime",
            "type": "string"
          },
          "backgroundStyle": {
            "description": "ID of the background style used to render the image, either a preset name or a serialised custom emoji-and-gradient id. The set of styles is internal to roe.dev.",
            "maxLength": 128,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "encryptedQuestion": {
            "description": "AES-256-GCM envelope holding the raw question text. Present iff status=unanswered.",
            "maxLength": 500000,
            "type": "string"
          },
          "image": {
            "accept": [
              "image/*"
            ],
            "maxSize": 5000000,
            "type": "blob"
          },
          "imageDimensions": {
            "description": "Pixel dimensions of `image`. Stored alongside because PDS blobs don't carry intrinsic dimensions and Bluesky's image embed needs `aspectRatio`.",
            "ref": "community.lexicon.app.defs#aspectRatio",
            "type": "ref"
          },
          "platforms": {
            "description": "Which platforms the editor enabled when publishing.",
            "ref": "#platforms",
            "type": "ref"
          },
          "posts": {
            "description": "Thread of response posts. Each post is the body of one Bluesky-thread item (and one Mastodon status, one LinkedIn comment chain entry, etc).",
            "items": {
              "ref": "#post",
              "type": "ref"
            },
            "maxLength": 16,
            "type": "array"
          },
          "publishedLinks": {
            "description": "Resolved per-platform URLs after publish.",
            "ref": "#publishedLinks",
            "type": "ref"
          },
          "question": {
            "description": "Plaintext question. Present iff status=answered; the editor decrypts encryptedQuestion at publish time and writes it here so the record is self-contained going forward.",
            "maxGraphemes": 50000,
            "maxLength": 500000,
            "type": "string"
          },
          "status": {
            "knownValues": [
              "unanswered",
              "answered"
            ],
            "type": "string"
          }
        },
        "required": [
          "status",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "platforms": {
      "properties": {
        "bluesky": {
          "default": true,
          "type": "boolean"
        },
        "linkedin": {
          "default": true,
          "type": "boolean"
        },
        "mastodon": {
          "default": true,
          "type": "boolean"
        },
        "youtubeShorts": {
          "default": false,
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "post": {
      "description": "One post in the response thread. Mentions reference dev.roe.entity records by AT URI so the publisher can rewrite per-platform handles at publish time.",
      "properties": {
        "mentions": {
          "description": "Strong-refs to dev.roe.entity records. The rkey of each referenced record is the placeholder token used in `text`.",
          "items": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "maxLength": 32,
          "type": "array"
        },
        "text": {
          "description": "Body text. Plain text with `@<entity-rkey>` placeholders for entity mentions (e.g. `Thanks @abc123def456 for the help`). The placeholder syntax is internal; the publisher swaps them for the right per-platform handle.",
          "maxGraphemes": 50000,
          "maxLength": 500000,
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    },
    "publishedLinks": {
      "properties": {
        "bluesky": {
          "format": "uri",
          "type": "string"
        },
        "linkedin": {
          "format": "uri",
          "type": "string"
        },
        "mastodon": {
          "format": "uri",
          "type": "string"
        },
        "youtubeShorts": {
          "format": "uri",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "dev.roe.ama",
  "lexicon": 1
}