full diff

space.intandem.calendarSource

chaosgreml.in +3 −1
From
bafyreiayfomspvienrpipr2aet2h3e7gqhi6flxsjfsyftgmcw7jwbj5au indexed 2026-09-07 22:18 UTC View this version
To
bafyreigb7rs7njxbqax2n3fiodobes22a6r7dprjrnbiilz3zpjvuacvqi indexed 2026-10-30 01:58 UTC View this version

Compatibility

breaking 1 breaking change, 0 non-breaking changes.

Breaking changes (1)
  • ConstraintTightened ConstraintTightened { vertex_id: "space.intandem.calendarSource:body.kind", sort: "enum", old_value: "ics,caldav", new_value: "ics,caldav,google" }

Migration guidance

Constraint changes

  • ConstraintTightened ConstraintTightened { vertex_id: "space.intandem.calendarSource:body.kind", sort: "enum", old_value: "ics,caldav", new_value: "ics,caldav,google" }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "A connected calendar whose busy time subtracts from availability.",
66 "key": "tid",
77 "record": {
88 "properties": {
99 "createdAt": {
1010 "format": "datetime",
1111 "type": "string"
1212 },
1313 "kind": {
1414 "enum": [
1515 "ics",
16 "caldav"
16 "caldav",
17 "google"
1718 ],
1819 "type": "string"
1920 },
2021 "name": {
2122 "maxLength": 200,
2223 "type": "string"
2324 },
2425 "secret": {
2526 "description": "CalDAV password / app password (at most 1000 characters of plaintext), sealed at rest: an AES-256-GCM envelope (enc1:<iv>.<ciphertext>) under a key derived per host from the Tandem deployment's key, so only that deployment can read it. Records written before 2026-09-07 may still hold the plaintext until the host's next visit reseals them.",
2627 "maxLength": 2000,
2728 "type": "string"
2829 },
2930 "url": {
31 "description": "ICS feed address, CalDAV calendar URL, or for kind=google the calendar's REST URL (https://www.googleapis.com/calendar/v3/calendars/<id>). For google, `username` is the account and no secret is stored: the OAuth grant lives with the Tandem deployment that made it.",
3032 "format": "uri",
3133 "type": "string"
3234 },
3335 "username": {
3436 "maxLength": 300,
3537 "type": "string"
3638 },
3739 "writeBack": {
3840 "description": "This calendar receives an event for each booking. CalDAV only; at most one source per host carries it.",
3941 "type": "boolean"
4042 }
4143 },
4244 "required": [
4345 "name",
4446 "kind",
4547 "url",
4648 "createdAt"
4749 ],
4850 "type": "object"
4951 },
5052 "type": "record"
5153 }
5254 },
5355 "id": "space.intandem.calendarSource",
5456 "lexicon": 1
5557}

Compare other versions