full diff

id.sifa.project.self

sifa.id +2 −4
From
bafyreif5h5d4jmsfwohdesdrlqx5opyeegdmyefn77ijiz46njw7tweqda indexed 2026-09-29 09:12 UTC View this version
To
bafyreiedymve4yq434raaxeqnbpebi2wbcxwqsyrbabnixrg52ui76hyfm indexed 2026-10-30 13:43 UTC View this version

Compatibility

backward compatible Backward compatible. 2 non-breaking changes.

Non-breaking changes (2)
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.project.self:body.startedAt", sort: "format" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.project.self:body.endedAt", sort: "format" }

Migration guidance

Constraint changes

  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.project.self:body.startedAt", sort: "format" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.project.self:body.endedAt", sort: "format" }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "Record representing a collaborative project. The rkey is a TID, not a literal 'self' — each user can create many projects.",
66 "key": "tid",
77 "record": {
88 "properties": {
99 "agentRef": {
1010 "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.",
1111 "ref": "id.sifa.defs#agentRef",
1212 "type": "ref"
1313 },
1414 "avatar": {
1515 "accept": [
1616 "image/png",
1717 "image/jpeg"
1818 ],
1919 "description": "Project avatar image. Max 1 MB, PNG or JPEG.",
2020 "maxSize": 1000000,
2121 "type": "blob"
2222 },
2323 "createdAt": {
2424 "description": "Client-declared timestamp when this record was originally created.",
2525 "format": "datetime",
2626 "type": "string"
2727 },
2828 "description": {
2929 "description": "Description of the project, its goals, and scope.",
3030 "maxGraphemes": 5000,
3131 "maxLength": 50000,
3232 "type": "string"
3333 },
3434 "endedAt": {
35 "description": "Project end date. Omit if ongoing.",
36 "format": "datetime",
35 "description": "Project end date in YYYY, YYYY-MM or YYYY-MM-DD format. Omit if ongoing.",
3736 "type": "string"
3837 },
3938 "entityRef": {
4039 "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.",
4140 "format": "uri",
4241 "type": "string"
4342 },
4443 "labels": {
4544 "description": "Self-label values for this project record.",
4645 "refs": [
4746 "com.atproto.label.defs#selfLabels"
4847 ],
4948 "type": "union"
5049 },
5150 "name": {
5251 "description": "Project name.",
5352 "maxGraphemes": 256,
5453 "maxLength": 2560,
5554 "minLength": 1,
5655 "type": "string"
5756 },
5857 "organization": {
5958 "description": "Name of the organization this project belongs to, if any.",
6059 "maxGraphemes": 256,
6160 "maxLength": 2560,
6261 "type": "string"
6362 },
6463 "organizationDid": {
6564 "description": "DID of the organization this project belongs to, if any. Bridges to future organization entities.",
6665 "format": "did",
6766 "type": "string"
6867 },
6968 "startedAt": {
70 "description": "Project start date.",
71 "format": "datetime",
69 "description": "Project start date in YYYY, YYYY-MM or YYYY-MM-DD format. Freeform (NOT strict datetime) to allow partial dates.",
7270 "type": "string"
7371 },
7472 "status": {
7573 "description": "Current project status.",
7674 "ref": "id.sifa.defs#projectStatus",
7775 "type": "ref"
7876 },
7977 "url": {
8078 "description": "Primary URL of the project (website, repository, etc.).",
8179 "format": "uri",
8280 "type": "string"
8381 }
8482 },
8583 "required": [
8684 "name",
8785 "createdAt"
8886 ],
8987 "type": "object"
9088 },
9189 "type": "record"
9290 }
9391 },
9492 "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.",
9593 "id": "id.sifa.project.self",
9694 "lexicon": 1
9795}

Compare other versions