Kalender og planlegging
Control Center kobler til Google Calendar, slik at dagen din ligger side om side med flåten din. Det synkroniserer hendelsene dine, viser dem i måneds-, ukes-, dags- og agendavisning, varsler deg før et møte starter og gjør enhver hendelse om til et tatt opp og oppsummert møte.
Hva det endrer hos Google
Seksjon med tittelen «Hva det endrer hos Google»Nesten ingenting. Integrasjonen henter inn hendelser og viser dem. Den oppretter,
redigerer eller sletter ingenting, og svarer ikke på invitasjoner. Hver
device-code-tilkobling, enten innebygd eller din egen, ber om calendar.readonly
pluss openid email.
Hendelser synkroniseres til arbeidsområdets egen database på serveren
(<dataDir>/<workspaceId>/workspace.db) og vises av alle klienter over RPC.
Ingen klient har lagret noen Google-legitimasjon.
Kontoer per arbeidsområde
Seksjon med tittelen «Kontoer per arbeidsområde»Kalenderkontoer er knyttet til arbeidsområdet, som alt annet i Control Center. Hvert arbeidsområde kobler til sin egen Google-konto (eller flere), og hendelser og tokens fra ett arbeidsområde er aldri synlige fra et annet. Når du bytter arbeidsområde, bytter du også hvilke kalendere du ser.
Et arbeidsområde kan koble til flere Google-kontoer, for eksempel en jobbkonto og en privat konto, og hendelsene deres flettes sammen i de samme visningene.
Hvorfor påloggingen bruker en device code
Seksjon med tittelen «Hvorfor påloggingen bruker en device code»Den headless cc_server har ingen nettleser som kan ta imot en
OAuth-omdirigering. Derfor bruker den ingen: den autoriserer med
device-code-tilgangen (RFC 8628). Serveren viser en kort brukerkode og en
Google-URL, du godkjenner på en hvilken som helst enhet som har nettleser, og
serveren spør på nytt til du gjør det. En headless installasjon kan nettopp koble
til en konto fordi det ikke finnes noe omdirigeringsendepunkt å hoste.
Konsekvensen du bør kjenne til før du tar med egne legitimasjoner: klienttypen må
være Googles «TV and Limited Input devices». Google gir bare et forhåndsgodkjent
sett med scopes til den klienttypen, og et prosjekt der Calendar ikke er tillatt
for den, feiler med invalid_scope — da trenger du en loopback- eller webklient
i stedet.
Tokens forlater aldri serveren. De skrives til serverens secrets.json i
datamappen, med nøkkelen google_google:<workspaceId>:<email>, sammen med
databasene og innenfor samme tillitsgrense som vertens filsystem. Serveren
fornyer tilgangen automatisk, og når Google permanent ugyldiggjør en konto (en
tilbakekalt eller lenge utløpt økt), publiserer den CalendarAuthExpired og
viser et koble til på nytt-banner i stedet for å feile i stillhet.
Et bygg fra kildekoden inneholder ingen Google-legitimasjon i det hele tatt —
du skaffer din egen klient-id og klienthemmelighet. Offisielle utgivelsesbygg har
et innebygd ikke-fortrolig device-code-klient, slik at tilkoblingsflyten fungerer
med en gang; serveren lagrer bare en markør som viser til det, aldri en kopi.
GOOGLE_OAUTH_CLIENT_ID (og hemmeligheten) i miljøet har alltid forrang foran
det innebygde paret. Det finnes bevisst ingen --google-client-id-flagg: ukjente
flagg ignoreres, og en hemmelighet på kommandolinjen kan leses via ps.
For å kjøre ditt eget Google-prosjekt, se Koble til en Google Calendar.
Synkronisering
Seksjon med tittelen «Synkronisering»Serveren henter et rullerende vindu av hendelsene til hver tilkoblede konto — alle kalendere på kontoen, ikke bare den primære — hvert andre minutt, i tillegg til ved behov (oppstart, tilkobling, manuell oppdatering). Den korte kadensen er overkommelig fordi gjennomgangen er inkrementell: hver kalender har sitt eget synkroniseringstoken, slik at en uendret kalender koster ett nesten tomt svar i stedet for å hente et fem måneder langt vindu på nytt.
Gjentakende hendelser utvides på serversiden, slik at ingen klient trenger å tolke en gjentakelsesregel. Navigerer du til en måned utenfor det gjeldende vinduet, lastes det området ved behov. Slettede hendelser, og hendelser som er flyttet ut av området, ryddes bort ved neste synkronisering.
Visninger
Seksjon med tittelen «Visninger»| Visning | Hva den viser |
|---|---|
| Måned | Et fullstendig månedsrutenett (drevet av kalender-pakken) |
| Uke | En ukes tidsbestemte hendelser i et tidsrutenett |
| Dag | En enkelt dags tidsbestemte hendelser i et tidsrutenett |
| Agenda | En rullbar liste over kommende hendelser |
Åpne kalenderen på /calendar; velger du en hendelse, åpnes detaljene på
/calendar/:eventId. Visningen du velger, lagres i denne klientens egne
innstillinger, og følger deg derfor ikke til en annen enhet.
Møtevarsler
Seksjon med tittelen «Møtevarsler»En planlegger som kjører hvert minutt, ser etter hendelser som starter innenfor
et konfigurerbart forhåndsvindu, og utløser et «møte starter snart»-varsel
(en MeetingStartingSoon-domenehendelse).
Varselet inneholder deltakelses-URL-en når det finnes en, og klikker du på det,
åpnes hendelsesdetaljene. Varsler fjernes for duplikater mot hendelsens
alertedAt, slik at det samme møtet aldri varsles to ganger, selv på tvers av
omstart — og en hendelse hvis starttid passerte mens appen var lukket, spilles
aldri av på nytt.
To begrensninger er lette å snuble i. Planleggeren kjører klientsiden på skrivebordet og bare for arbeidsområdet du har åpent for øyeblikket — et arbeidsområde du ikke er i, gir ingen varsel. Og nettbyggingen har ingen pipeline for OS-varsler i det hele tatt, så den gir heller ingen.
Ta opp og knytt
Seksjon med tittelen «Ta opp og knytt»Fra en kalenderhendelse kan du starte et møteopptak med hendelsens tittel som utgangspunkt. Control Center lagrer en en-til-en-kobling mellom opptaket og hendelsen, slik at møtenotatene og kalenderoppføringen holder sammen uten at noen av funksjonene er avhengige av den andre.
Start opptak og knytt finnes bare på skrivebordet. I nettklienten melder handlingen at opptak ikke er tilgjengelig — selv om møteskjermens egen opptaksflyt faktisk fungerer i nettleseren.
- Møter og transkripsjon: hva som skjer etter at du starter et opptak
- Arbeidsområder og isolasjon: hvorfor kalenderkontoer er per arbeidsområde
- Domenehendelser:
MeetingStartingSoonogCalendarAuthExpired - Koble til en Google Calendar
- Ta opp og oppsummer et møte