Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sg60/eventspider
2-way synchronisation of Notion and Google Calendar
https://github.com/sg60/eventspider
distributed dynamodb etcd google-calendar google-calendar-api notion rust sync
Last synced: 6 days ago
JSON representation
2-way synchronisation of Notion and Google Calendar
- Host: GitHub
- URL: https://github.com/sg60/eventspider
- Owner: SG60
- License: agpl-3.0
- Created: 2022-08-14T23:45:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-06T10:53:59.000Z (26 days ago)
- Last Synced: 2024-12-06T22:42:47.160Z (25 days ago)
- Topics: distributed, dynamodb, etcd, google-calendar, google-calendar-api, notion, rust, sync
- Language: Rust
- Homepage: https://eventspider.samgreening.com/
- Size: 458 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EventSpider
frontend - https://github.com/SG60/EventSpider-frontend
https://www.notion.so/samgreening/Notion-Block-Sync-b0735065a45d48d6aeaef63bf07b7a96Deployed to AWS?!
https://eu-west-2.console.aws.amazon.com/dynamodbv2/home?region=eu-west-2#item-explorer?initialTagKey=&table=tasks
[![Rust](https://github.com/SG60/EventSpider/actions/workflows/rust.yml/badge.svg)](https://github.com/SG60/EventSpider/actions/workflows/rust.yml)
[Terraform Cloud for deploying changes to DynamoDB](https://app.terraform.io/app/samgreening/workspaces/notion_sync)
---
Uses Just (see the justfile) for running scripts etc.
https://eu-west-2.console.aws.amazon.com/dynamodbv2/home?region=eu-west-2#item-explorer?initialTagKey=&table=tasks
# DB Design
- https://docs.rs/aws-sdk-dynamodb/latest/aws_sdk_dynamodb/
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.html
- https://github.com/awslabs/aws-sdk-rust/tree/main/examples/dynamodb
- https://docs.aws.amazon.com/sdk-for-rust/latest/dg/getting-started.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.htmlThe DB just stores sync settings and refresh tokens.
## DB Schema
PK
AttributesuserId
SK
type (GSI-1-PK)
data (GSI-1-SK)
firebase auth user id
userDetails
type data notionBotId googleRefreshToken notionAccessToken other stuff
userDetailsACTIVE or INACTIVEnotionB#bot_id asdfasefa asdfasefa workspace name, workspace emoji, etc.
sync#0
typedata (next sync timestamp)last syncnotionDatabasegoogleCalendarnotionDBProps
syncSCHEDULED#2007-04-05T14:30Z
or DISABLED
or ERRORLAST#2007-04-05T14:30Zasdfaseasdf3
```json
{"notionTitleId":{"S":"title"},"notionDoneId":{"S":"O%7CaE"}}
```
GSI-1 will be:
type (e.g. userDetails)dataThis should allow sorting all active syncs (e.g. 'sync' + startsWith 'SCHEDULED#') and other useful queries.
Probably doesn't need rows for items. Maybe they can all just be stored in memory.
https://eu-west-2.console.aws.amazon.com/dynamodbv2/home?region=eu-west-2#item-explorer?initialTagKey=&table=tasks
https://console.firebase.google.com/project/notion-sync-tools/authentication/users
# Notion Integration
https://www.notion.so/my-integrations/public/f8014299c7f64cac8315d858c2aab2c8
# Postman Workspace
https://web.postman.co/workspace/fe759fe4-0286-4679-860f-6dc84d8af0fc
# k8s infra
Deployed to Oracle kubernetes cluster.
https://github.com/SG60/EventSpider-infrastructure-config