Skip to content

Commit da3e10b

Browse files
authored
Merge pull request #225 from itsmeakhil/optimise-code-base-with-ponytail
Optimise code base with ponytail
2 parents 73c1454 + cb5e8cd commit da3e10b

95 files changed

Lines changed: 6688 additions & 3715 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/backend/app/core/indexes.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,22 @@
2424
URL_LINKS,
2525
USER_PREFERENCES,
2626
USERS,
27+
WEBAUTHN_CHALLENGES,
2728
)
29+
from app.core.config import get_settings
2830

2931

3032
async def ensure_indexes() -> None:
3133
await db_manager.create_index(USERS, "refresh_token_hash", sparse=True)
3234
await db_manager.create_index(USERS, "username", unique=True, sparse=True)
35+
# Passkeys / WebAuthn
36+
await db_manager.create_index(USERS, "webauthn_user_handle", unique=True, sparse=True)
37+
await db_manager.create_index(USERS, "passkeys.credential_id", sparse=True)
38+
await db_manager.create_index(
39+
WEBAUTHN_CHALLENGES,
40+
"created_at",
41+
expire_after_seconds=get_settings().WEBAUTHN_CHALLENGE_TTL_SECONDS,
42+
)
3343
await db_manager.create_index(TASKS, [("created_by", 1), ("status", 1), ("statusOrder", 1), ("createdAt", -1)])
3444
await db_manager.create_index(TASKS, [("created_by", 1), ("projectId", 1), ("status", 1), ("statusOrder", 1)])
3545
await db_manager.create_index(PROJECTS, [("created_by", 1), ("createdAt", 1)])

apps/backend/uv.lock

Lines changed: 140 additions & 54 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/web/messages/af.json

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,49 @@
208208
"tr": "Türkçe",
209209
"uk": "Українська"
210210
}
211+
},
212+
"passkeys": {
213+
"title": "Passkeys",
214+
"description": "Sign in faster and more securely with Face ID, Touch ID, Windows Hello, or a hardware key.",
215+
"addButton": "Add passkey",
216+
"loading": "Loading…",
217+
"none": "No passkeys yet.",
218+
"count": "{count, plural, one {# passkey registered.} other {# passkeys registered.}}",
219+
"addedOn": "Added {date}",
220+
"lastUsedOn": "Last used {date}",
221+
"synced": "Synced",
222+
"rename": "Rename",
223+
"renamePrompt": "Rename passkey",
224+
"addedToast": "Passkey added.",
225+
"renamedToast": "Passkey renamed.",
226+
"removedToast": "Passkey removed.",
227+
"loadError": "Could not load passkeys.",
228+
"addError": "Could not add passkey.",
229+
"renameError": "Could not rename passkey.",
230+
"deleteError": "Could not delete passkey.",
231+
"dialog": {
232+
"title": "Add a passkey",
233+
"description": "Your device will prompt you for a biometric or PIN. Give the passkey a name you'll recognize later.",
234+
"nameLabel": "Device name (optional)",
235+
"namePlaceholder": "e.g. MacBook Touch ID",
236+
"cancel": "Cancel",
237+
"continue": "Continue",
238+
"waiting": "Waiting for device…"
239+
},
240+
"delete": {
241+
"title": "Remove passkey?",
242+
"description": "You won't be able to sign in with this passkey anymore. You can always add a new one later.",
243+
"cancel": "Cancel",
244+
"confirm": "Remove"
245+
},
246+
"prompt": {
247+
"title": "Sign in faster next time",
248+
"description": "Set up a passkey on this device. Use Face ID, Touch ID, Windows Hello, or a hardware key to sign in — no password or OAuth round-trip needed.",
249+
"skip": "Maybe later",
250+
"setup": "Set up passkey",
251+
"successToast": "Passkey added — try signing out and back in to test it.",
252+
"errorToast": "Could not add passkey. You can try again from Settings."
253+
}
211254
}
212255
},
213256
"Dashboard": {
@@ -509,6 +552,62 @@
509552
"filterAll": "Alles",
510553
"loginCta": {
511554
"description": "Meld aan om jou onlangs gebruikte gereedskap te volg."
555+
},
556+
"popularTools": "Popular tools",
557+
"pinnedEmpty": "Pin your most-used tools — hover a card and click the pin icon.",
558+
"viewActivity": "Recent activity",
559+
"activity": {
560+
"title": "Activity log",
561+
"subtitle": "Everything you changed, when, and from which device.",
562+
"filterModule": "Module",
563+
"filterOutcome": "Outcome",
564+
"filterRange": "Time range",
565+
"search": "Search activity…",
566+
"all": "All",
567+
"success": "Success",
568+
"failure": "Failure",
569+
"today": "Today",
570+
"yesterday": "Yesterday",
571+
"last7": "7 days",
572+
"last30": "30 days",
573+
"allTime": "All time",
574+
"resetFilters": "Reset filters",
575+
"activeFilters": "{count, plural, =0 {No filters} =1 {1 filter} other {# filters}} applied",
576+
"empty": "No activity yet.",
577+
"emptyFiltered": "No activity matches the current filters.",
578+
"loadError": "Could not load activity.",
579+
"loadMore": "Load more",
580+
"loadingMore": "Loading…",
581+
"showingOf": "Showing {shown} of {total}",
582+
"changedFields": "What changed",
583+
"details": "Details",
584+
"hideDetails": "Hide details",
585+
"device": "Device",
586+
"ipAddress": "IP",
587+
"latency": "Latency",
588+
"endpoint": "Endpoint",
589+
"status": "Status",
590+
"when": "When",
591+
"actionKey": "Action",
592+
"before": "Before",
593+
"after": "After",
594+
"viewAll": "View all activity",
595+
"moduleAuth": "Account",
596+
"moduleBookmarks": "Bookmarks",
597+
"moduleBookmarkFolders": "Bookmark folders",
598+
"moduleNotes": "Notes",
599+
"moduleTasks": "Tasks",
600+
"modulePasswords": "Passwords",
601+
"moduleSnippets": "Snippets",
602+
"moduleApiClient": "API client",
603+
"moduleSqlClient": "SQL client",
604+
"moduleNosql": "NoSQL",
605+
"moduleEnvManager": "Environments",
606+
"modulePrefs": "Preferences",
607+
"moduleProjects": "Projects",
608+
"moduleUrlShortener": "URL shortener",
609+
"moduleGameScores": "Game scores",
610+
"moduleFeedback": "Feedback"
512611
}
513612
},
514613
"Tasks": {
@@ -1565,7 +1664,10 @@
15651664
"dialogRenameCollectionTitle": "Hernoem versameling",
15661665
"dialogRenameCollectionDescription": "Voer 'n nuwe naam vir die versameling in.",
15671666
"placeholderRenameCollection": "Versamelingnaam",
1568-
"renameAction": "Hernoem"
1667+
"renameAction": "Hernoem",
1668+
"dialogDeleteBulkTitle": "Delete Collections",
1669+
"dialogDeleteBulkDescription": "This action cannot be undone. The following collections will be permanently deleted:",
1670+
"cancel": "Cancel"
15691671
},
15701672
"collectionItem": {
15711673
"newFolder": "Nuwe vouer",

apps/web/messages/ar.json

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,49 @@
208208
"tr": "Türkçe",
209209
"uk": "Українська"
210210
}
211+
},
212+
"passkeys": {
213+
"title": "Passkeys",
214+
"description": "Sign in faster and more securely with Face ID, Touch ID, Windows Hello, or a hardware key.",
215+
"addButton": "Add passkey",
216+
"loading": "Loading…",
217+
"none": "No passkeys yet.",
218+
"count": "{count, plural, one {# passkey registered.} other {# passkeys registered.}}",
219+
"addedOn": "Added {date}",
220+
"lastUsedOn": "Last used {date}",
221+
"synced": "Synced",
222+
"rename": "Rename",
223+
"renamePrompt": "Rename passkey",
224+
"addedToast": "Passkey added.",
225+
"renamedToast": "Passkey renamed.",
226+
"removedToast": "Passkey removed.",
227+
"loadError": "Could not load passkeys.",
228+
"addError": "Could not add passkey.",
229+
"renameError": "Could not rename passkey.",
230+
"deleteError": "Could not delete passkey.",
231+
"dialog": {
232+
"title": "Add a passkey",
233+
"description": "Your device will prompt you for a biometric or PIN. Give the passkey a name you'll recognize later.",
234+
"nameLabel": "Device name (optional)",
235+
"namePlaceholder": "e.g. MacBook Touch ID",
236+
"cancel": "Cancel",
237+
"continue": "Continue",
238+
"waiting": "Waiting for device…"
239+
},
240+
"delete": {
241+
"title": "Remove passkey?",
242+
"description": "You won't be able to sign in with this passkey anymore. You can always add a new one later.",
243+
"cancel": "Cancel",
244+
"confirm": "Remove"
245+
},
246+
"prompt": {
247+
"title": "Sign in faster next time",
248+
"description": "Set up a passkey on this device. Use Face ID, Touch ID, Windows Hello, or a hardware key to sign in — no password or OAuth round-trip needed.",
249+
"skip": "Maybe later",
250+
"setup": "Set up passkey",
251+
"successToast": "Passkey added — try signing out and back in to test it.",
252+
"errorToast": "Could not add passkey. You can try again from Settings."
253+
}
211254
}
212255
},
213256
"Dashboard": {
@@ -509,6 +552,62 @@
509552
"filterAll": "الكل",
510553
"loginCta": {
511554
"description": "سجّل الدخول لتتبع أدواتك المستخدمة مؤخرًا."
555+
},
556+
"popularTools": "Popular tools",
557+
"pinnedEmpty": "Pin your most-used tools — hover a card and click the pin icon.",
558+
"viewActivity": "Recent activity",
559+
"activity": {
560+
"title": "Activity log",
561+
"subtitle": "Everything you changed, when, and from which device.",
562+
"filterModule": "Module",
563+
"filterOutcome": "Outcome",
564+
"filterRange": "Time range",
565+
"search": "Search activity…",
566+
"all": "All",
567+
"success": "Success",
568+
"failure": "Failure",
569+
"today": "Today",
570+
"yesterday": "Yesterday",
571+
"last7": "7 days",
572+
"last30": "30 days",
573+
"allTime": "All time",
574+
"resetFilters": "Reset filters",
575+
"activeFilters": "{count, plural, =0 {No filters} =1 {1 filter} other {# filters}} applied",
576+
"empty": "No activity yet.",
577+
"emptyFiltered": "No activity matches the current filters.",
578+
"loadError": "Could not load activity.",
579+
"loadMore": "Load more",
580+
"loadingMore": "Loading…",
581+
"showingOf": "Showing {shown} of {total}",
582+
"changedFields": "What changed",
583+
"details": "Details",
584+
"hideDetails": "Hide details",
585+
"device": "Device",
586+
"ipAddress": "IP",
587+
"latency": "Latency",
588+
"endpoint": "Endpoint",
589+
"status": "Status",
590+
"when": "When",
591+
"actionKey": "Action",
592+
"before": "Before",
593+
"after": "After",
594+
"viewAll": "View all activity",
595+
"moduleAuth": "Account",
596+
"moduleBookmarks": "Bookmarks",
597+
"moduleBookmarkFolders": "Bookmark folders",
598+
"moduleNotes": "Notes",
599+
"moduleTasks": "Tasks",
600+
"modulePasswords": "Passwords",
601+
"moduleSnippets": "Snippets",
602+
"moduleApiClient": "API client",
603+
"moduleSqlClient": "SQL client",
604+
"moduleNosql": "NoSQL",
605+
"moduleEnvManager": "Environments",
606+
"modulePrefs": "Preferences",
607+
"moduleProjects": "Projects",
608+
"moduleUrlShortener": "URL shortener",
609+
"moduleGameScores": "Game scores",
610+
"moduleFeedback": "Feedback"
512611
}
513612
},
514613
"Tasks": {
@@ -1565,7 +1664,10 @@
15651664
"dialogRenameCollectionTitle": "إعادة تسمية المجموعة",
15661665
"dialogRenameCollectionDescription": "أدخل اسماً جديداً للمجموعة.",
15671666
"placeholderRenameCollection": "اسم المجموعة",
1568-
"renameAction": "إعادة تسمية"
1667+
"renameAction": "إعادة تسمية",
1668+
"dialogDeleteBulkTitle": "Delete Collections",
1669+
"dialogDeleteBulkDescription": "This action cannot be undone. The following collections will be permanently deleted:",
1670+
"cancel": "Cancel"
15691671
},
15701672
"collectionItem": {
15711673
"newFolder": "مجلد جديد",

apps/web/messages/ca.json

Lines changed: 103 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,49 @@
208208
"tr": "Türkçe",
209209
"uk": "Українська"
210210
}
211+
},
212+
"passkeys": {
213+
"title": "Passkeys",
214+
"description": "Sign in faster and more securely with Face ID, Touch ID, Windows Hello, or a hardware key.",
215+
"addButton": "Add passkey",
216+
"loading": "Loading…",
217+
"none": "No passkeys yet.",
218+
"count": "{count, plural, one {# passkey registered.} other {# passkeys registered.}}",
219+
"addedOn": "Added {date}",
220+
"lastUsedOn": "Last used {date}",
221+
"synced": "Synced",
222+
"rename": "Rename",
223+
"renamePrompt": "Rename passkey",
224+
"addedToast": "Passkey added.",
225+
"renamedToast": "Passkey renamed.",
226+
"removedToast": "Passkey removed.",
227+
"loadError": "Could not load passkeys.",
228+
"addError": "Could not add passkey.",
229+
"renameError": "Could not rename passkey.",
230+
"deleteError": "Could not delete passkey.",
231+
"dialog": {
232+
"title": "Add a passkey",
233+
"description": "Your device will prompt you for a biometric or PIN. Give the passkey a name you'll recognize later.",
234+
"nameLabel": "Device name (optional)",
235+
"namePlaceholder": "e.g. MacBook Touch ID",
236+
"cancel": "Cancel",
237+
"continue": "Continue",
238+
"waiting": "Waiting for device…"
239+
},
240+
"delete": {
241+
"title": "Remove passkey?",
242+
"description": "You won't be able to sign in with this passkey anymore. You can always add a new one later.",
243+
"cancel": "Cancel",
244+
"confirm": "Remove"
245+
},
246+
"prompt": {
247+
"title": "Sign in faster next time",
248+
"description": "Set up a passkey on this device. Use Face ID, Touch ID, Windows Hello, or a hardware key to sign in — no password or OAuth round-trip needed.",
249+
"skip": "Maybe later",
250+
"setup": "Set up passkey",
251+
"successToast": "Passkey added — try signing out and back in to test it.",
252+
"errorToast": "Could not add passkey. You can try again from Settings."
253+
}
211254
}
212255
},
213256
"Dashboard": {
@@ -509,6 +552,62 @@
509552
"filterAll": "Tot",
510553
"loginCta": {
511554
"description": "Inicieu sessió per fer un seguiment de les eines utilitzades recentment."
555+
},
556+
"popularTools": "Popular tools",
557+
"pinnedEmpty": "Pin your most-used tools — hover a card and click the pin icon.",
558+
"viewActivity": "Recent activity",
559+
"activity": {
560+
"title": "Activity log",
561+
"subtitle": "Everything you changed, when, and from which device.",
562+
"filterModule": "Module",
563+
"filterOutcome": "Outcome",
564+
"filterRange": "Time range",
565+
"search": "Search activity…",
566+
"all": "All",
567+
"success": "Success",
568+
"failure": "Failure",
569+
"today": "Today",
570+
"yesterday": "Yesterday",
571+
"last7": "7 days",
572+
"last30": "30 days",
573+
"allTime": "All time",
574+
"resetFilters": "Reset filters",
575+
"activeFilters": "{count, plural, =0 {No filters} =1 {1 filter} other {# filters}} applied",
576+
"empty": "No activity yet.",
577+
"emptyFiltered": "No activity matches the current filters.",
578+
"loadError": "Could not load activity.",
579+
"loadMore": "Load more",
580+
"loadingMore": "Loading…",
581+
"showingOf": "Showing {shown} of {total}",
582+
"changedFields": "What changed",
583+
"details": "Details",
584+
"hideDetails": "Hide details",
585+
"device": "Device",
586+
"ipAddress": "IP",
587+
"latency": "Latency",
588+
"endpoint": "Endpoint",
589+
"status": "Status",
590+
"when": "When",
591+
"actionKey": "Action",
592+
"before": "Before",
593+
"after": "After",
594+
"viewAll": "View all activity",
595+
"moduleAuth": "Account",
596+
"moduleBookmarks": "Bookmarks",
597+
"moduleBookmarkFolders": "Bookmark folders",
598+
"moduleNotes": "Notes",
599+
"moduleTasks": "Tasks",
600+
"modulePasswords": "Passwords",
601+
"moduleSnippets": "Snippets",
602+
"moduleApiClient": "API client",
603+
"moduleSqlClient": "SQL client",
604+
"moduleNosql": "NoSQL",
605+
"moduleEnvManager": "Environments",
606+
"modulePrefs": "Preferences",
607+
"moduleProjects": "Projects",
608+
"moduleUrlShortener": "URL shortener",
609+
"moduleGameScores": "Game scores",
610+
"moduleFeedback": "Feedback"
512611
}
513612
},
514613
"Tasks": {
@@ -1565,7 +1664,10 @@
15651664
"dialogRenameCollectionTitle": "Reanomena la col·lecció",
15661665
"dialogRenameCollectionDescription": "Introdueix un nom nou per a la col·lecció.",
15671666
"placeholderRenameCollection": "Nom de la col·lecció",
1568-
"renameAction": "Reanomena"
1667+
"renameAction": "Reanomena",
1668+
"dialogDeleteBulkTitle": "Delete Collections",
1669+
"dialogDeleteBulkDescription": "This action cannot be undone. The following collections will be permanently deleted:",
1670+
"cancel": "Cancel"
15691671
},
15701672
"collectionItem": {
15711673
"newFolder": "Carpeta nova",

0 commit comments

Comments
 (0)