Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
ad0b110
feat(api): add equipment management actions
CinquinAndy Mar 30, 2025
7bb3b97
feat(deps): update package versions for improvements
CinquinAndy Mar 30, 2025
21d120d
feat(api): enhance security validations for user and organization
CinquinAndy Mar 30, 2025
5e456eb
feat(api): update equipment action result type
CinquinAndy Mar 30, 2025
6ab0119
feat(equipment): enhance tag handling and API consistency
CinquinAndy Mar 30, 2025
a642919
feat(api): enhance organization and project services
CinquinAndy Mar 30, 2025
d7b4ece
feat(api): update user organization handling
CinquinAndy Mar 30, 2025
e9526f6
feat(docs): update documentation and add new files
CinquinAndy Mar 30, 2025
9ba909c
feat(docs): remove outdated documentation files
CinquinAndy Mar 30, 2025
47779af
feat(docs): add detailed requirements and architecture
CinquinAndy Mar 30, 2025
2bdf4e1
feat(core): add example environment configuration
CinquinAndy Mar 30, 2025
d6e604f
chore(env): rename env.exemple to env.example
CinquinAndy Mar 30, 2025
843623e
feat(sync): implement secure caching and data synchronization
CinquinAndy Mar 30, 2025
d533f3e
chore(package): update svix version to 1.62.0
CinquinAndy Mar 30, 2025
df72072
feat(core): enhance cache security and metadata types
CinquinAndy Mar 30, 2025
94dbc47
feat(core): enhance Clerk-PocketBase reconciliation
CinquinAndy Mar 30, 2025
74bf295
feat(core): enhance sync middleware functionality
CinquinAndy Mar 30, 2025
e2d7c86
feat(sync): enhance data synchronization with Clerk
CinquinAndy Mar 30, 2025
9c0a0c8
feat(docs): update README and add dev instructions
CinquinAndy Mar 30, 2025
c504915
docs(api): update README with webhook setup instructions
CinquinAndy Mar 30, 2025
ecb02e1
feat(api): add Clerk webhook handling for users and organizations
CinquinAndy Mar 30, 2025
49b26aa
feat(api): add webhook handling for organizations and users
CinquinAndy Mar 30, 2025
6361f3b
refactor(api): improve record data type handling
CinquinAndy Mar 30, 2025
fb56bb1
feat(api): enhance organization management features
CinquinAndy Mar 30, 2025
2cb866d
feat(organization): implement core organization management features
CinquinAndy Mar 30, 2025
dfae7fb
feat(organization): streamline imports and structure
CinquinAndy Mar 30, 2025
1d53441
feat(user): enhance user management and authentication
CinquinAndy Mar 30, 2025
ddcb888
feat(api): add AppUser management functionality
CinquinAndy Mar 30, 2025
31a4142
feat(security): refactor security utilities and validation
CinquinAndy Mar 30, 2025
7d3c4a2
feat(api): update collection names to match new schema
CinquinAndy Mar 30, 2025
ff8e8b0
feat(api): enhance AppUser creation and fetching
CinquinAndy Mar 30, 2025
52e5e45
feat(sync): enhance user and organization syncing
CinquinAndy Mar 30, 2025
ea95e78
chore(cleanup): remove large text and output files
CinquinAndy Mar 30, 2025
2fd8b1b
feat(docs): add example export for PB schema
CinquinAndy Mar 30, 2025
e4b2a78
feat(api): enhance user and organization sync logic
CinquinAndy Mar 30, 2025
7a099a8
fix(core): correct string interpolation in sync service
CinquinAndy Mar 30, 2025
6140d96
feat(api): enhance user-organization linking process
CinquinAndy Mar 30, 2025
68625f0
feat(core): enhance user and organization sync logic
CinquinAndy Mar 30, 2025
47f84bf
feat(api): enhance user sync with metadata support
CinquinAndy Mar 30, 2025
2439eef
feat(api): enhance webhook handling and logging
CinquinAndy Mar 31, 2025
78991da
feat(webhook): enhance Clerk webhook processing
CinquinAndy Mar 31, 2025
802a506
feat(cache): remove secure cache service
CinquinAndy Mar 31, 2025
3d95c94
feat(core): add secure caching service and middleware updates
CinquinAndy Mar 31, 2025
98edfae
feat(middleware): enhance authentication flow
CinquinAndy Mar 31, 2025
7d5d43a
feat(db): update pb schema with new fields
CinquinAndy Mar 31, 2025
bf32562
feat(docs): update example export PB schema
CinquinAndy Mar 31, 2025
c4fa7a7
feat(docs): update README and add project structure
CinquinAndy Mar 31, 2025
c746a9e
feat(models): reorganize types and validation schemas
CinquinAndy Mar 31, 2025
7b11a19
feat(models): add organization and app user models
CinquinAndy Mar 31, 2025
15fb806
feat(api): restructure PocketBase API client
CinquinAndy Mar 31, 2025
15ed284
fix(api): simplify authentication check function
CinquinAndy Mar 31, 2025
6422e48
chore(env): remove example environment file
CinquinAndy Mar 31, 2025
b3b9f86
feat(docs): add comprehensive readme files for directories
CinquinAndy Mar 31, 2025
5d2c069
feat(docs): update directory readme files
CinquinAndy Mar 31, 2025
6242c8e
feat(db): update user metadata and date handling
CinquinAndy Mar 31, 2025
f4b996e
feat(webhook): enhance webhook processing and validation
CinquinAndy Mar 31, 2025
969bdef
feat(pocketbase): add PocketBase API client and schemas
CinquinAndy Mar 31, 2025
4eab938
feat(db): update schema for Organization and AppUser
CinquinAndy Mar 31, 2025
2124c84
feat(core): enhance user and organization sync functionality
CinquinAndy Apr 4, 2025
baec540
chore(deps): update package versions
CinquinAndy Apr 4, 2025
ccd1ebc
feat(deps): update package versions for improvements
CinquinAndy Apr 4, 2025
b8be005
feat(docs): add core API documentation for table features
CinquinAndy Apr 4, 2025
341a919
feat(dependencies): update and add new packages
CinquinAndy Apr 5, 2025
9757652
feat(ui): enhance dashboard with new links and updates
CinquinAndy Apr 5, 2025
ba14da5
chore(deps): update package versions
CinquinAndy Apr 5, 2025
c22b479
feat(ui): update project table and localization
CinquinAndy Apr 5, 2025
8d41040
feat(ui): enhance project table with filters and calendar
CinquinAndy Apr 5, 2025
d40e4fe
feat(ui): update date picker and project table features
CinquinAndy Apr 5, 2025
f99defa
feat(ui): add date range filtering to projects table
CinquinAndy Apr 5, 2025
a9da899
feat(ui): add project status filtering
CinquinAndy Apr 5, 2025
0606144
feat(deps): update Tailwind CSS and related packages
CinquinAndy Apr 6, 2025
8a42b5a
feat(ui): enhance projects table functionality
CinquinAndy Apr 6, 2025
2d737d9
feat(ui): enhance project table columns
CinquinAndy Apr 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,020 changes: 1,020 additions & 0 deletions .cursor/md/example-export-pb-schema.md

Large diffs are not rendered by default.

325 changes: 325 additions & 0 deletions .cursor/md/example-webhook-clerk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,325 @@
# Organization

```json
{
"data": {
"created_at": 1654013202977,
"created_by": "user_1vq84bqWzw7qmFgqSwN4CH1Wp0n",
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"image_url": "https://img.clerk.com/xxxxxx",
"logo_url": "https://example.org/example.png",
"name": "Acme Inc",
"object": "organization",
"public_metadata": {},
"slug": "acme-inc",
"updated_at": 1654013202977
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654013202977,
"type": "organization.created"
}
```

```
{
"data": {
"deleted": true,
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"object": "organization"
},
"event_attributes": {
"http_request": {
"client_ip": "",
"user_agent": ""
}
},
"object": "event",
"timestamp": 1661861640000,
"type": "organization.deleted"
}
```

```
{
"data": {
"created_at": 1654013202977,
"created_by": "user_1vq84bqWzw7qmFgqSwN4CH1Wp0n",
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"image_url": "https://img.clerk.com/xxxxxx",
"logo_url": "https://example.com/example.png",
"name": "Acme Inc",
"object": "organization",
"public_metadata": {},
"slug": "acme-inc",
"updated_at": 1654013466465
},
"event_attributes": {
"http_request": {
"client_ip": "",
"user_agent": ""
}
},
"object": "event",
"timestamp": 1654013466465,
"type": "organization.updated"
}
```

# Organization Membership

```
{
"data": {
"created_at": 1654013203217,
"id": "orgmem_29w9IptNja3mP8GDXpquBwN2qR9",
"object": "organization_membership",
"organization": {
"created_at": 1654013202977,
"created_by": "user_1vq84bqWzw7qmFgqSwN4CH1Wp0n",
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"image_url": "https://img.clerk.com/xxxxxx",
"logo_url": "https://example.com/example.png",
"name": "Acme Inc",
"object": "organization",
"public_metadata": {},
"slug": "acme-inc",
"updated_at": 1654013202977
},
"public_user_data": {
"first_name": "Example",
"identifier": "example@example.org",
"image_url": "https://img.clerk.com/xxxxxx",
"last_name": "Example",
"profile_image_url": "https://www.gravatar.com/avatar?d=mp",
"user_id": "user_29w83sxmDNGwOuEthce5gg56FcC"
},
"role": "admin",
"updated_at": 1654013203217
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654013203217,
"type": "organizationMembership.created"
}
```

```
{
"data": {
"created_at": 1654013847054,
"id": "orgmem_29wAbjiJs6aZuPq7AzmkW9dwmyl",
"object": "organization_membership",
"organization": {
"created_at": 1654013202977,
"created_by": "user_1vq84bqWzw7qmFgqSwN4CH1Wp0n",
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"image_url": "https://img.clerk.com/xxxxxx",
"logo_url": null,
"name": "Acme Inc",
"object": "organization",
"public_metadata": {},
"slug": "acme-inc",
"updated_at": 1654013567994
},
"public_user_data": {
"first_name": null,
"identifier": "example@example.org",
"image_url": "https://img.clerk.com/xxxxxx",
"last_name": null,
"profile_image_url": "https://www.gravatar.com/avatar?d=mp",
"user_id": "user_29wACSk1DjeUCwsS6SbbgIgilMy"
},
"role": "basic_member",
"updated_at": 1654013847054
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654013847054,
"type": "organizationMembership.deleted"
}
```

```
{
"data": {
"created_at": 1654013847054,
"id": "orgmem_29wAbjiJs6aZuPq7AzmkW9dwmyl",
"object": "organization_membership",
"organization": {
"created_at": 1654013202977,
"created_by": "user_1vq84bqWzw7qmFgqSwN4CH1Wp0n",
"id": "org_29w9IfBrPmcpi0IeBVaKtA7R94W",
"image_url": "https://img.clerk.com/xxxxxx",
"logo_url": null,
"name": "Acme Inc",
"object": "organization",
"public_metadata": {},
"slug": "acme-inc",
"updated_at": 1654013567994
},
"public_user_data": {
"first_name": null,
"identifier": "example@example.org",
"image_url": "https://img.clerk.com/xxxxxx",
"last_name": null,
"profile_image_url": "https://www.gravatar.com/avatar?d=mp",
"user_id": "user_29wACSk1DjeUCwsS6SbbgIgilMy"
},
"role": "basic_member",
"updated_at": 1654013910646
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654013910646,
"type": "organizationMembership.updated"
}
```

# User

```
{
"data": {
"birthday": "",
"created_at": 1654012591514,
"email_addresses": [
{
"email_address": "example@example.org",
"id": "idn_29w83yL7CwVlJXylYLxcslromF1",
"linked_to": [],
"object": "email_address",
"verification": {
"status": "verified",
"strategy": "ticket"
}
}
],
"external_accounts": [],
"external_id": "567772",
"first_name": "Example",
"gender": "",
"id": "user_29w83sxmDNGwOuEthce5gg56FcC",
"image_url": "https://img.clerk.com/xxxxxx",
"last_name": "Example",
"last_sign_in_at": 1654012591514,
"object": "user",
"password_enabled": true,
"phone_numbers": [],
"primary_email_address_id": "idn_29w83yL7CwVlJXylYLxcslromF1",
"primary_phone_number_id": null,
"primary_web3_wallet_id": null,
"private_metadata": {},
"profile_image_url": "https://www.gravatar.com/avatar?d=mp",
"public_metadata": {},
"two_factor_enabled": false,
"unsafe_metadata": {},
"updated_at": 1654012591835,
"username": null,
"web3_wallets": []
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654012591835,
"type": "user.created"
}
```

```
{
"data": {
"deleted": true,
"id": "user_29wBMCtzATuFJut8jO2VNTVekS4",
"object": "user"
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1661861640000,
"type": "user.deleted"
}
```

```
{
"data": {
"birthday": "",
"created_at": 1654012591514,
"email_addresses": [
{
"email_address": "example@example.org",
"id": "idn_29w83yL7CwVlJXylYLxcslromF1",
"linked_to": [],
"object": "email_address",
"reserved": true,
"verification": {
"attempts": null,
"expire_at": null,
"status": "verified",
"strategy": "admin"
}
}
],
"external_accounts": [],
"external_id": null,
"first_name": "Example",
"gender": "",
"id": "user_29w83sxmDNGwOuEthce5gg56FcC",
"image_url": "https://img.clerk.com/xxxxxx",
"last_name": null,
"last_sign_in_at": null,
"object": "user",
"password_enabled": true,
"phone_numbers": [],
"primary_email_address_id": "idn_29w83yL7CwVlJXylYLxcslromF1",
"primary_phone_number_id": null,
"primary_web3_wallet_id": null,
"private_metadata": {},
"profile_image_url": "https://www.gravatar.com/avatar?d=mp",
"public_metadata": {},
"two_factor_enabled": false,
"unsafe_metadata": {},
"updated_at": 1654012824306,
"username": null,
"web3_wallets": []
},
"event_attributes": {
"http_request": {
"client_ip": "0.0.0.0",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
}
},
"object": "event",
"timestamp": 1654012824306,
"type": "user.updated"
}
```
Loading