id.sifa.project.self
Record representing a collaborative project. The rkey is a TID, not a literal 'self' — each user can create many projects.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | project.sifa.id |
| Indexed |
Showing version bafyreiedymve4yq434raaxeqnbpebi2wbcxwqsyrbabnixrg52ui76hyfm. Show the latest
Checks
Validlarge-stringdefs.main.record.properties.descriptionmaxLength is over 20 KB. Use a blob for content that large.unlimited-stringdefs.main.record.properties.endedAtNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.startedAtNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Record representing a collaborative project. The rkey is a TID, not a literal 'self' — each user can create many projects.",
"key": "tid",
"record": {
"properties": {
"agentRef": {
"description": "The organization this project belongs to, as a single nested reference mirroring the flat organization / organizationDid / entityRef fields. Additive dual-write: the flat fields remain the source of truth for existing consumers.",
"ref": "id.sifa.defs#agentRef",
"type": "ref"
},
"avatar": {
"accept": [
"image/png",
"image/jpeg"
],
"description": "Project avatar image. Max 1 MB, PNG or JPEG.",
"maxSize": 1000000,
"type": "blob"
},
"createdAt": {
"description": "Client-declared timestamp when this record was originally created.",
"format": "datetime",
"type": "string"
},
"description": {
"description": "Description of the project, its goals, and scope.",
"maxGraphemes": 5000,
"maxLength": 50000,
"type": "string"
},
"endedAt": {
"description": "Project end date in YYYY, YYYY-MM or YYYY-MM-DD format. Omit if ongoing.",
"type": "string"
},
"entityRef": {
"description": "Portable, app-neutral identifier for the organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the organization claims an ATproto account. Absent for free-text entries.",
"format": "uri",
"type": "string"
},
"labels": {
"description": "Self-label values for this project record.",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"name": {
"description": "Project name.",
"maxGraphemes": 256,
"maxLength": 2560,
"minLength": 1,
"type": "string"
},
"organization": {
"description": "Name of the organization this project belongs to, if any.",
"maxGraphemes": 256,
"maxLength": 2560,
"type": "string"
},
"organizationDid": {
"description": "DID of the organization this project belongs to, if any. Bridges to future organization entities.",
"format": "did",
"type": "string"
},
"startedAt": {
"description": "Project start date in YYYY, YYYY-MM or YYYY-MM-DD format. Freeform (NOT strict datetime) to allow partial dates.",
"type": "string"
},
"status": {
"description": "Current project status.",
"ref": "id.sifa.defs#projectStatus",
"type": "ref"
},
"url": {
"description": "Primary URL of the project (website, repository, etc.).",
"format": "uri",
"type": "string"
}
},
"required": [
"name",
"createdAt"
],
"type": "object"
},
"type": "record"
}
},
"description": "A collaborative project record. Lives in the project creator's PDS. TID-keyed so one user can create multiple projects. Supports multiple owners — the creator is the first owner, and any owner can promote core members.",
"id": "id.sifa.project.self",
"lexicon": 1
}