id.sifa.profile.volunteering

sifa.id

Schema Diff

+18 -11

From

CID
bafyreihkffv2lgm...
Indexed At
2026-03-27 23:46 UTC
View this version

To

CID
bafyreihf4kyubyb...
Indexed At
2026-08-06 14:52 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 10 non-breaking changes.

Non-Breaking Changes (10)
  • AddedVertex AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.entityRef" }
  • AddedEdge AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.entityRef", kind: "prop", name: Some("entityRef") }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.organization", sort: "maxLength", old_value: "1000", new_value: "2560" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.organization", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.startedAt", sort: "format" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.role", sort: "maxLength", old_value: "1000", new_value: "2560" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.role", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.endedAt", sort: "format" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.cause", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.cause", sort: "maxLength", old_value: "1000", new_value: "2560" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "id.sifa.profile.volunteering:body.entityRef" }

Constraint Changes

  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.cause", sort: "maxLength", old_value: "1000", new_value: "2560" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.cause", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.organization", sort: "maxLength", old_value: "1000", new_value: "2560" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.organization", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.startedAt", sort: "format" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "id.sifa.profile.volunteering:body.endedAt", sort: "format" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.role", sort: "maxGraphemes", old_value: "100", new_value: "256" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "id.sifa.profile.volunteering:body.role", sort: "maxLength", old_value: "1000", new_value: "2560" }

Additional Notes

  • Non-breaking: AddedEdge { src: "id.sifa.profile.volunteering:body", tgt: "id.sifa.profile.volunteering:body.entityRef", kind: "prop", name: Some("entityRef") }
1 1
{
2 2
  "id": "id.sifa.profile.volunteering",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "organization",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "role": {
15 15
            "type": "string",
16 -
            "maxLength": 1000,
16 +
            "maxLength": 2560,
17 17
            "description": "Volunteer role or title.",
18 -
            "maxGraphemes": 100
18 +
            "maxGraphemes": 256
19 19
          },
20 20
          "cause": {
21 21
            "type": "string",
22 -
            "maxLength": 1000,
22 +
            "maxLength": 2560,
23 23
            "description": "Cause area (e.g., 'Education', 'Environment', 'Health').",
24 -
            "maxGraphemes": 100
24 +
            "maxGraphemes": 256
25 25
          },
26 26
          "endedAt": {
27 27
            "type": "string",
28 -
            "format": "datetime",
29 -
            "description": "End date. Omit if currently volunteering."
28 +
            "description": "End date in YYYY-MM or YYYY-MM-DD format. Omit if currently volunteering."
30 29
          },
31 30
          "createdAt": {
32 31
            "type": "string",
33 32
            "format": "datetime",
34 33
            "description": "Client-declared timestamp when this record was originally created."
35 34
          },
35 +
          "entityRef": {
36 +
            "type": "string",
37 +
            "format": "uri",
38 +
            "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."
39 +
          },
36 40
          "startedAt": {
37 41
            "type": "string",
38 -
            "format": "datetime",
39 -
            "description": "Start date of the volunteer role."
42 +
            "description": "Start date of the volunteer role in YYYY-MM or YYYY-MM-DD format."
40 43
          },
41 44
          "description": {
42 45
            "type": "string",
43 46
            "maxLength": 50000,
44 47
            "description": "Description of volunteer activities and impact.",
45 48
            "maxGraphemes": 5000
46 49
          },
47 50
          "organization": {
48 51
            "type": "string",
49 -
            "maxLength": 1000,
52 +
            "maxLength": 2560,
50 53
            "minLength": 1,
51 54
            "description": "Organization name.",
52 -
            "maxGraphemes": 100
55 +
            "maxGraphemes": 256
53 56
          },
54 57
          "organizationDid": {
55 58
            "type": "string",
56 59
            "format": "did",
57 60
            "description": "DID of the organization's ATproto account, if one exists."
58 61
          }
59 62
        }
60 63
      },
61 -
      "description": "Record representing a single volunteer role."
64 +
      "description": "Record representing a single volunteer role.",
65 +
      "x-skos:closeMatch": [
66 +
        "org:Membership",
67 +
        "schema:OrganizationRole"
68 +
      ]
62 69
    }
63 70
  },
64 71
  "$type": "com.atproto.lexicon.schema",
65 72
  "lexicon": 1,
66 73
  "description": "A volunteer experience entry in the user's professional profile."
67 74
}

Compare Other Versions

Lexicon Garden

@