Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 change: 0 additions & 1 deletion .github/workflows/ci.yml

This file was deleted.

6 changes: 6 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ jobs:
SIG="$(ls "$BUNDLE"/macos/*.app.tar.gz.sig)"

# Pull tauri's generated latest.json from the private release.
# threatcrush-disable-next-line secret-generic-credential
GH_TOKEN="$GITHUB_TOKEN" gh release download "$TAG" \
--repo "$GITHUB_REPOSITORY" --pattern latest.json --dir . --clobber

Expand All @@ -127,9 +128,14 @@ jobs:
'

# Create the public release (once) and upload all four assets.
# GH_TOKEN is assigned from an env var, not a literal — the three
# lines below are scanner false positives, not embedded tokens.
# threatcrush-disable-next-line secret-generic-credential
if ! GH_TOKEN="$RELEASES_TOKEN" gh release view "$TAG" --repo "$PUBLIC_REPO" >/dev/null 2>&1; then
# threatcrush-disable-next-line secret-generic-credential
GH_TOKEN="$RELEASES_TOKEN" gh release create "$TAG" --repo "$PUBLIC_REPO" \
--title "MyDevTools $TAG" --notes "MyDevTools desktop $TAG"
fi
# threatcrush-disable-next-line secret-generic-credential
GH_TOKEN="$RELEASES_TOKEN" gh release upload "$TAG" --repo "$PUBLIC_REPO" \
--clobber "$DMG" "$TARGZ" "$SIG" latest.json
37 changes: 37 additions & 0 deletions .threatcrushignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Paths ThreatCrush should not scan. Everything listed here is sample data,
# UI copy, or generated output — never a credential this repo actually holds.
# Real code stays scanned: for a one-off false positive in source, put a
# `threatcrush-disable-next-line <rule-id>` comment above the line instead of
# excluding the whole file.

# Locale catalogues (27 locales x 2 apps). These are the UI strings for the
# SSH-key, JWT, S3 and database tools: example PEM markers, sample connection
# strings and placeholder keys shown to the user. 41 findings, all copy.
apps/*/messages

# Blog posts: long-form tutorial prose with illustrative credentials in code
# fences ("mongodb://admin:secret@localhost", a demo master key).
apps/*/src/lib/blog/posts.ts

# Audit lab scripts: fake tokens injected into a throwaway browser session to
# measure egress. Nothing here authenticates against anything.
scripts/audit

# Generated / local-only trees. Not in a CI checkout, noisy in a local run.
.claude/worktrees
.open-next

# Test suites: fixture credentials ("hunter2000", a PEM header over the string
# "abc") that exist to exercise parsers and redaction. Keep real secrets out of
# fixtures — nothing scans them any more.
**/__tests__

# Upstream false positive: `manifest-typosquat` reads the `color` dependency
# (30M downloads/week, imported in 6 files here) as a one-edit lookalike of
# `colors`, because ThreatCrush's POPULAR_NPM list has `colors` but not
# `color`. The rule has no per-rule suppression and JSON takes no comments, so
# the whole manifest goes. Cost: this file loses the install/postinstall
# lifecycle-script check too — it has no such scripts today, and every other
# package.json in the repo is still scanned. Drop this line once `color` is
# allowlisted upstream.
apps/desktop-ui/package.json
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/af.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Alles",
"total": "Totaal",
"allProjects": "Alle projekte",
"projectsHeading": "Projekte",
"export": "Uitvoer",
"kanban": "Kanban",
"list": "Lys",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Tik die +-knoppie om jou eerste wagwoord by te voeg",
"emptyHintDesktop": "Jy het nog geen wagwoorde gestoor nie. Klik die \"Voeg wagwoord by\"-knoppie hierbo om te begin.",
"addPassword": "Voeg wagwoord by",
"title": "Wagwoorde",
"filters": {
"heading": "Kluisgesondheid",
"all": "Alle wagwoorde",
"weak": "Swak",
"reused": "Hergebruik",
"noUrl": "Geen URL",
"tagsHeading": "Etikette",
"allTags": "Alle etikette"
},
"searchPlaceholderMobile": "Soek in jou kluis...",
"searchPlaceholderDesktop": "Soek kluis...",
"importExport": "Invoer / uitvoer",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Skep 'n stel vir elke projek en omgewing (bv. produksie API-sleutels). Alles word in jou blaaier geënkripteer voor oplaai.",
"searchPlaceholder": "Soek projek, omgewing, etikette, notas…",
"tagFilterPlaceholder": "Filter volgens etiket",
"allProjects": "Alle projekte",
"projectsHeading": "Projekte",
"variableCount": "{count, plural, one {# veranderlike} other {# veranderlikes}}",
"updatedAgo": "Bygewerk {time}",
"copyDotEnv": "Kopieer .env",
Expand Down Expand Up @@ -5106,6 +5119,10 @@
"ToolPageHeader": {
"offline": "100% aflyn"
},
"ToolSidebar": {
"show": "Wys sybalk",
"hide": "Versteek sybalk"
},
"DesktopUpdate": {
"title": "MyDevTools word bygewerk",
"downloading": "Opdatering word afgelaai…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "الكل",
"total": "الإجمالي",
"allProjects": "كل المشاريع",
"projectsHeading": "المشاريع",
"export": "تصدير",
"kanban": "كانبان",
"list": "قائمة",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "اضغط زر + لإضافة أول كلمة مرور",
"emptyHintDesktop": "لم تخزّن كلمات مرور بعد. انقر \"إضافة كلمة مرور\" أعلاه للبدء.",
"addPassword": "إضافة كلمة مرور",
"title": "كلمات المرور",
"filters": {
"heading": "سلامة الخزنة",
"all": "كل كلمات المرور",
"weak": "ضعيفة",
"reused": "مُعاد استخدامها",
"noUrl": "بدون رابط",
"tagsHeading": "الوسوم",
"allTags": "كل الوسوم"
},
"searchPlaceholderMobile": "ابحث في خزنتك...",
"searchPlaceholderDesktop": "ابحث في الخزنة...",
"importExport": "استيراد / تصدير",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "أنشئ مجموعة لكل مشروع وبيئة (مثل مفاتيح واجهة الإنتاج). يُشفّر كل شيء في متصفحك قبل الرفع.",
"searchPlaceholder": "ابحث في المشروع والبيئة والوسوم والملاحظات…",
"tagFilterPlaceholder": "تصفية حسب الوسم",
"allProjects": "كل المشاريع",
"projectsHeading": "المشاريع",
"variableCount": "{count, plural, one {# متغير} other {# متغيرات}}",
"updatedAgo": "عُدّل {time}",
"copyDotEnv": "نسخ .env",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100% دون اتصال"
},
"ToolSidebar": {
"show": "إظهار الشريط الجانبي",
"hide": "إخفاء الشريط الجانبي"
},
"DesktopUpdate": {
"title": "جارٍ تحديث MyDevTools",
"downloading": "جارٍ تنزيل التحديث…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Totes",
"total": "Total",
"allProjects": "Tots els projectes",
"projectsHeading": "Projectes",
"export": "Exporta",
"kanban": "Kanban",
"list": "Llista",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Toca el botó + per afegir la primera contrasenya",
"emptyHintDesktop": "Encara no has desat cap contrasenya. Fes clic a «Afegeix contrasenya» a dalt per començar.",
"addPassword": "Afegeix contrasenya",
"title": "Contrasenyes",
"filters": {
"heading": "Salut de la caixa forta",
"all": "Totes les contrasenyes",
"weak": "Febles",
"reused": "Reutilitzades",
"noUrl": "Sense URL",
"tagsHeading": "Etiquetes",
"allTags": "Totes les etiquetes"
},
"searchPlaceholderMobile": "Cerca al coffre...",
"searchPlaceholderDesktop": "Cerca al coffre...",
"importExport": "Importa / exporta",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Crea un conjunt per a cada projecte i entorn (p. ex. claus d'API de producció). Tot es xifra al navegador abans de pujar-lo.",
"searchPlaceholder": "Cerca projecte, entorn, etiquetes, notes…",
"tagFilterPlaceholder": "Filtra per etiqueta",
"allProjects": "Tots els projectes",
"projectsHeading": "Projectes",
"variableCount": "{count, plural, one {# variable} other {# variables}}",
"updatedAgo": "Actualitzat {time}",
"copyDotEnv": "Copia .env",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100% fora de línia"
},
"ToolSidebar": {
"show": "Mostra la barra lateral",
"hide": "Amaga la barra lateral"
},
"DesktopUpdate": {
"title": "S'està actualitzant MyDevTools",
"downloading": "Baixant l'actualització…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Vše",
"total": "Celkem",
"allProjects": "Všechny projekty",
"projectsHeading": "Projekty",
"export": "Export",
"kanban": "Kanban",
"list": "Seznam",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Klepněte na + a přidejte první heslo",
"emptyHintDesktop": "Zatím nemáte uložená žádná hesla. Začněte tlačítkem „Přidat heslo“ výše.",
"addPassword": "Přidat heslo",
"title": "Hesla",
"filters": {
"heading": "Stav trezoru",
"all": "Všechna hesla",
"weak": "Slabá",
"reused": "Opakovaná",
"noUrl": "Bez URL",
"tagsHeading": "Štítky",
"allTags": "Všechny štítky"
},
"searchPlaceholderMobile": "Hledat v trezoru...",
"searchPlaceholderDesktop": "Hledat v trezoru...",
"importExport": "Import / export",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Vytvořte sadu pro každý projekt a prostředí (např. produkční API klíče). Vše se před nahráním šifruje v prohlížeči.",
"searchPlaceholder": "Hledat projekt, prostředí, značky, poznámky…",
"tagFilterPlaceholder": "Filtrovat podle značky",
"allProjects": "Všechny projekty",
"projectsHeading": "Projekty",
"variableCount": "{count, plural, one {# proměnná} few {# proměnné} other {# proměnných}}",
"updatedAgo": "Aktualizováno {time}",
"copyDotEnv": "Kopírovat .env",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100% offline"
},
"ToolSidebar": {
"show": "Zobrazit postranní panel",
"hide": "Skrýt postranní panel"
},
"DesktopUpdate": {
"title": "Aktualizace MyDevTools",
"downloading": "Stahování aktualizace…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Alle",
"total": "Total",
"allProjects": "Alle projekter",
"projectsHeading": "Projekter",
"export": "Eksportere",
"kanban": "Kanban",
"list": "Liste",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Tryk på knappen + for at tilføje din første adgangskode",
"emptyHintDesktop": "Du har ikke gemt nogen adgangskoder endnu. Klik på knappen \"Tilføj adgangskode\" ovenfor for at komme i gang.",
"addPassword": "Tilføj adgangskode",
"title": "Adgangskoder",
"filters": {
"heading": "Boksens tilstand",
"all": "Alle adgangskoder",
"weak": "Svage",
"reused": "Genbrugte",
"noUrl": "Ingen URL",
"tagsHeading": "Tags",
"allTags": "Alle tags"
},
"searchPlaceholderMobile": "Søg i din boks...",
"searchPlaceholderDesktop": "Søg i boksen...",
"importExport": "Import/eksport",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Opret et sæt for hvert projekt og miljø (f.eks. produktions-API-nøgler). Alt krypteres i din browser før upload.",
"searchPlaceholder": "Søg projekt, miljø, tags, noter…",
"tagFilterPlaceholder": "Filtrér efter tag",
"allProjects": "Alle projekter",
"projectsHeading": "Projekter",
"variableCount": "{count, plural, one {# variabel} other {# variabler}}",
"updatedAgo": "Opdateret {time}",
"copyDotEnv": "Kopiér .env",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100 % offline"
},
"ToolSidebar": {
"show": "Vis sidepanel",
"hide": "Skjul sidepanel"
},
"DesktopUpdate": {
"title": "Opdaterer MyDevTools",
"downloading": "Downloader opdatering…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Alle",
"total": "Gesamt",
"allProjects": "Alle Projekte",
"projectsHeading": "Projekte",
"export": "Exportieren",
"kanban": "Kanban",
"list": "Liste",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Tippen Sie auf +, um Ihr erstes Passwort hinzuzufügen",
"emptyHintDesktop": "Noch keine Passwörter. Klicken Sie oben auf „Passwort hinzufügen“.",
"addPassword": "Passwort hinzufügen",
"title": "Passwörter",
"filters": {
"heading": "Tresor-Status",
"all": "Alle Passwörter",
"weak": "Schwach",
"reused": "Mehrfach genutzt",
"noUrl": "Ohne URL",
"tagsHeading": "Tags",
"allTags": "Alle Tags"
},
"searchPlaceholderMobile": "Tresor durchsuchen...",
"searchPlaceholderDesktop": "Tresor durchsuchen...",
"importExport": "Import / Export",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Legen Sie ein Set pro Projekt und Umgebung an (z. B. Produktions-API-Schlüssel). Alles wird vor dem Upload im Browser verschlüsselt.",
"searchPlaceholder": "Projekt, Umgebung, Tags, Notizen durchsuchen…",
"tagFilterPlaceholder": "Nach Tag filtern",
"allProjects": "Alle Projekte",
"projectsHeading": "Projekte",
"variableCount": "{count, plural, one {# Variable} other {# Variablen}}",
"updatedAgo": "Aktualisiert {time}",
"copyDotEnv": ".env kopieren",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100 % offline"
},
"ToolSidebar": {
"show": "Seitenleiste einblenden",
"hide": "Seitenleiste ausblenden"
},
"DesktopUpdate": {
"title": "MyDevTools wird aktualisiert",
"downloading": "Update wird heruntergeladen…",
Expand Down
17 changes: 17 additions & 0 deletions apps/desktop-ui/messages/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
"all": "Ολοι",
"total": "Σύνολο",
"allProjects": "Όλα τα Έργα",
"projectsHeading": "Έργα",
"export": "Εξαγωγή",
"kanban": "Kanban",
"list": "Λίστα",
Expand Down Expand Up @@ -966,6 +967,16 @@
"emptyHintMobile": "Πατήστε το κουμπί + για να προσθέσετε τον πρώτο σας κωδικό πρόσβασης",
"emptyHintDesktop": "Δεν έχετε αποθηκεύσει ακόμα κανέναν κωδικό πρόσβασης. Κάντε κλικ στο κουμπί \"Προσθήκη κωδικού πρόσβασης\" παραπάνω για να ξεκινήσετε.",
"addPassword": "Προσθήκη κωδικού πρόσβασης",
"title": "Κωδικοί",
"filters": {
"heading": "Υγεία θησαυροφυλακίου",
"all": "Όλοι οι κωδικοί",
"weak": "Αδύναμοι",
"reused": "Επαναχρησιμοποιημένοι",
"noUrl": "Χωρίς URL",
"tagsHeading": "Ετικέτες",
"allTags": "Όλες οι ετικέτες"
},
"searchPlaceholderMobile": "Αναζητήστε το θησαυροφυλάκιό σας...",
"searchPlaceholderDesktop": "Θησαυροφυλάκιο αναζήτησης...",
"importExport": "Εισαγωγή / εξαγωγή",
Expand Down Expand Up @@ -1161,6 +1172,8 @@
"emptyHint": "Δημιουργήστε ένα σύνολο για κάθε έργο και περιβάλλον (π.χ. κλειδιά API παραγωγής). Όλα κρυπτογραφούνται στο πρόγραμμα περιήγησης πριν την αποστολή.",
"searchPlaceholder": "Αναζήτηση έργου, περιβάλλοντος, ετικετών, σημειώσεων…",
"tagFilterPlaceholder": "Φιλτράρισμα κατά ετικέτα",
"allProjects": "Όλα τα έργα",
"projectsHeading": "Έργα",
"variableCount": "{count, plural, one {# μεταβλητή} other {# μεταβλητές}}",
"updatedAgo": "Ενημερώθηκε {time}",
"copyDotEnv": "Αντιγραφή .env",
Expand Down Expand Up @@ -5095,6 +5108,10 @@
"ToolPageHeader": {
"offline": "100% εκτός σύνδεσης"
},
"ToolSidebar": {
"show": "Εμφάνιση πλαϊνής μπάρας",
"hide": "Απόκρυψη πλαϊνής μπάρας"
},
"DesktopUpdate": {
"title": "Ενημέρωση MyDevTools",
"downloading": "Λήψη ενημέρωσης…",
Expand Down
Loading
Loading