Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f3b4fa553b | |||
| e164d51574 | |||
| e66a332270 | |||
| 48d25b668d | |||
| 6eb3dfd8f9 |
@@ -268,8 +268,8 @@ router.get("/compare", requireFeature("compare"), async (req, res): Promise<void
|
|||||||
res.status(400).json({ error: "Provide at least one ids value, e.g. ?ids=1,2,3" });
|
res.status(400).json({ error: "Provide at least one ids value, e.g. ?ids=1,2,3" });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ids.length > 8) {
|
if (ids.length > 9) {
|
||||||
res.status(400).json({ error: "Maximum of 8 tools can be compared" });
|
res.status(400).json({ error: "Maximum of 9 tools can be compared" });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const tools = await db.select().from(toolsTable).where(and(isNull(toolsTable.deletedAt), inArray(toolsTable.id, ids)));
|
const tools = await db.select().from(toolsTable).where(and(isNull(toolsTable.deletedAt), inArray(toolsTable.id, ids)));
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { Textarea } from "@/components/ui/textarea";
|
|||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
||||||
import { Label } from "@/components/ui/label";
|
import { Label } from "@/components/ui/label";
|
||||||
|
import { GuideHelp } from "@/components/guide-help";
|
||||||
import { Upload, FileUp, CheckCircle2, AlertCircle } from "lucide-react";
|
import { Upload, FileUp, CheckCircle2, AlertCircle } from "lucide-react";
|
||||||
|
|
||||||
type Format = "auto" | "csv" | "json" | "yaml";
|
type Format = "auto" | "csv" | "json" | "yaml";
|
||||||
@@ -62,14 +63,24 @@ export function ToolImportDialog({
|
|||||||
|
|
||||||
const canSubmit = data.trim().length > 0 && !importTools.isPending;
|
const canSubmit = data.trim().length > 0 && !importTools.isPending;
|
||||||
|
|
||||||
|
const placeholder =
|
||||||
|
format === "csv"
|
||||||
|
? t("adminTools.importTextareaPlaceholderCsv")
|
||||||
|
: format === "json"
|
||||||
|
? t("adminTools.importTextareaPlaceholderJson")
|
||||||
|
: format === "yaml"
|
||||||
|
? t("adminTools.importTextareaPlaceholderYaml")
|
||||||
|
: t("adminTools.importTextareaPlaceholderAuto");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} onOpenChange={handleClose}>
|
<Dialog open={open} onOpenChange={handleClose}>
|
||||||
<DialogContent className="sm:max-w-2xl">
|
<DialogContent className="sm:max-w-2xl">
|
||||||
<DialogHeader>
|
<DialogHeader className="flex flex-row items-center justify-between gap-2">
|
||||||
<DialogTitle className="flex items-center gap-2">
|
<DialogTitle className="flex items-center gap-2">
|
||||||
<Upload className="w-4 h-4" />
|
<Upload className="w-4 h-4" />
|
||||||
{t("adminTools.importTitle")}
|
{t("adminTools.importTitle")}
|
||||||
</DialogTitle>
|
</DialogTitle>
|
||||||
|
<GuideHelp guide="administration" label={t("adminTools.importTitle")} />
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
|
|
||||||
<div className="space-y-4 py-2">
|
<div className="space-y-4 py-2">
|
||||||
@@ -131,7 +142,7 @@ export function ToolImportDialog({
|
|||||||
<Textarea
|
<Textarea
|
||||||
value={data}
|
value={data}
|
||||||
onChange={(e) => setData(e.target.value)}
|
onChange={(e) => setData(e.target.value)}
|
||||||
placeholder={t("adminTools.importTextareaPlaceholder")}
|
placeholder={placeholder}
|
||||||
className="min-h-[220px] font-mono text-sm"
|
className="min-h-[220px] font-mono text-sm"
|
||||||
data-testid="input-tool-import-data"
|
data-testid="input-tool-import-data"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
},
|
},
|
||||||
"home": {
|
"home": {
|
||||||
"welcome": "Willkommen bei toolr",
|
"welcome": "Willkommen bei toolr",
|
||||||
"tagline": "Die Community-Plattform, auf der Ingenieure die Tools, die sie täglich nutzen, ehrlich bewerten.",
|
"tagline": "Bewerte dein Tool.",
|
||||||
"totalTools": "Tools gesamt",
|
"totalTools": "Tools gesamt",
|
||||||
"totalRatings": "Bewertungen gesamt",
|
"totalRatings": "Bewertungen gesamt",
|
||||||
"avgRating": "Ø Bewertung",
|
"avgRating": "Ø Bewertung",
|
||||||
@@ -101,6 +101,7 @@
|
|||||||
"compareCount": "Vergleichen ({{count}})",
|
"compareCount": "Vergleichen ({{count}})",
|
||||||
"addToCompare": "Zum Vergleich hinzufügen",
|
"addToCompare": "Zum Vergleich hinzufügen",
|
||||||
"removeFromCompare": "Aus dem Vergleich entfernen",
|
"removeFromCompare": "Aus dem Vergleich entfernen",
|
||||||
|
"compareLimitReached": "Maximal 9 Tools können verglichen werden.",
|
||||||
"comparePremiumTitle": "Vergleichen ist ein Premium-Feature",
|
"comparePremiumTitle": "Vergleichen ist ein Premium-Feature",
|
||||||
"comparePremiumSub": "Das Vergleichen von Tools nebeneinander ist für Premium- und Enterprise-Nutzer verfügbar. Erweitere deinen Plan, um es freizuschalten.",
|
"comparePremiumSub": "Das Vergleichen von Tools nebeneinander ist für Premium- und Enterprise-Nutzer verfügbar. Erweitere deinen Plan, um es freizuschalten.",
|
||||||
"notNow": "Später",
|
"notNow": "Später",
|
||||||
@@ -189,7 +190,7 @@
|
|||||||
"nameOptional": "Name (optional)",
|
"nameOptional": "Name (optional)",
|
||||||
"nameLabel": "Name",
|
"nameLabel": "Name",
|
||||||
"anonymousPlaceholder": "Anonym",
|
"anonymousPlaceholder": "Anonym",
|
||||||
"anonymousEngineer": "Anonymer Ingenieur",
|
"anonymousEngineer": "Anonymer Benutzer",
|
||||||
"beFirstToReview": "Sei der Erste, der seine Gedanken zu diesem Tool teilt.",
|
"beFirstToReview": "Sei der Erste, der seine Gedanken zu diesem Tool teilt.",
|
||||||
"shareExperience": "Teile deine Erfahrung mit {{name}}",
|
"shareExperience": "Teile deine Erfahrung mit {{name}}",
|
||||||
"score": "Punktestand",
|
"score": "Punktestand",
|
||||||
@@ -418,6 +419,10 @@
|
|||||||
"importYamlSub": "YAML-Liste von Objekten (oder ein einzelnes Objekt) mit den Feldern name, description, category, websiteUrl, iconUrl, features, tags.",
|
"importYamlSub": "YAML-Liste von Objekten (oder ein einzelnes Objekt) mit den Feldern name, description, category, websiteUrl, iconUrl, features, tags.",
|
||||||
"importFile": "Datei laden",
|
"importFile": "Datei laden",
|
||||||
"importTextareaPlaceholder": "name;description;category;features;tags\nMein Tool;Eine tolle Beschreibung;Monitoring;Deployment|Open Source;devops",
|
"importTextareaPlaceholder": "name;description;category;features;tags\nMein Tool;Eine tolle Beschreibung;Monitoring;Deployment|Open Source;devops",
|
||||||
|
"importTextareaPlaceholderCsv": "name;description;category;features;tags\nMein Tool;Eine tolle Beschreibung;Monitoring;Deployment|Open Source;devops",
|
||||||
|
"importTextareaPlaceholderJson": "[\n {\n \"name\": \"Mein Tool\",\n \"description\": \"Eine tolle Beschreibung\",\n \"category\": \"Monitoring\",\n \"features\": [\"Deployment\", \"Open Source\"],\n \"tags\": [\"devops\"]\n }\n]",
|
||||||
|
"importTextareaPlaceholderYaml": "- name: Mein Tool\n description: Eine tolle Beschreibung\n category: Monitoring\n features:\n - Deployment\n - Open Source\n tags:\n - devops",
|
||||||
|
"importTextareaPlaceholderAuto": "name;description;category\nMein Tool;Eine tolle Beschreibung;Monitoring",
|
||||||
"importing": "Wird importiert…",
|
"importing": "Wird importiert…",
|
||||||
"importDone": "{{count}} von {{total}} Tools erfolgreich importiert.",
|
"importDone": "{{count}} von {{total}} Tools erfolgreich importiert.",
|
||||||
"importErrors": "{{count}} Zeilen mit Fehlern:",
|
"importErrors": "{{count}} Zeilen mit Fehlern:",
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
},
|
},
|
||||||
"home": {
|
"home": {
|
||||||
"welcome": "Welcome to toolr",
|
"welcome": "Welcome to toolr",
|
||||||
"tagline": "The community hub where engineers honestly rate the tools they use daily.",
|
"tagline": "Rate your Tool.",
|
||||||
"totalTools": "Total Tools",
|
"totalTools": "Total Tools",
|
||||||
"totalRatings": "Total Ratings",
|
"totalRatings": "Total Ratings",
|
||||||
"avgRating": "Avg Rating",
|
"avgRating": "Avg Rating",
|
||||||
@@ -101,6 +101,7 @@
|
|||||||
"compareCount": "Compare ({{count}})",
|
"compareCount": "Compare ({{count}})",
|
||||||
"addToCompare": "Add to compare",
|
"addToCompare": "Add to compare",
|
||||||
"removeFromCompare": "Remove from compare",
|
"removeFromCompare": "Remove from compare",
|
||||||
|
"compareLimitReached": "A maximum of 9 tools can be compared.",
|
||||||
"comparePremiumTitle": "Compare is a Premium feature",
|
"comparePremiumTitle": "Compare is a Premium feature",
|
||||||
"comparePremiumSub": "Comparing tools side-by-side is available to Premium and Enterprise users. Upgrade your plan to unlock it.",
|
"comparePremiumSub": "Comparing tools side-by-side is available to Premium and Enterprise users. Upgrade your plan to unlock it.",
|
||||||
"notNow": "Not now",
|
"notNow": "Not now",
|
||||||
@@ -189,7 +190,7 @@
|
|||||||
"nameOptional": "Name (Optional)",
|
"nameOptional": "Name (Optional)",
|
||||||
"nameLabel": "Name",
|
"nameLabel": "Name",
|
||||||
"anonymousPlaceholder": "Anonymous",
|
"anonymousPlaceholder": "Anonymous",
|
||||||
"anonymousEngineer": "Anonymous Engineer",
|
"anonymousEngineer": "Anonymous User",
|
||||||
"beFirstToReview": "Be the first to share your thoughts on this tool.",
|
"beFirstToReview": "Be the first to share your thoughts on this tool.",
|
||||||
"shareExperience": "Share your experience with {{name}}",
|
"shareExperience": "Share your experience with {{name}}",
|
||||||
"score": "Score",
|
"score": "Score",
|
||||||
@@ -418,6 +419,10 @@
|
|||||||
"importYamlSub": "A YAML list of objects (or a single object) with the fields name, description, category, websiteUrl, iconUrl, features, tags.",
|
"importYamlSub": "A YAML list of objects (or a single object) with the fields name, description, category, websiteUrl, iconUrl, features, tags.",
|
||||||
"importFile": "Upload file",
|
"importFile": "Upload file",
|
||||||
"importTextareaPlaceholder": "name;description;category;features;tags\nMy Tool;A great description;Monitoring;Deployment|Open Source;devops",
|
"importTextareaPlaceholder": "name;description;category;features;tags\nMy Tool;A great description;Monitoring;Deployment|Open Source;devops",
|
||||||
|
"importTextareaPlaceholderCsv": "name;description;category;features;tags\nMy Tool;A great description;Monitoring;Deployment|Open Source;devops",
|
||||||
|
"importTextareaPlaceholderJson": "[\n {\n \"name\": \"My Tool\",\n \"description\": \"A great description\",\n \"category\": \"Monitoring\",\n \"features\": [\"Deployment\", \"Open Source\"],\n \"tags\": [\"devops\"]\n }\n]",
|
||||||
|
"importTextareaPlaceholderYaml": "- name: My Tool\n description: A great description\n category: Monitoring\n features:\n - Deployment\n - Open Source\n tags:\n - devops",
|
||||||
|
"importTextareaPlaceholderAuto": "name;description;category\nMy Tool;A great description;Monitoring",
|
||||||
"importing": "Importing…",
|
"importing": "Importing…",
|
||||||
"importDone": "{{count}} of {{total}} tools imported successfully.",
|
"importDone": "{{count}} of {{total}} tools imported successfully.",
|
||||||
"importErrors": "{{count}} rows with errors:",
|
"importErrors": "{{count}} rows with errors:",
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|||||||
import { Users, ScrollText, ShieldAlert, Plus, Pencil, Trash2, Clock, AlertTriangle, Wrench, Server } from "lucide-react";
|
import { Users, ScrollText, ShieldAlert, Plus, Pencil, Trash2, Clock, AlertTriangle, Wrench, Server } from "lucide-react";
|
||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import { AdminToolsTab } from "@/components/admin-tools-tab";
|
import { AdminToolsTab } from "@/components/admin-tools-tab";
|
||||||
|
import { GuideHelp } from "@/components/guide-help";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
export default function Admin() {
|
export default function Admin() {
|
||||||
@@ -359,8 +360,9 @@ export default function Admin() {
|
|||||||
|
|
||||||
<Dialog open={createOpen} onOpenChange={setCreateOpen}>
|
<Dialog open={createOpen} onOpenChange={setCreateOpen}>
|
||||||
<DialogContent className="sm:max-w-md">
|
<DialogContent className="sm:max-w-md">
|
||||||
<DialogHeader>
|
<DialogHeader className="flex flex-row items-center justify-between gap-2">
|
||||||
<DialogTitle>{t("admin.createNewUser")}</DialogTitle>
|
<DialogTitle>{t("admin.createNewUser")}</DialogTitle>
|
||||||
|
<GuideHelp guide="administration" label={t("admin.createNewUser")} />
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<div className="space-y-4 py-2">
|
<div className="space-y-4 py-2">
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
@@ -412,8 +414,9 @@ export default function Admin() {
|
|||||||
|
|
||||||
<Dialog open={!!editUser} onOpenChange={(open) => { if (!open) { setEditUser(null); setEditPassword(""); } }}>
|
<Dialog open={!!editUser} onOpenChange={(open) => { if (!open) { setEditUser(null); setEditPassword(""); } }}>
|
||||||
<DialogContent className="sm:max-w-sm">
|
<DialogContent className="sm:max-w-sm">
|
||||||
<DialogHeader>
|
<DialogHeader className="flex flex-row items-center justify-between gap-2">
|
||||||
<DialogTitle>{t("admin.editUser", { username: editUser?.username })}</DialogTitle>
|
<DialogTitle>{t("admin.editUser", { username: editUser?.username })}</DialogTitle>
|
||||||
|
<GuideHelp guide="administration" label={t("admin.editUser", { username: editUser?.username })} />
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<div className="space-y-4 py-2">
|
<div className="space-y-4 py-2">
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
|
|||||||
@@ -740,7 +740,7 @@ function ReleasesView({ versions }: { versions: ReleaseDoc[] }) {
|
|||||||
|
|
||||||
function ReleaseNoteView({ version, doc }: { version: string; doc: ReleaseDoc | null }) {
|
function ReleaseNoteView({ version, doc }: { version: string; doc: ReleaseDoc | null }) {
|
||||||
const locale = useDocsLocale();
|
const locale = useDocsLocale();
|
||||||
const file = doc ? `releases/${localizedFile(doc.file, doc.fileEn, locale)}` : `releases/${version}.md`;
|
const file = doc ? `releases/${localizedFile(doc.file, doc.fileEn, locale)}` : `releases/${version}.de.md`;
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col lg:flex-row gap-8">
|
<div className="flex flex-col lg:flex-row gap-8">
|
||||||
<div className="flex-1 min-w-0 max-w-3xl">
|
<div className="flex-1 min-w-0 max-w-3xl">
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent,
|
|||||||
import { useBrowsePreferences, isViewMode, isDensity } from "@/hooks/use-browse-preferences";
|
import { useBrowsePreferences, isViewMode, isDensity } from "@/hooks/use-browse-preferences";
|
||||||
import { useAuth } from "@/hooks/use-auth";
|
import { useAuth } from "@/hooks/use-auth";
|
||||||
import { useWatchlist } from "@/hooks/use-watchlist";
|
import { useWatchlist } from "@/hooks/use-watchlist";
|
||||||
|
import { useToast } from "@/hooks/use-toast";
|
||||||
import { CompareBar } from "@/components/compare-bar";
|
import { CompareBar } from "@/components/compare-bar";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
@@ -91,12 +92,20 @@ export default function ToolsBrowse() {
|
|||||||
const { serverView, serverDensity, localView, localDensity, persist } = useBrowsePreferences();
|
const { serverView, serverDensity, localView, localDensity, persist } = useBrowsePreferences();
|
||||||
const { hasFeature } = useAuth();
|
const { hasFeature } = useAuth();
|
||||||
const { isWatched, toggle: toggleWatchlist, canWatchlist } = useWatchlist();
|
const { isWatched, toggle: toggleWatchlist, canWatchlist } = useWatchlist();
|
||||||
|
const { toast } = useToast();
|
||||||
|
|
||||||
const [compareIds, setCompareIds] = useState<number[]>([]);
|
const [compareIds, setCompareIds] = useState<number[]>([]);
|
||||||
const [compareUpsellOpen, setCompareUpsellOpen] = useState(false);
|
const [compareUpsellOpen, setCompareUpsellOpen] = useState(false);
|
||||||
|
|
||||||
function toggleCompare(id: number) {
|
function toggleCompare(id: number) {
|
||||||
setCompareIds((prev) => (prev.includes(id) ? prev.filter((x) => x !== id) : [...prev, id]));
|
setCompareIds((prev) => {
|
||||||
|
if (prev.includes(id)) return prev.filter((x) => x !== id);
|
||||||
|
if (prev.length >= 9) {
|
||||||
|
toast({ title: t("browse.compareLimitReached"), variant: "destructive" });
|
||||||
|
return prev;
|
||||||
|
}
|
||||||
|
return [...prev, id];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const [search, setSearch] = useState(initialSearch);
|
const [search, setSearch] = useState(initialSearch);
|
||||||
|
|||||||
@@ -0,0 +1,295 @@
|
|||||||
|
# Beispiel-YAML zum Import in den Admin-Bereich (Tab „Tools" -> Importieren).
|
||||||
|
# Erwartetes Format pro Eintrag:
|
||||||
|
# name (Pflicht)
|
||||||
|
# description, category, websiteUrl, iconUrl (optional)
|
||||||
|
# features, tags (Listen oder | -getrennte Strings)
|
||||||
|
# Das Format wird automatisch erkannt; bei CSV den Trenner wählen.
|
||||||
|
# Fehlerhafte Zeilen werden übersprungen und mit Zeilennummer aufgelistet.
|
||||||
|
|
||||||
|
- name: Slack
|
||||||
|
description: Team-Kommunikation mit Channels, Direktnachrichten und App-Integrationen
|
||||||
|
category: Kommunikation
|
||||||
|
websiteUrl: https://slack.com
|
||||||
|
features:
|
||||||
|
- Channels
|
||||||
|
- Videoanrufe
|
||||||
|
- App-Integrationen
|
||||||
|
tags:
|
||||||
|
- communication
|
||||||
|
- teamwork
|
||||||
|
|
||||||
|
- name: Microsoft Teams
|
||||||
|
description: Chat, Besprechungen, Dateien und Zusammenarbeit in einer Plattform
|
||||||
|
category: Kommunikation
|
||||||
|
websiteUrl: https://www.microsoft.com/de-de/microsoft-365/microsoft-teams
|
||||||
|
features:
|
||||||
|
- Videokonferenzen
|
||||||
|
- Teamkanäle
|
||||||
|
- Office-Integration
|
||||||
|
tags:
|
||||||
|
- communication
|
||||||
|
- meetings
|
||||||
|
|
||||||
|
- name: Zoom
|
||||||
|
description: Videokonferenzen und Webinare für Teams und externe Partner
|
||||||
|
category: Kommunikation
|
||||||
|
websiteUrl: https://zoom.us
|
||||||
|
features:
|
||||||
|
- Videokonferenzen
|
||||||
|
- Webinare
|
||||||
|
- Bildschirmfreigabe
|
||||||
|
tags:
|
||||||
|
- video
|
||||||
|
- meetings
|
||||||
|
|
||||||
|
- name: Jira
|
||||||
|
description: Agile Projekt- und Issue-Verfolgung für Entwicklung und Betrieb
|
||||||
|
category: Projektmanagement
|
||||||
|
websiteUrl: https://www.atlassian.com/software/jira
|
||||||
|
features:
|
||||||
|
- Backlog
|
||||||
|
- Sprints
|
||||||
|
- Kanban-Boards
|
||||||
|
tags:
|
||||||
|
- agile
|
||||||
|
- project-management
|
||||||
|
|
||||||
|
- name: Confluence
|
||||||
|
description: Kollaborative Wissensdatenbank und Dokumentation für Teams
|
||||||
|
category: Projektmanagement
|
||||||
|
websiteUrl: https://www.atlassian.com/software/confluence
|
||||||
|
features:
|
||||||
|
- Wikis
|
||||||
|
- Seitenbausteine
|
||||||
|
- Berechtigungen
|
||||||
|
tags:
|
||||||
|
- documentation
|
||||||
|
- knowledge-base
|
||||||
|
|
||||||
|
- name: GitLab
|
||||||
|
description: DevOps-Plattform mit Git-Repositorys, CI/CD und Code-Review
|
||||||
|
category: Entwicklung
|
||||||
|
websiteUrl: https://about.gitlab.com
|
||||||
|
features:
|
||||||
|
- Git-Repositorys
|
||||||
|
- CI/CD
|
||||||
|
- Merge Requests
|
||||||
|
tags:
|
||||||
|
- devops
|
||||||
|
- git
|
||||||
|
|
||||||
|
- name: GitHub
|
||||||
|
description: Versionsverwaltung, Code-Review und Collaboration auf Git-Basis
|
||||||
|
category: Entwicklung
|
||||||
|
websiteUrl: https://github.com
|
||||||
|
features:
|
||||||
|
- Repositories
|
||||||
|
- Pull Requests
|
||||||
|
- Actions
|
||||||
|
tags:
|
||||||
|
- git
|
||||||
|
- collaboration
|
||||||
|
|
||||||
|
- name: Jenkins
|
||||||
|
description: Automatisierte Build- und Deploy-Pipelines für Softwareprojekte
|
||||||
|
category: CI/CD
|
||||||
|
websiteUrl: https://www.jenkins.io
|
||||||
|
features:
|
||||||
|
- Pipelines
|
||||||
|
- Plugins
|
||||||
|
- Job-Automatisierung
|
||||||
|
tags:
|
||||||
|
- ci
|
||||||
|
- cd
|
||||||
|
|
||||||
|
- name: Docker
|
||||||
|
description: Container-Plattform zum Paketieren und Ausführen von Anwendungen
|
||||||
|
category: Entwicklung
|
||||||
|
websiteUrl: https://www.docker.com
|
||||||
|
features:
|
||||||
|
- Container
|
||||||
|
- Images
|
||||||
|
- Compose
|
||||||
|
tags:
|
||||||
|
- containers
|
||||||
|
- virtualization
|
||||||
|
|
||||||
|
- name: Grafana
|
||||||
|
description: Observability- und Dashboard-Plattform für Metriken, Logs und Alerts
|
||||||
|
category: Monitoring
|
||||||
|
websiteUrl: https://grafana.com
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- Alerts
|
||||||
|
- Datenquellen
|
||||||
|
tags:
|
||||||
|
- observability
|
||||||
|
- monitoring
|
||||||
|
|
||||||
|
- name: Prometheus
|
||||||
|
description: Open-Source-Systeme zur Zeitreihen-Metrikerfassung und -Auswertung
|
||||||
|
category: Monitoring
|
||||||
|
websiteUrl: https://prometheus.io
|
||||||
|
features:
|
||||||
|
- Metriken
|
||||||
|
- Alerting
|
||||||
|
- Time-Series-Datenbank
|
||||||
|
tags:
|
||||||
|
- monitoring
|
||||||
|
- metrics
|
||||||
|
|
||||||
|
- name: Datadog
|
||||||
|
description: Cloud-basierte Observability für Infrastruktur, APM und Logs
|
||||||
|
category: Monitoring
|
||||||
|
websiteUrl: https://www.datadoghq.com
|
||||||
|
features:
|
||||||
|
- Infrastruktur-Monitoring
|
||||||
|
- APM
|
||||||
|
- Log-Management
|
||||||
|
tags:
|
||||||
|
- observability
|
||||||
|
- saas
|
||||||
|
|
||||||
|
- name: PagerDuty
|
||||||
|
description: Incident-Management und On-Call-Benachrichtigungen für Teams
|
||||||
|
category: Betrieb
|
||||||
|
websiteUrl: https://www.pagerduty.com
|
||||||
|
features:
|
||||||
|
- Alerting
|
||||||
|
- On-Call-Pläne
|
||||||
|
- Incident-Response
|
||||||
|
tags:
|
||||||
|
- incident-management
|
||||||
|
- on-call
|
||||||
|
|
||||||
|
- name: Sentry
|
||||||
|
description: Fehlerüberwachung und Performance-Monitoring für Anwendungen
|
||||||
|
category: Monitoring
|
||||||
|
websiteUrl: https://sentry.io
|
||||||
|
features:
|
||||||
|
- Error-Tracking
|
||||||
|
- Releases
|
||||||
|
- Performance
|
||||||
|
tags:
|
||||||
|
- error-monitoring
|
||||||
|
- debugging
|
||||||
|
|
||||||
|
- name: Terraform
|
||||||
|
description: Infrastructure-as-Code zur deklarativen Bereitstellung von Ressourcen
|
||||||
|
category: Infrastruktur
|
||||||
|
websiteUrl: https://www.terraform.io
|
||||||
|
features:
|
||||||
|
- Modules
|
||||||
|
- State-Management
|
||||||
|
- Provider
|
||||||
|
tags:
|
||||||
|
- iac
|
||||||
|
- infrastructure
|
||||||
|
|
||||||
|
- name: Ansible
|
||||||
|
description: Agentenlose Automatisierung für Konfiguration, Deploy und Orchestrierung
|
||||||
|
category: Infrastruktur
|
||||||
|
websiteUrl: https://www.ansible.com
|
||||||
|
features:
|
||||||
|
- Playbooks
|
||||||
|
- Inventories
|
||||||
|
- Modules
|
||||||
|
tags:
|
||||||
|
- automation
|
||||||
|
- configuration
|
||||||
|
|
||||||
|
- name: Elasticsearch
|
||||||
|
description: Verteilter Such- und Analytics-Server für Logs, Metriken und Daten
|
||||||
|
category: Datenbank
|
||||||
|
websiteUrl: https://www.elastic.co
|
||||||
|
features:
|
||||||
|
- Volltextsuche
|
||||||
|
- Aggregationen
|
||||||
|
- Skalierung
|
||||||
|
tags:
|
||||||
|
- search
|
||||||
|
- analytics
|
||||||
|
|
||||||
|
- name: Kubernetes
|
||||||
|
description: Container-Orchestrierung für Deployment, Skalierung und Betrieb
|
||||||
|
category: Infrastruktur
|
||||||
|
websiteUrl: https://kubernetes.io
|
||||||
|
features:
|
||||||
|
- Pods
|
||||||
|
- Services
|
||||||
|
- Autoskalierung
|
||||||
|
tags:
|
||||||
|
- containers
|
||||||
|
- orchestration
|
||||||
|
|
||||||
|
- name: Sonarqube
|
||||||
|
description: Statische Code-Analyse und Qualitätsmessung für Softwareprojekte
|
||||||
|
category: Entwicklung
|
||||||
|
websiteUrl: https://www.sonarsource.com/products/sonarqube
|
||||||
|
features:
|
||||||
|
- Code-Qualität
|
||||||
|
- Security-Scans
|
||||||
|
- Quality Gates
|
||||||
|
tags:
|
||||||
|
- code-quality
|
||||||
|
- static-analysis
|
||||||
|
|
||||||
|
- name: Power BI
|
||||||
|
description: Business-Intelligence-Tool für Dashboards, Berichte und Datenanalyse
|
||||||
|
category: Analytics
|
||||||
|
websiteUrl: https://powerbi.microsoft.com
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- Berichte
|
||||||
|
- Datenmodelle
|
||||||
|
tags:
|
||||||
|
- bi
|
||||||
|
- analytics
|
||||||
|
|
||||||
|
- name: Google Workspace
|
||||||
|
description: Produktivitäts-Suite mit E-Mail, Docs, Drive und Meet
|
||||||
|
category: Produktivität
|
||||||
|
websiteUrl: https://workspace.google.com
|
||||||
|
features:
|
||||||
|
- Gmail
|
||||||
|
- Google Docs
|
||||||
|
- Google Drive
|
||||||
|
tags:
|
||||||
|
- suite
|
||||||
|
- productivity
|
||||||
|
|
||||||
|
- name: Microsoft 365
|
||||||
|
description: Office-Anwendungen, E-Mail und Cloud-Dienste für Unternehmen
|
||||||
|
category: Produktivität
|
||||||
|
websiteUrl: https://www.microsoft.com/microsoft-365
|
||||||
|
features:
|
||||||
|
- Word
|
||||||
|
- Excel
|
||||||
|
- Outlook
|
||||||
|
tags:
|
||||||
|
- suite
|
||||||
|
- productivity
|
||||||
|
|
||||||
|
- name: Slack Enterprise Grid
|
||||||
|
description: Slack-Verwaltung für große Organisationen mit erweiterten Sicherheitsfunktionen
|
||||||
|
category: Kommunikation
|
||||||
|
websiteUrl: https://slack.com
|
||||||
|
features:
|
||||||
|
- Enterprise-Admin
|
||||||
|
- Compliance
|
||||||
|
- Multi-Workspace
|
||||||
|
tags:
|
||||||
|
- communication
|
||||||
|
- enterprise
|
||||||
|
|
||||||
|
- name: Atlassian Rovo
|
||||||
|
description: KI-Assistent für Suche und Zusammenarbeit über Atlassian-Produkte
|
||||||
|
category: Projektmanagement
|
||||||
|
websiteUrl: https://www.atlassian.com/software/rovo
|
||||||
|
features:
|
||||||
|
- KI-Suche
|
||||||
|
- Agenten
|
||||||
|
- Integrationen
|
||||||
|
tags:
|
||||||
|
- ai
|
||||||
|
- search
|
||||||
@@ -73,6 +73,9 @@ Zentraler Zugriff auf den Tool-Katalog.
|
|||||||
category: Monitoring
|
category: Monitoring
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Eine umfangreichere, fertig importierbare Beispieldatei liegt unter
|
||||||
|
`docs/examples/import-tools.yaml` (24 gängige Enterprise-Tools).
|
||||||
|
|
||||||
Beim Import werden einzelne fehlerhafte Zeilen übersprungen und mit Zeilennummer
|
Beim Import werden einzelne fehlerhafte Zeilen übersprungen und mit Zeilennummer
|
||||||
aufgelistet; korrekte Zeilen werden trotzdem angelegt. Jeder Import erzeugt
|
aufgelistet; korrekte Zeilen werden trotzdem angelegt. Jeder Import erzeugt
|
||||||
Audit-Log-Einträge.
|
Audit-Log-Einträge.
|
||||||
@@ -73,6 +73,9 @@ Central access to the tool catalog.
|
|||||||
category: Monitoring
|
category: Monitoring
|
||||||
```
|
```
|
||||||
|
|
||||||
|
A larger, ready-to-import example file is located at
|
||||||
|
`docs/examples/import-tools.yaml` (24 common enterprise tools).
|
||||||
|
|
||||||
During import, individual faulty rows are skipped and listed with their row
|
During import, individual faulty rows are skipped and listed with their row
|
||||||
number; correct rows are still created. Every import produces audit-log
|
number; correct rows are still created. Every import produces audit-log
|
||||||
entries.
|
entries.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ order: 1
|
|||||||
# Willkommen bei toolr
|
# Willkommen bei toolr
|
||||||
|
|
||||||
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
||||||
Entwicklungstools**. Nutzer:innen pflegen einen gemeinsamen Katalog von Tools,
|
Entwicklungstools**. Nutzer pflegen einen gemeinsamen Katalog von Tools,
|
||||||
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
||||||
die richtige Wahl zu treffen.
|
die richtige Wahl zu treffen.
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ die richtige Wahl zu treffen.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
||||||
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
||||||
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller:in oder Admin) | Angemeldet |
|
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller oder Admin) | Angemeldet |
|
||||||
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
||||||
| **Merkliste** | Tools als Favoriten speichern | Premium |
|
| **Merkliste** | Tools als Favoriten speichern | Premium |
|
||||||
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
||||||
@@ -47,7 +47,7 @@ Mit **Filter zurücksetzen** bzw. **Alle entfernen** räumst du sie wieder auf.
|
|||||||
- **Ansicht wechseln:** Raster / Tabelle / Zeilen.
|
- **Ansicht wechseln:** Raster / Tabelle / Zeilen.
|
||||||
- **Dichte:** gemütlich / kompakt (Schieberegler).
|
- **Dichte:** gemütlich / kompakt (Schieberegler).
|
||||||
|
|
||||||
Deine Auswahl wird gespeichert — lokal im Browser und für angemeldete Nutzer:innen
|
Deine Auswahl wird gespeichert — lokal im Browser und für angemeldete Nutzer
|
||||||
zusätzlich serverseitig in den Präferenzen. Ansicht, Dichte, Suche, Filter und
|
zusätzlich serverseitig in den Präferenzen. Ansicht, Dichte, Suche, Filter und
|
||||||
Sortierung werden dabei in die URL übernommen, sodass du Ergebnisse teilen
|
Sortierung werden dabei in die URL übernommen, sodass du Ergebnisse teilen
|
||||||
kannst.
|
kannst.
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# v0.6.0 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-03 · **Tag:** [`v0.6.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.6.0)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- Complete modernization of all dependencies to the current major versions
|
|
||||||
(TypeScript 7, Vite 8, React 19.2, openid-client 6, zod 4, recharts 3, react-day-picker 10).
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- CI build fixed via `allowBuilds` configuration for pnpm 11
|
|
||||||
(build scripts for esbuild & Co. are no longer blocked).
|
|
||||||
- Image tagging simplified: only `latest` and `v*` tags, no more `nightly-*`/`sha-*` tags.
|
|
||||||
- All dependencies pinned exactly; automatic updates via Renovate prepared
|
|
||||||
(`renovate.json`, `docs/dependency-policy.md`).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No breaking changes to the API. openid-client internally migrated to v6
|
|
||||||
(auth flow behaves identically).
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged. Node image pinned to `node:24.18.1-alpine`.
|
|
||||||
- **Migration:** no database migration required.
|
|
||||||
- **Breaking changes:** none.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- `typedoc` (indirect orval dependency) shows a peer-dependency warning
|
|
||||||
(expects TypeScript 5.x/6.x, 7.x is installed) — harmless for build and runtime.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`2f66fff`](https://git.kubebase.de/admin/tool-evaluator/commit/2f66fff)
|
|
||||||
- Tag: [`v0.6.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.6.0)
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# v0.6.0 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-03 · **Tag:** [`v0.6.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.6.0)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- Vollständige Modernisierung aller Abhängigkeiten auf die aktuellen Hauptversionen
|
|
||||||
(TypeScript 7, Vite 8, React 19.2, openid-client 6, zod 4, recharts 3, react-day-picker 10).
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- CI-Build durch `allowBuilds`-Konfiguration für pnpm 11 repariert
|
|
||||||
(Build-Scripts für esbuild & Co. werden nicht mehr blockiert).
|
|
||||||
- Image-Tagging vereinfacht: nur noch `latest` und `v*`-Tags, keine `nightly-*`/`sha-*`-Tags.
|
|
||||||
- Alle Dependencies exakt gepinnt; automatische Updates via Renovate vorbereitet
|
|
||||||
(`renovate.json`, `docs/dependency-policy.md`).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Breaking Changes an der API. openid-client intern auf v6 migriert
|
|
||||||
(auth-Fluss verhält sich identisch).
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert. Node-Image auf `node:24.18.1-alpine` gepinnt.
|
|
||||||
- **Migration:** keine Datenbank-Migration erforderlich.
|
|
||||||
- **Breaking Changes:** keine.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- `typedoc` (indirekte orval-Abhängigkeit) zeigt eine Peer-Dependency-Warnung
|
|
||||||
(erwartet TypeScript 5.x/6.x, installiert ist 7.x) — harmlos für Build & Laufzeit.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`2f66fff`](https://git.kubebase.de/admin/tool-evaluator/commit/2f66fff)
|
|
||||||
- Tag: [`v0.6.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.6.0)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# v0.7.0 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-03 · **Tag:** [`v0.7.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.7.0)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- Version-bound **release documentation** in the app under `/docs`
|
|
||||||
(index + detail page per version, Markdown from `docs/releases/`).
|
|
||||||
- Generated release template (`docs/releases/TEMPLATE.md`) and
|
|
||||||
sync step for the frontend build.
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- `tsx` bumped to 4.23.4 — last outdated dependency in the workspace
|
|
||||||
(`pnpm outdated -r` is now empty).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No breaking changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- The documentation is currently limited to release notes; a complete
|
|
||||||
API/field reference will follow in v0.8.0.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`520f917`](https://git.kubebase.de/admin/tool-evaluator/commit/520f917)
|
|
||||||
- Tag: [`v0.7.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.7.0)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# v0.7.0 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-03 · **Tag:** [`v0.7.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.7.0)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- Version-gebundene **Release-Dokumentation** in der App unter `/docs`
|
|
||||||
(Index + Detailseite je Version, Markdown aus `docs/releases/`).
|
|
||||||
- Generiertes Release-Vorlage (`docs/releases/TEMPLATE.md`) und
|
|
||||||
Sync-Schritt für den Frontend-Build.
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- `tsx` auf 4.23.4 angehoben — letzte veraltete Abhängigkeit im Workspace
|
|
||||||
(`pnpm outdated -r` ist jetzt leer).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Breaking Changes an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Die Doku ist bisher auf Release-Notes beschränkt; eine vollständige
|
|
||||||
API-/Feld-Referenz folgt in v0.8.0.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`520f917`](https://git.kubebase.de/admin/tool-evaluator/commit/520f917)
|
|
||||||
- Tag: [`v0.7.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.7.0)
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# v0.8.0 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-03 · **Tag:** [`v0.8.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.0)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Complete documentation site** in mkdocs look under `/docs`:
|
|
||||||
- **Manual** with understandable explanations of all features
|
|
||||||
(Getting started, creating a tool, evaluations, comparing, watchlist,
|
|
||||||
analytics, administration, data model).
|
|
||||||
- **Automatically generated reference** from `lib/api-spec/openapi.yaml`:
|
|
||||||
all endpoints and data fields (type, required status, constraints) —
|
|
||||||
this guarantees that *every* feature is documented.
|
|
||||||
- **Search** across the manual, endpoints, and fields.
|
|
||||||
- **Version dropdown**: older releases keep their full field/endpoint
|
|
||||||
reference as a snapshot.
|
|
||||||
- **Repo link** to the source in the top right.
|
|
||||||
- **Help buttons (?) in forms** (NetBox style): next to each field,
|
|
||||||
an icon jumps directly to the field description in the docs.
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- Docs generator `scripts/src/generate-docs.mjs` replaces the previous
|
|
||||||
`sync-release-docs.mjs` (OpenAPI parsing, manual, search index, snapshots).
|
|
||||||
- Documentation for v0.7.0 backfilled.
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No breaking changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- Manual & reference apply to the current version; older versions
|
|
||||||
show their release notes and a reference snapshot, if generated at
|
|
||||||
release time (`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`6c92b63`](https://git.kubebase.de/admin/tool-evaluator/commit/6c92b63)
|
|
||||||
- Tag: [`v0.8.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.0)
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# v0.8.0 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-03 · **Tag:** [`v0.8.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.0)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Vollständige Dokumentations-Site** in mkdocs-Optik unter `/docs`:
|
|
||||||
- **Handbuch** mit verständlichen Erklärungen zu allen Features
|
|
||||||
(Erste Schritte, Tool anlegen, Bewertungen, Vergleichen, Merkliste,
|
|
||||||
Analytics, Administration, Datenmodell).
|
|
||||||
- **Automatisch generierte Referenz** aus `lib/api-spec/openapi.yaml`:
|
|
||||||
alle Endpunkte und Datenfelder (Typ, Pflichtstatus, Constraints) —
|
|
||||||
damit ist garantiert, dass *jedes* Feature dokumentiert ist.
|
|
||||||
- **Suche** über Handbuch, Endpunkte und Felder.
|
|
||||||
- **Versions-Dropdown**: ältere Releases behalten ihre vollständige
|
|
||||||
Feld-/Endpunkt-Referenz als Snapshot.
|
|
||||||
- **Repo-Link** oben rechts zur Quelle.
|
|
||||||
- **Hilfe-Buttons (?) in Formularen** (NetBox-Stil): neben jedem Feld
|
|
||||||
springt ein Icon direkt zur Feldbeschreibung in der Doku.
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- Doku-Generator `scripts/src/generate-docs.mjs` ersetzt den bisherigen
|
|
||||||
`sync-release-docs.mjs` (OpenAPI-Parsing, Handbuch, Suchindex, Snapshots).
|
|
||||||
- Dokumentation für v0.7.0 nachgezogen.
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Breaking Changes an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Handbuch & Referenz gelten für die aktuelle Version; ältere Versionen
|
|
||||||
zeigen ihre Release-Notes und einen Referenz-Snapshot, sofern beim Release
|
|
||||||
erzeugt (`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`6c92b63`](https://git.kubebase.de/admin/tool-evaluator/commit/6c92b63)
|
|
||||||
- Tag: [`v0.8.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.0)
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
# v0.8.1 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-03 · **Tag:** [`v0.8.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.1)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Standalone docs page**: The documentation is now available as its own,
|
|
||||||
mkdocs-like page at `toolr.kubebase.de/docs` — without the app shell
|
|
||||||
(own header with repo link, version dropdown, search, theme toggle
|
|
||||||
and link back to the app).
|
|
||||||
- **Navigation renamed**: The sidebar entry is now called **"Help"**
|
|
||||||
and leads to the standalone docs.
|
|
||||||
- **User guide completely revised**: 17 manual pages with
|
|
||||||
step-by-step instructions for all features (finding tools, creating a
|
|
||||||
tool, evaluating, watchlist, comparing, costs, analytics, plans,
|
|
||||||
administration, redundancy, trash, keyboard shortcuts, data model).
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- Reference links are now case-insensitive
|
|
||||||
(schema/endpoint slugs such as `toolinput` and `ToolInput` both work).
|
|
||||||
- Manual links to endpoint anchors corrected (PascalCase operation IDs).
|
|
||||||
- Outdated, broken manual links (`vergleichen`, `watchlist` …) replaced.
|
|
||||||
- Documentation table headers and notice texts in the docs page
|
|
||||||
internationalized via i18n (de/en).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none. The docs page is reachable under `/docs` as
|
|
||||||
before; only the presentation is now standalone.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- Manual & reference apply to the current version; older versions show
|
|
||||||
their release notes and a reference snapshot, if generated at release time
|
|
||||||
(`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`fdf2d74`](https://git.kubebase.de/admin/tool-evaluator/commit/fdf2d74)
|
|
||||||
- Tag: [`v0.8.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.1)
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
# v0.8.1 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-03 · **Tag:** [`v0.8.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.1)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Standalone-Doku-Seite**: Die Dokumentation steht jetzt als eigene,
|
|
||||||
mkdocs-artige Seite unter `toolr.kubebase.de/docs` — ohne die App-Shell
|
|
||||||
(eigene Kopfzeile mit Repo-Link, Versions-Dropdown, Suche, Theme-Umschalter
|
|
||||||
und Link zurück zur App).
|
|
||||||
- **Navigation umbenannt**: Der Seitenleisten-Eintrag heißt jetzt **„Hilfe"**
|
|
||||||
und führt zur Standalone-Doku.
|
|
||||||
- **User Guide komplett überarbeitet**: 17 Handbuch-Seiten mit
|
|
||||||
Schritt-für-Schritt-Anleitungen für alle Funktionen (Tools finden, Tool
|
|
||||||
anlegen, Bewerten, Merkliste, Vergleichen, Kosten, Analytics, Pläne,
|
|
||||||
Administration, Redundanz, Papierkorb, Tastenkürzel, Datenmodell).
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- Referenz-Links sind jetzt unabhängig von Groß-/Kleinschreibung
|
|
||||||
(Schema-/Endpoint-Slugs wie `toolinput` und `ToolInput` funktionieren beide).
|
|
||||||
- Handbuch-Links auf Endpunkt-Anker korrigiert (PascalCase-OperationIds).
|
|
||||||
- Veraltete, kaputte Handbuch-Links (`vergleichen`, `watchlist` …) ersetzt.
|
|
||||||
- Dokumentations-Tabellenkopfzeilen und Hinweistexte in der Doku-Seite über
|
|
||||||
i18n internationalisiert (de/en).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Änderungen an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine. Die Doku-Seite ist unter `/docs` erreichbar wie
|
|
||||||
bisher; lediglich die Darstellung ist nun eigenständig.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Handbuch & Referenz gelten für die aktuelle Version; ältere Versionen zeigen
|
|
||||||
ihre Release-Notes und einen Referenz-Snapshot, sofern beim Release erzeugt
|
|
||||||
(`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`fdf2d74`](https://git.kubebase.de/admin/tool-evaluator/commit/fdf2d74)
|
|
||||||
- Tag: [`v0.8.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.1)
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# v0.8.2 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-04 · **Tag:** [`v0.8.2`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.2)
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- **Mobile navigation in the docs**: The left navigation bar (manual,
|
|
||||||
endpoints, schemas) was completely hidden below `lg` (1024px).
|
|
||||||
There is now a menu button in the header that opens a side
|
|
||||||
navigation drawer with the same content — on small screens
|
|
||||||
the docs remain fully navigable.
|
|
||||||
- **Version dropdown shows the selected version**: When switching to a
|
|
||||||
different release (`/docs/releases/vX.Y.Z`), the dropdown wrongly stayed on
|
|
||||||
"current". The displayed version is now also derived from the releases route.
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- Manual & reference apply to the current version; older versions show
|
|
||||||
their release notes and a reference snapshot, if generated at release time
|
|
||||||
(`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`33cf261`](https://git.kubebase.de/admin/tool-evaluator/commit/33cf261)
|
|
||||||
- Tag: [`v0.8.2`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.2)
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# v0.8.2 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-04 · **Tag:** [`v0.8.2`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.2)
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- **Mobile Navigation in der Doku**: Die linke Navigationsleiste (Handbuch,
|
|
||||||
Endpunkte, Schemas) wurde unterhalb von `lg` (1024px) komplett ausgeblendet.
|
|
||||||
Es gibt jetzt einen Menü-Button im Kopfbereich, der ein seitliches
|
|
||||||
Navigations-Drawer mit demselben Inhalt öffnet — auf kleinen Bildschirmen
|
|
||||||
bleibt die Doku voll navigierbar.
|
|
||||||
- **Versions-Dropdown zeigt die gewählte Version an**: Beim Wechsel zu einem
|
|
||||||
anderen Release (`/docs/releases/vX.Y.Z`) blieb das Dropdown fälschlich auf
|
|
||||||
„aktuell". Die angezeigte Version wird jetzt auch aus der releases-Route
|
|
||||||
abgeleitet.
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Änderungen an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Handbuch & Referenz gelten für die aktuelle Version; ältere Versionen zeigen
|
|
||||||
ihre Release-Notes und einen Referenz-Snapshot, sofern beim Release erzeugt
|
|
||||||
(`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`).
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`33cf261`](https://git.kubebase.de/admin/tool-evaluator/commit/33cf261)
|
|
||||||
- Tag: [`v0.8.2`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.2)
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,49 +0,0 @@
|
|||||||
# v0.8.3 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-04 · **Tag:** [`v0.8.3`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.3)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Version-based documentation**: Each release now carries a
|
|
||||||
complete docs snapshot (manual + API reference). Via the
|
|
||||||
version dropdown you can reach the docs of the respective version
|
|
||||||
(`/docs/vX.Y.Z/…`) — including the manual and reference as they
|
|
||||||
applied at release time. The last 7 versions remain available.
|
|
||||||
- **Help buttons in forms (NetBox style)**: For evaluation, tool
|
|
||||||
create/edit, costs, comparing, watchlist and analytics there is now
|
|
||||||
a help icon that leads directly to the matching guide in the manual.
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- **Gitea tag links fixed**: `…/tags/vX.Y.Z` was a 404 page; the
|
|
||||||
correct URL is `/releases/tag/vX.Y.Z` (in all release notes and the
|
|
||||||
docs page).
|
|
||||||
- Version switching now leads to the docs of the selected version instead of
|
|
||||||
just the release page; old `/docs/vX.Y.Z` redirects are removed.
|
|
||||||
- Docs generator: `--snapshot` creates manual + reference per version; on
|
|
||||||
build, the snapshots of the last 7 versions are included.
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none. New release notes must use the correct
|
|
||||||
tag link (see `docs/releases/TEMPLATE.md`). For versions before
|
|
||||||
this release, snapshots can be created retroactively:
|
|
||||||
`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- Older releases without a snapshot (e.g. v0.6.0) only show their release notes,
|
|
||||||
no manual/reference. Backfill with `--snapshot`.
|
|
||||||
- The docs version corresponds to the state of the docs at the time the
|
|
||||||
snapshot was created; manual changes apply from the respective next release.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`3bb4598`](https://git.kubebase.de/admin/tool-evaluator/commit/3bb4598)
|
|
||||||
- Tag: [`v0.8.3`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.3)
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# v0.8.3 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-04 · **Tag:** [`v0.8.3`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.3)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Versionsbasierte Dokumentation**: Jedes Release trägt jetzt einen
|
|
||||||
vollständigen Doku-Snapshot (Handbuch + API-Referenz). Über das
|
|
||||||
Versions-Dropdown gelangst du zur Doku der jeweiligen Version
|
|
||||||
(`/docs/vX.Y.Z/…`) — inklusive Handbuch und Referenz, wie sie zum
|
|
||||||
Release-Zeitpunkt galten. Die letzten 7 Versionen bleiben verfügbar.
|
|
||||||
- **Hilfe-Buttons in Formularen (NetBox-Stil)**: Bei Bewertung, Tool
|
|
||||||
anlegen/bearbeiten, Kosten, Vergleichen, Merkliste und Analytics gibt es
|
|
||||||
jetzt ein Hilfe-Icon, das direkt zur passenden Anleitung im Handbuch führt.
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- **Gitea-Tag-Links korrigiert**: `…/tags/vX.Y.Z` war eine 404-Seite; die
|
|
||||||
korrekte URL lautet `/releases/tag/vX.Y.Z` (in allen Release-Notes und der
|
|
||||||
Doku-Seite).
|
|
||||||
- Versions-Wechsel führt jetzt zur Doku der gewählten Version statt direkt
|
|
||||||
nur zur Release-Seite; alte `/docs/vX.Y.Z`-Redirects entfallen.
|
|
||||||
- Doku-Generator: `--snapshot` erzeugt Handbuch + Referenz pro Version; beim
|
|
||||||
Build werden die Snapshots der letzten 7 Versionen eingespielt.
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Änderungen an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine. Neue Release-Notes müssen den korrekten
|
|
||||||
Tag-Link verwenden (siehe `docs/releases/TEMPLATE.md`). Für Versionen vor
|
|
||||||
diesem Release können Snapshots nachträglich erzeugt werden:
|
|
||||||
`node scripts/src/generate-docs.mjs --snapshot vX.Y.Z`.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Ältere Releases ohne Snapshot (z. B. v0.6.0) zeigen nur ihre Release-Notes,
|
|
||||||
kein Handbuch/keine Referenz. Mit `--snapshot` nachpflegen.
|
|
||||||
- Die Doku-Version entspricht dem Doku-Stand zum Zeitpunkt der Erstellung des
|
|
||||||
Snapshots; Änderungen am Handbuch gelten ab dem jeweils nächsten Release.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`3bb4598`](https://git.kubebase.de/admin/tool-evaluator/commit/3bb4598)
|
|
||||||
- Tag: [`v0.8.3`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.3)
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# v0.8.4 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-04 · **Tag:** [`v0.8.4`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.4)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Full app localization (German/English)**: All pages and components are
|
|
||||||
now translated — tool detail page, admin area, trash, redundancy dashboard,
|
|
||||||
compare, watchlist, analytics, create and edit tool, admin tools tab,
|
|
||||||
category combobox and theme toggle. The language picker in the top right
|
|
||||||
switches the whole UI.
|
|
||||||
- **Bilingual documentation**: The manual (all 17 pages) and the release
|
|
||||||
notes are now available in German and English. The docs page has a
|
|
||||||
language switcher that switches content, navigation titles and search.
|
|
||||||
Versioned docs snapshots (v0.8.1, v0.8.2) also contain the English pages.
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- All remaining hardcoded UI strings replaced with `t()` calls; the locales
|
|
||||||
are in sync (453 keys per language, 0 missing).
|
|
||||||
- API reference: table headers (Name/In), required badges and request body
|
|
||||||
labels in the docs are translated.
|
|
||||||
- Docs search respects the active language (separate index per language).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none. The docs generator output now includes
|
|
||||||
additional English files (`*.en.md`) and `search.en.json`; these are
|
|
||||||
generated automatically during the build.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- Versioned docs snapshots before v0.8.1 (e.g. v0.6.0) do not contain
|
|
||||||
English manual pages; the German version is used as fallback there.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`3de59cc`](https://git.kubebase.de/admin/tool-evaluator/commit/3de59cc)
|
|
||||||
- Tag: [`v0.8.4`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.4)
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
# v0.8.4 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-04 · **Tag:** [`v0.8.4`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.4)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Komplette Lokalisierung der App (Deutsch/Englisch)**: Alle Seiten und
|
|
||||||
Komponenten sind jetzt übersetzt — Tool-Detailseite, Verwaltung, Papierkorb,
|
|
||||||
Redundanz-Dashboard, Vergleichen, Merkliste, Analytics, Tool anlegen und
|
|
||||||
bearbeiten, Admin-Bereich inkl. Tools-Tab, Kategorie-Combobox und
|
|
||||||
Theme-Umschalter. Die Sprachauswahl oben rechts wechselt die gesamte
|
|
||||||
Oberfläche.
|
|
||||||
- **Dokumentation zweisprachig**: Handbuch (alle 17 Seiten) und Release-Notes
|
|
||||||
sind jetzt in Deutsch und Englisch verfügbar. In der Doku gibt es einen
|
|
||||||
Sprach-Umschalter, der Inhalte, Navigationstitel und Suche umschaltet.
|
|
||||||
Auch versionierte Doku-Snapshots (v0.8.1, v0.8.2) enthalten die englischen
|
|
||||||
Seiten.
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- Alle verbliebenen hartkodierten UI-Strings durch `t()`-Aufrufe ersetzt;
|
|
||||||
die Locales sind synchron (453 Keys pro Sprache, 0 fehlend).
|
|
||||||
- API-Referenz: Tabellen-Header (Name/In), Pflicht-Badges und
|
|
||||||
Request-Body-Label der Doku übersetzt.
|
|
||||||
- Suche in der Doku berücksichtigt die aktive Sprache (eigener Index pro
|
|
||||||
Sprache).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Änderungen an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine. Die Doku-Generator-Ausgabe umfasst jetzt
|
|
||||||
zusätzliche englische Dateien (`*.en.md`) und `search.en.json`; beim Build
|
|
||||||
werden diese automatisch erzeugt.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Versionierte Doku-Snapshots vor v0.8.1 (z. B. v0.6.0) enthalten keine
|
|
||||||
englischen Handbuch-Seiten; dort greift die deutsche Fassung als Fallback.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`3de59cc`](https://git.kubebase.de/admin/tool-evaluator/commit/3de59cc)
|
|
||||||
- Tag: [`v0.8.4`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.4)
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# v0.8.5 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-04 · **Tag:** [`v0.8.5`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.5)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Help buttons across the app**: The main pages (Home, Browse tools, Trash,
|
|
||||||
Redundancy dashboard, Admin tools) as well as the premium dialog and the
|
|
||||||
password dialog now show a book icon next to the title that links directly
|
|
||||||
to the matching manual page (following the existing buttons on the tool
|
|
||||||
detail, create, edit, compare, watchlist and analytics pages).
|
|
||||||
|
|
||||||
## Fixes & improvements
|
|
||||||
|
|
||||||
- **Translated submit button when creating a tool**: The "Submit Tool" /
|
|
||||||
"Adding Tool…" button was still hardcoded and appeared in English in the
|
|
||||||
German UI. It is now translated, e.g. "Tool einreichen" / "Füge Tool
|
|
||||||
hinzu…" in German.
|
|
||||||
- **More translated UI strings**: View mode (Grid/Table/Rows), list density
|
|
||||||
(Compact/Comfortable), minimum rating in the filter and the password hint
|
|
||||||
"min. 6 characters" are now translated correctly.
|
|
||||||
- **Consistent docs terminology**: The manual now consistently calls the
|
|
||||||
watchlist "Merkliste" in all German pages and release notes; the English
|
|
||||||
version stays "Watchlist". The `watchlist` permission name and the URLs
|
|
||||||
are unchanged.
|
|
||||||
- All locales are in sync (462 keys per language, 0 missing).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- No changes to the API.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- None.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`70e72da`](https://git.kubebase.de/admin/tool-evaluator/commit/70e72da)
|
|
||||||
- Tag: [`v0.8.5`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.5)
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# v0.8.5 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-04 · **Tag:** [`v0.8.5`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.5)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Hilfe-Buttons in der gesamten App**: Auf den Hauptseiten (Start, Tools
|
|
||||||
durchsuchen, Papierkorb, Redundanz-Dashboard, Admin-Tools) sowie in
|
|
||||||
Premium-Dialog und Passwort-Dialog gibt es jetzt ein Buch-Icon neben dem
|
|
||||||
Titel, das direkt zur passenden Anleitung im Handbuch verlinkt (analog zu
|
|
||||||
den bestehenden Buttons auf Tool-Detail-, Anlegen-, Bearbeiten-,
|
|
||||||
Vergleichen-, Merkliste- und Analytics-Seiten).
|
|
||||||
|
|
||||||
## Fixes & Verbesserungen
|
|
||||||
|
|
||||||
- **Submit-Button beim Tool-Anlegen übersetzt**: Der Button „Submit Tool" /
|
|
||||||
„Adding Tool…" war noch hartkodiert und erschien auf Deutsch auf Englisch.
|
|
||||||
Jetzt: „Tool einreichen" / „Füge Tool hinzu…" (bzw. die englischen
|
|
||||||
Entsprechungen).
|
|
||||||
- **Weitere übersetzte UI-Strings**: Ansichtsmodus (Raster/Tabelle/Zeilen),
|
|
||||||
Listendichte (Kompakt/Komfortabel), Mindestbewertung im Filter sowie der
|
|
||||||
Passwort-Hinweis „min. 6 Zeichen" werden jetzt korrekt übersetzt.
|
|
||||||
- **Doku-Terminologie konsistent**: Das Handbuch heißt die Merkliste jetzt
|
|
||||||
einheitlich „Merkliste" (statt „Watchlist") in allen deutschen Seiten und
|
|
||||||
Release-Notes; die englische Fassung bleibt „Watchlist". Die
|
|
||||||
Permissions-Bezeichnung `watchlist` und die URLs sind unverändert.
|
|
||||||
- Alle Locales synchron (462 Keys pro Sprache, 0 fehlend).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- Keine Änderungen an der API.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- Keine.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`70e72da`](https://git.kubebase.de/admin/tool-evaluator/commit/70e72da)
|
|
||||||
- Tag: [`v0.8.5`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.5)
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
# v0.8.6 — Release Notes
|
|
||||||
|
|
||||||
**Date:** 2026-08-04 · **Tag:** [`v0.8.6`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.6)
|
|
||||||
|
|
||||||
## New features
|
|
||||||
|
|
||||||
- **Bulk tool import in the admin area (premium)**: Admins can now create
|
|
||||||
multiple tools at once via the new **Import** button in the "Tools" tab.
|
|
||||||
The format is detected automatically (CSV, JSON or YAML); for CSV the
|
|
||||||
delimiter can be chosen (auto-detect, comma, semicolon or tab). Data can be
|
|
||||||
pasted directly or uploaded as a file. Faulty rows are skipped and listed
|
|
||||||
with their row number while correct rows are still created. Every import
|
|
||||||
produces audit-log entries. The feature is enabled via the `tool-import`
|
|
||||||
feature (premium/enterprise); admins always pass the check.
|
|
||||||
|
|
||||||
## Improvements
|
|
||||||
|
|
||||||
- **NetBox-style help buttons**: The previously attached book icon and the
|
|
||||||
`FieldHelp` question marks (which showed a German tooltip in the English
|
|
||||||
layout) have been removed. Forms (create tool, edit tool, rate, password
|
|
||||||
dialog) now show a "Hilfe"/"Help" outline button with a question-mark icon
|
|
||||||
at the top right that opens the corresponding handbook page — fully
|
|
||||||
localized.
|
|
||||||
- All locales are in sync (482 keys per language, 0 missing).
|
|
||||||
|
|
||||||
## API changes
|
|
||||||
|
|
||||||
- **New:** `POST /admin/tools/import` (admin + `tool-import` feature).
|
|
||||||
Request body: `format` (`auto|csv|json|yaml`, default `auto`), `delimiter`
|
|
||||||
(`auto|comma|semicolon|tab`, default `auto`), `data` (string). Response:
|
|
||||||
`{ imported, total, errors: [{ row, error }] }`.
|
|
||||||
|
|
||||||
## Operations / upgrade
|
|
||||||
|
|
||||||
- **Env vars:** unchanged.
|
|
||||||
- **Migration:** none.
|
|
||||||
- **Breaking changes:** none. The import endpoint is only available to
|
|
||||||
premium/enterprise admins; free/user accounts keep standard access.
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
- CSV columns whose header does not map to a supported field are ignored;
|
|
||||||
only the defined fields (`name`, `description`, `category`, `websiteUrl`,
|
|
||||||
`iconUrl`, `features`, `tags`) are taken over.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`8f2fd89`](https://git.kubebase.de/admin/tool-evaluator/commit/8f2fd89)
|
|
||||||
- Tag: [`v0.8.6`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.6)
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
# v0.8.6 — Release Notes
|
|
||||||
|
|
||||||
**Datum:** 2026-08-04 · **Tag:** [`v0.8.6`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.6)
|
|
||||||
|
|
||||||
## Neue Features
|
|
||||||
|
|
||||||
- **Bulk-Tool-Import im Admin (Premium)**: Admins können über den neuen Button
|
|
||||||
**Importieren** im Tab „Tools" mehrere Tools gleichzeitig anlegen. Das Format
|
|
||||||
wird automatisch erkannt (CSV, JSON oder YAML); für CSV ist der Trenner
|
|
||||||
wählbar (automatisch, Komma, Semikolon oder Tabulator). Daten lassen sich
|
|
||||||
direkt einfügen oder als Datei hochladen. Fehlerhafte Zeilen werden übersprungen
|
|
||||||
und mit Zeilennummer aufgelistet, korrekte weiterhin angelegt. Jeder Import
|
|
||||||
erzeugt Audit-Log-Einträge. Das Feature ist über das `tool-import`-Feature
|
|
||||||
(Premium/Enterprise) freigeschaltet; Admins passieren den Check immer.
|
|
||||||
|
|
||||||
## Verbesserungen
|
|
||||||
|
|
||||||
- **Hilfe-Buttons im NetBox-Stil**: Das zuvor angebundene Buch-Icon und die
|
|
||||||
`FieldHelp`-Fragezeichen (die im englischen Layout deutschen Tooltip zeigten)
|
|
||||||
wurden entfernt. Formulare (Tool anlegen, Tool bearbeiten, Bewerten,
|
|
||||||
Passwort-Dialog) haben jetzt oben rechts einen „Hilfe"/„Help"-Outline-Button mit
|
|
||||||
Fragezeichen-Icon, der die zugehörige Handbuch-Seite öffnet — vollständig
|
|
||||||
übersetzt.
|
|
||||||
- Alle Locales synchron (482 Keys pro Sprache, 0 fehlend).
|
|
||||||
|
|
||||||
## API-Änderungen
|
|
||||||
|
|
||||||
- **Neu:** `POST /admin/tools/import` (Admin + `tool-import`-Feature).
|
|
||||||
Request-Body: `format` (`auto|csv|json|yaml`, Default `auto`), `delimiter`
|
|
||||||
(`auto|comma|semicolon|tab`, Default `auto`), `data` (String). Antwort:
|
|
||||||
`{ imported, total, errors: [{ row, error }] }`.
|
|
||||||
|
|
||||||
## Betrieb / Upgrade
|
|
||||||
|
|
||||||
- **Env-Vars:** unverändert.
|
|
||||||
- **Migration:** keine.
|
|
||||||
- **Breaking Changes:** keine. Der Import-Endpunkt ist ausschließlich für
|
|
||||||
Premium/Enterprise-Admins; Free-/User-Konten erhalten weiterhin den Standard-
|
|
||||||
Zugriff.
|
|
||||||
|
|
||||||
## Bekannte Einschränkungen
|
|
||||||
|
|
||||||
- CSV-Spalten, die in der Kopfzeile nicht als unterstützte Felder erkannt werden,
|
|
||||||
werden ignoriert; nur die definierten Felder (`name`, `description`,
|
|
||||||
`category`, `websiteUrl`, `iconUrl`, `features`, `tags`) werden übernommen.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
- Commit: [`8f2fd89`](https://git.kubebase.de/admin/tool-evaluator/commit/8f2fd89)
|
|
||||||
- Tag: [`v0.8.6`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.8.6)
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# v0.9.0 — Release Notes
|
||||||
|
|
||||||
|
**Datum:** 2026-08-05 · **Tag:** [`v0.9.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.0)
|
||||||
|
|
||||||
|
## Neue Features
|
||||||
|
|
||||||
|
- **Neuausrichtung der Versionierung:** Die Dokumentation startet mit dieser
|
||||||
|
Version neu bei `v0.9.0`. Ältere Release-Notizen und Versionen-Snapshots
|
||||||
|
(v0.6.0–v0.8.6) wurden entfernt. Das Handbuch und die Referenz (API/Admin)
|
||||||
|
sind jetzt wieder für jede Version verfügbar — auch für neuere Versionen.
|
||||||
|
- **Sprachsuffixe:** Alle Dokumentationsdateien verwenden jetzt einheitlich die
|
||||||
|
Suffixe `.de.md` und `.en.md`. Damit lassen sich später weitere Sprachen
|
||||||
|
ergänzen; die App liefert automatisch die passende Sprachfassung.
|
||||||
|
- **Import — fertige Beispieldatei:** Unter `docs/examples/import-tools.yaml`
|
||||||
|
liegt eine sofort importierbare YAML-Beispieldatei mit 24 gängigen
|
||||||
|
Enterprise-Tools (Kategorien wie Kommunikation, Monitoring, CI/CD,
|
||||||
|
Infrastruktur). Die Datei ist in der Administration-Dokumentation verlinkt.
|
||||||
|
|
||||||
|
## Fixes & Verbesserungen
|
||||||
|
|
||||||
|
- Der Versionsumschalter zeigt die Dokumentation jetzt auch für neuere
|
||||||
|
Versionen korrekt an (vorher fehlende Versionen-Snapshots machten Handbuch und
|
||||||
|
Referenz nicht verfügbar).
|
||||||
|
- Wording bereinigt: Die Tagline und Platzhaltertexte ohne Berufsbezeichnung
|
||||||
|
(„Bewerte dein Tool." / „Rate your Tool.", „Anonymer Benutzer" /
|
||||||
|
„Anonymous User"). Es werden keine Gender-Sonderformen mehr verwendet
|
||||||
|
(`Nutzer:innen` → `Nutzer`, `Ersteller:in` → `Ersteller`).
|
||||||
|
|
||||||
|
## API-Änderungen
|
||||||
|
|
||||||
|
- Keine Änderungen gegenüber v0.8.6 (siehe `lib/api-spec/openapi.yaml`).
|
||||||
|
|
||||||
|
## Betrieb / Upgrade
|
||||||
|
|
||||||
|
- **Migration:** keine. Bereits vorhandene Tools-, Bewertungs- und Konto-Daten
|
||||||
|
bleiben unverändert.
|
||||||
|
- **Breaking Changes:** keine.
|
||||||
|
|
||||||
|
## Bekannte Einschränkungen
|
||||||
|
|
||||||
|
- Keine im Rahmen dieses Releases.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- Commit: [`6eb3dfd`](https://git.kubebase.de/admin/tool-evaluator/commit/6eb3dfd)
|
||||||
|
- Tag: [`v0.9.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.0)
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
# v0.9.0 — Release Notes
|
||||||
|
|
||||||
|
**Date:** 2026-08-05 · **Tag:** [`v0.9.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.0)
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
- **Versioning reset:** Documentation starts fresh at `v0.9.0` with this
|
||||||
|
release. Older release notes and version snapshots (v0.6.0–v0.8.6) have been
|
||||||
|
removed. The handbook and reference (API/admin) are now available again for
|
||||||
|
every version — including newer versions.
|
||||||
|
- **Language suffixes:** All documentation files now consistently use the
|
||||||
|
`.de.md` and `.en.md` suffixes. This makes it easy to add more languages
|
||||||
|
later; the app automatically serves the matching language variant.
|
||||||
|
- **Import — ready-to-use example file:** A ready-to-import YAML example file
|
||||||
|
with 24 common enterprise tools is provided at
|
||||||
|
`docs/examples/import-tools.yaml` (categories such as communication,
|
||||||
|
monitoring, CI/CD, infrastructure). The file is linked from the
|
||||||
|
administration documentation.
|
||||||
|
|
||||||
|
## Fixes & Polish
|
||||||
|
|
||||||
|
- The version switcher now displays documentation correctly for newer versions
|
||||||
|
as well (previously, missing version snapshots made the handbook and
|
||||||
|
reference unavailable).
|
||||||
|
- Wording cleanup: tagline and placeholder texts no longer reference a specific
|
||||||
|
job title ("Rate your Tool.", "Anonymous User"). No gender-specific forms are
|
||||||
|
used anymore.
|
||||||
|
|
||||||
|
## API Changes
|
||||||
|
|
||||||
|
- No changes compared to v0.8.6 (see `lib/api-spec/openapi.yaml`).
|
||||||
|
|
||||||
|
## Operations / Upgrade
|
||||||
|
|
||||||
|
- **Migration:** none. Existing tool, rating, and account data remain
|
||||||
|
unchanged.
|
||||||
|
- **Breaking Changes:** none.
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
|
||||||
|
- None within the scope of this release.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- Commit: [`6eb3dfd`](https://git.kubebase.de/admin/tool-evaluator/commit/6eb3dfd)
|
||||||
|
- Tag: [`v0.9.0`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.0)
|
||||||
+43
@@ -32,6 +32,49 @@ Zentraler Zugriff auf den Tool-Katalog.
|
|||||||
- **Massenaktion:** mehrere Tools auswählen und in den Papierkorb verschieben
|
- **Massenaktion:** mehrere Tools auswählen und in den Papierkorb verschieben
|
||||||
(Bestätigungsdialog; soft gelöschte Tools sind aus allen öffentlichen Ansichten
|
(Bestätigungsdialog; soft gelöschte Tools sind aus allen öffentlichen Ansichten
|
||||||
entfernt und können wiederhergestellt oder endgültig gelöscht werden).
|
entfernt und können wiederhergestellt oder endgültig gelöscht werden).
|
||||||
|
- **Importieren** (Premium): über die Schaltfläche **Importieren** oben rechts
|
||||||
|
können mehrere Tools gleichzeitig angelegt werden. Das Format wird automatisch
|
||||||
|
erkannt (CSV, JSON oder YAML); für CSV lässt sich der Trenner wählen
|
||||||
|
(automatisch, Komma, Semikolon oder Tabulator). Die Daten lassen sich direkt
|
||||||
|
ins Formular einfügen oder als Datei hochladen.
|
||||||
|
|
||||||
|
Unterstützte Felder: `name` (Pflicht), `description`, `category`, `websiteUrl`,
|
||||||
|
`iconUrl`, `features`, `tags` (`features`/`tags` sind mit `|` getrennte Listen).
|
||||||
|
|
||||||
|
**CSV-Beispiel:**
|
||||||
|
|
||||||
|
```csv
|
||||||
|
name;description;category;features;tags
|
||||||
|
Grafana;Observability- und Dashboard-Plattform;Monitoring;Dashboards|Alerts;devops
|
||||||
|
Prometheus;Zeitreihen-Datenbank;Monitoring;Metrics;devops
|
||||||
|
```
|
||||||
|
|
||||||
|
**JSON-Beispiel:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{ "name": "Grafana", "category": "Monitoring", "features": ["Dashboards"] },
|
||||||
|
{ "name": "Prometheus", "category": "Monitoring" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**YAML-Beispiel:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Grafana
|
||||||
|
category: Monitoring
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- name: Prometheus
|
||||||
|
category: Monitoring
|
||||||
|
```
|
||||||
|
|
||||||
|
Eine umfangreichere, fertig importierbare Beispieldatei liegt unter
|
||||||
|
`docs/examples/import-tools.yaml` (24 gängige Enterprise-Tools).
|
||||||
|
|
||||||
|
Beim Import werden einzelne fehlerhafte Zeilen übersprungen und mit Zeilennummer
|
||||||
|
aufgelistet; korrekte Zeilen werden trotzdem angelegt. Jeder Import erzeugt
|
||||||
|
Audit-Log-Einträge.
|
||||||
|
|
||||||
## Tab „Audit-Log"
|
## Tab „Audit-Log"
|
||||||
|
|
||||||
+43
@@ -32,6 +32,49 @@ Central access to the tool catalog.
|
|||||||
- **Bulk action:** select multiple tools and move them to the trash
|
- **Bulk action:** select multiple tools and move them to the trash
|
||||||
(confirmation dialog; soft-deleted tools are removed from all public views
|
(confirmation dialog; soft-deleted tools are removed from all public views
|
||||||
and can be restored or permanently deleted).
|
and can be restored or permanently deleted).
|
||||||
|
- **Import** (premium): via the **Import** button at the top right, multiple
|
||||||
|
tools can be created at once. The format is detected automatically (CSV,
|
||||||
|
JSON or YAML); for CSV the delimiter can be chosen (auto-detect, comma,
|
||||||
|
semicolon or tab). Data can be pasted directly into the form or uploaded
|
||||||
|
as a file.
|
||||||
|
|
||||||
|
Supported fields: `name` (required), `description`, `category`, `websiteUrl`,
|
||||||
|
`iconUrl`, `features`, `tags` (`features`/`tags` are `|`-separated lists).
|
||||||
|
|
||||||
|
**CSV example:**
|
||||||
|
|
||||||
|
```csv
|
||||||
|
name;description;category;features;tags
|
||||||
|
Grafana;Observability and dashboard platform;Monitoring;Dashboards|Alerts;devops
|
||||||
|
Prometheus;Time-series database;Monitoring;Metrics;devops
|
||||||
|
```
|
||||||
|
|
||||||
|
**JSON example:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{ "name": "Grafana", "category": "Monitoring", "features": ["Dashboards"] },
|
||||||
|
{ "name": "Prometheus", "category": "Monitoring" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**YAML example:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Grafana
|
||||||
|
category: Monitoring
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- name: Prometheus
|
||||||
|
category: Monitoring
|
||||||
|
```
|
||||||
|
|
||||||
|
A larger, ready-to-import example file is located at
|
||||||
|
`docs/examples/import-tools.yaml` (24 common enterprise tools).
|
||||||
|
|
||||||
|
During import, individual faulty rows are skipped and listed with their row
|
||||||
|
number; correct rows are still created. Every import produces audit-log
|
||||||
|
entries.
|
||||||
|
|
||||||
## "Audit log" tab
|
## "Audit log" tab
|
||||||
|
|
||||||
+2
-2
@@ -6,7 +6,7 @@ Besuch bis zum Anlegen und Bewerten eines Tools.
|
|||||||
|
|
||||||
## 1. Anmelden
|
## 1. Anmelden
|
||||||
|
|
||||||
Die meisten Aktionen (Tool anlegen, bewerten, Watchlist, Vergleichen) erfordern
|
Die meisten Aktionen (Tool anlegen, bewerten, Merkliste, Vergleichen) erfordern
|
||||||
ein Konto. Klicke unten links auf **Anmelden**. Je nach Konfiguration der
|
ein Konto. Klicke unten links auf **Anmelden**. Je nach Konfiguration der
|
||||||
Instanz hast du zwei Möglichkeiten:
|
Instanz hast du zwei Möglichkeiten:
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ Siehe [Bewerten](/docs/handbook/bewerten).
|
|||||||
## 5. Weiterführend
|
## 5. Weiterführend
|
||||||
|
|
||||||
- [Tools vergleichen](/docs/handbook/vergleichen)
|
- [Tools vergleichen](/docs/handbook/vergleichen)
|
||||||
- [Watchlist](/docs/handbook/watchlist)
|
- [Merkliste](/docs/handbook/watchlist)
|
||||||
- [Analytics](/docs/handbook/analytics)
|
- [Analytics](/docs/handbook/analytics)
|
||||||
- [Pläne & Berechtigungen](/docs/handbook/plaene)
|
- [Pläne & Berechtigungen](/docs/handbook/plaene)
|
||||||
- [Administration](/docs/handbook/administration)
|
- [Administration](/docs/handbook/administration)
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
# Willkommen bei toolr
|
# Willkommen bei toolr
|
||||||
|
|
||||||
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
||||||
Entwicklungstools**. Nutzer:innen pflegen einen gemeinsamen Katalog von Tools,
|
Entwicklungstools**. Nutzer pflegen einen gemeinsamen Katalog von Tools,
|
||||||
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
||||||
die richtige Wahl zu treffen.
|
die richtige Wahl zu treffen.
|
||||||
|
|
||||||
@@ -12,13 +12,14 @@ die richtige Wahl zu treffen.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
||||||
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
||||||
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller:in oder Admin) | Angemeldet |
|
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller oder Admin) | Angemeldet |
|
||||||
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
||||||
| **Watchlist** | Tools als Favoriten speichern | Premium |
|
| **Merkliste** | Tools als Favoriten speichern | Premium |
|
||||||
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
||||||
| **Kosten erfassen** | Lizenz- und Kostenmodelle je Tool eintragen | Premium |
|
| **Kosten erfassen** | Lizenz- und Kostenmodelle je Tool eintragen | Premium |
|
||||||
| **Analytics** | Statistiken, Top-Tools, Verteilungen | Alle |
|
| **Analytics** | Statistiken, Top-Tools, Verteilungen | Alle |
|
||||||
| **Papierkorb** | Soft-gelöschte Tools wiederherstellen oder endgültig löschen | Premium |
|
| **Papierkorb** | Soft-gelöschte Tools wiederherstellen oder endgültig löschen | Premium |
|
||||||
|
| **Import** | Mehrere Tools per CSV, JSON oder YAML anlegen | Admin (Premium) |
|
||||||
| **Admin** | Nutzerverwaltung, Audit-Log, Systeminformationen | Admin |
|
| **Admin** | Nutzerverwaltung, Audit-Log, Systeminformationen | Admin |
|
||||||
| **Redundanz** | Automatische Doppelungs-Erkennung | Admin |
|
| **Redundanz** | Automatische Doppelungs-Erkennung | Admin |
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ tools**. Users maintain a shared catalog of tools, submit ratings
|
|||||||
| **Record costs** | Enter license and cost models per tool | Premium |
|
| **Record costs** | Enter license and cost models per tool | Premium |
|
||||||
| **Analytics** | Statistics, top tools, distributions | Everyone |
|
| **Analytics** | Statistics, top tools, distributions | Everyone |
|
||||||
| **Trash** | Restore soft-deleted tools or delete them permanently | Premium |
|
| **Trash** | Restore soft-deleted tools or delete them permanently | Premium |
|
||||||
|
| **Import** | Create multiple tools via CSV, JSON or YAML | Admin (premium) |
|
||||||
| **Admin** | User management, audit log, system information | Admin |
|
| **Admin** | User management, audit log, system information | Admin |
|
||||||
| **Redundancy detection** | Automatic duplicate detection | Admin |
|
| **Redundancy detection** | Automatic duplicate detection | Admin |
|
||||||
|
|
||||||
+18
-18
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"slug": "index",
|
"slug": "index",
|
||||||
"file": "index.md",
|
"file": "index.de.md",
|
||||||
"title": "Überblick",
|
"title": "Überblick",
|
||||||
"order": 1,
|
"order": 1,
|
||||||
"fileEn": "index.en.md",
|
"fileEn": "index.en.md",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "getting-started",
|
"slug": "getting-started",
|
||||||
"file": "getting-started.md",
|
"file": "getting-started.de.md",
|
||||||
"title": "Erste Schritte",
|
"title": "Erste Schritte",
|
||||||
"order": 2,
|
"order": 2,
|
||||||
"fileEn": "getting-started.en.md",
|
"fileEn": "getting-started.en.md",
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "konto",
|
"slug": "konto",
|
||||||
"file": "konto.md",
|
"file": "konto.de.md",
|
||||||
"title": "Anmelden & Konto",
|
"title": "Anmelden & Konto",
|
||||||
"order": 3,
|
"order": 3,
|
||||||
"fileEn": "konto.en.md",
|
"fileEn": "konto.en.md",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tools-finden",
|
"slug": "tools-finden",
|
||||||
"file": "tools-finden.md",
|
"file": "tools-finden.de.md",
|
||||||
"title": "Tools finden & durchsuchen",
|
"title": "Tools finden & durchsuchen",
|
||||||
"order": 4,
|
"order": 4,
|
||||||
"fileEn": "tools-finden.en.md",
|
"fileEn": "tools-finden.en.md",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tool-anlegen",
|
"slug": "tool-anlegen",
|
||||||
"file": "tool-anlegen.md",
|
"file": "tool-anlegen.de.md",
|
||||||
"title": "Tool anlegen",
|
"title": "Tool anlegen",
|
||||||
"order": 5,
|
"order": 5,
|
||||||
"fileEn": "tool-anlegen.en.md",
|
"fileEn": "tool-anlegen.en.md",
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tool-bearbeiten",
|
"slug": "tool-bearbeiten",
|
||||||
"file": "tool-bearbeiten.md",
|
"file": "tool-bearbeiten.de.md",
|
||||||
"title": "Tool bearbeiten & löschen",
|
"title": "Tool bearbeiten & löschen",
|
||||||
"order": 6,
|
"order": 6,
|
||||||
"fileEn": "tool-bearbeiten.en.md",
|
"fileEn": "tool-bearbeiten.en.md",
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "bewerten",
|
"slug": "bewerten",
|
||||||
"file": "bewerten.md",
|
"file": "bewerten.de.md",
|
||||||
"title": "Bewerten",
|
"title": "Bewerten",
|
||||||
"order": 7,
|
"order": 7,
|
||||||
"fileEn": "bewerten.en.md",
|
"fileEn": "bewerten.en.md",
|
||||||
@@ -57,15 +57,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "watchlist",
|
"slug": "watchlist",
|
||||||
"file": "watchlist.md",
|
"file": "watchlist.de.md",
|
||||||
"title": "Watchlist",
|
"title": "Merkliste",
|
||||||
"order": 8,
|
"order": 8,
|
||||||
"fileEn": "watchlist.en.md",
|
"fileEn": "watchlist.en.md",
|
||||||
"titleEn": "Watchlist"
|
"titleEn": "Watchlist"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "vergleichen",
|
"slug": "vergleichen",
|
||||||
"file": "vergleichen.md",
|
"file": "vergleichen.de.md",
|
||||||
"title": "Vergleichen",
|
"title": "Vergleichen",
|
||||||
"order": 9,
|
"order": 9,
|
||||||
"fileEn": "vergleichen.en.md",
|
"fileEn": "vergleichen.en.md",
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "analytics",
|
"slug": "analytics",
|
||||||
"file": "analytics.md",
|
"file": "analytics.de.md",
|
||||||
"title": "Analytics",
|
"title": "Analytics",
|
||||||
"order": 10,
|
"order": 10,
|
||||||
"fileEn": "analytics.en.md",
|
"fileEn": "analytics.en.md",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "plaene",
|
"slug": "plaene",
|
||||||
"file": "plaene.md",
|
"file": "plaene.de.md",
|
||||||
"title": "Pläne & Berechtigungen",
|
"title": "Pläne & Berechtigungen",
|
||||||
"order": 11,
|
"order": 11,
|
||||||
"fileEn": "plaene.en.md",
|
"fileEn": "plaene.en.md",
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "kosten",
|
"slug": "kosten",
|
||||||
"file": "kosten.md",
|
"file": "kosten.de.md",
|
||||||
"title": "Kosten erfassen",
|
"title": "Kosten erfassen",
|
||||||
"order": 12,
|
"order": 12,
|
||||||
"fileEn": "kosten.en.md",
|
"fileEn": "kosten.en.md",
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "administration",
|
"slug": "administration",
|
||||||
"file": "administration.md",
|
"file": "administration.de.md",
|
||||||
"title": "Administration",
|
"title": "Administration",
|
||||||
"order": 13,
|
"order": 13,
|
||||||
"fileEn": "administration.en.md",
|
"fileEn": "administration.en.md",
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "redundanz",
|
"slug": "redundanz",
|
||||||
"file": "redundanz.md",
|
"file": "redundanz.de.md",
|
||||||
"title": "Redundanz-Dashboard",
|
"title": "Redundanz-Dashboard",
|
||||||
"order": 14,
|
"order": 14,
|
||||||
"fileEn": "redundanz.en.md",
|
"fileEn": "redundanz.en.md",
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "papierkorb",
|
"slug": "papierkorb",
|
||||||
"file": "papierkorb.md",
|
"file": "papierkorb.de.md",
|
||||||
"title": "Papierkorb",
|
"title": "Papierkorb",
|
||||||
"order": 15,
|
"order": 15,
|
||||||
"fileEn": "papierkorb.en.md",
|
"fileEn": "papierkorb.en.md",
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tastatur",
|
"slug": "tastatur",
|
||||||
"file": "tastatur.md",
|
"file": "tastatur.de.md",
|
||||||
"title": "Tastenkürzel & Kommandopalette",
|
"title": "Tastenkürzel & Kommandopalette",
|
||||||
"order": 16,
|
"order": 16,
|
||||||
"fileEn": "tastatur.en.md",
|
"fileEn": "tastatur.en.md",
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "datenmodell",
|
"slug": "datenmodell",
|
||||||
"file": "datenmodell.md",
|
"file": "datenmodell.de.md",
|
||||||
"title": "Datenmodell",
|
"title": "Datenmodell",
|
||||||
"order": 17,
|
"order": 17,
|
||||||
"fileEn": "datenmodell.en.md",
|
"fileEn": "datenmodell.en.md",
|
||||||
@@ -22,7 +22,7 @@ Der aktive Modus steht im Endpunkt
|
|||||||
Dein Profil (Avatar, Name, E-Mail, Tarif) siehst du unten links im
|
Dein Profil (Avatar, Name, E-Mail, Tarif) siehst du unten links im
|
||||||
Benutzermenü. Dort stehen dir folgende Aktionen zur Verfügung:
|
Benutzermenü. Dort stehen dir folgende Aktionen zur Verfügung:
|
||||||
|
|
||||||
- **Watchlist** — deine gespeicherten Tools (nur mit dem entsprechenden Tarif).
|
- **Merkliste** — deine gespeicherten Tools (nur mit dem entsprechenden Tarif).
|
||||||
- **Papierkorb** — wiederherstellbare, gelöschte Tools (Premium/Enterprise).
|
- **Papierkorb** — wiederherstellbare, gelöschte Tools (Premium/Enterprise).
|
||||||
- **Passwort ändern** — für lokale Konten direkt in toolr; für OIDC-Konten wird
|
- **Passwort ändern** — für lokale Konten direkt in toolr; für OIDC-Konten wird
|
||||||
die Passwortverwaltung im Identitätsanbieter angeboten.
|
die Passwortverwaltung im Identitätsanbieter angeboten.
|
||||||
@@ -47,7 +47,7 @@ API-Referenz: [`POST /auth/me/password`](/docs/reference/endpoints/auth#changeMy
|
|||||||
- die **Listenansicht** und **Dichte** im Bereich Tools durchsuchen anpassen
|
- die **Listenansicht** und **Dichte** im Bereich Tools durchsuchen anpassen
|
||||||
(siehe [Tools finden & durchsuchen](/docs/handbook/tools-finden)).
|
(siehe [Tools finden & durchsuchen](/docs/handbook/tools-finden)).
|
||||||
|
|
||||||
Deine Präferenzen (inkl. Watchlist) werden im Endpunkt
|
Deine Präferenzen (inkl. Merkliste) werden im Endpunkt
|
||||||
[`GET /auth/me/preferences`](/docs/reference/endpoints/auth#getMePreferences)
|
[`GET /auth/me/preferences`](/docs/reference/endpoints/auth#getMePreferences)
|
||||||
gespeichert und über [`PUT /auth/me/preferences`](/docs/reference/endpoints/auth#updateMePreferences)
|
gespeichert und über [`PUT /auth/me/preferences`](/docs/reference/endpoints/auth#updateMePreferences)
|
||||||
aktualisiert.
|
aktualisiert.
|
||||||
+3
-2
@@ -9,7 +9,7 @@ Feature-Beschränkungen.
|
|||||||
| Tarif | Beschreibung |
|
| Tarif | Beschreibung |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| **Free** | Grundfunktionen: suchen, filtern, ansehen, Analytics |
|
| **Free** | Grundfunktionen: suchen, filtern, ansehen, Analytics |
|
||||||
| **Premium** | Zusätzlich Watchlist, Vergleichen, Papierkorb, Kosten |
|
| **Premium** | Zusätzlich Merkliste, Vergleichen, Papierkorb, Kosten |
|
||||||
| **Enterprise** | Alle Premium-Features + erweiterter Support |
|
| **Enterprise** | Alle Premium-Features + erweiterter Support |
|
||||||
|
|
||||||
### Feature-Berechtigungen
|
### Feature-Berechtigungen
|
||||||
@@ -19,9 +19,10 @@ Premium/Enterprise schalten folgende Features frei:
|
|||||||
| Feature | Funktion | Mehr erfahren |
|
| Feature | Funktion | Mehr erfahren |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `compare` | Tools vergleichen | [Vergleichen](/docs/handbook/vergleichen) |
|
| `compare` | Tools vergleichen | [Vergleichen](/docs/handbook/vergleichen) |
|
||||||
| `watchlist` | Favoritenliste | [Watchlist](/docs/handbook/watchlist) |
|
| `watchlist` | Favoritenliste | [Merkliste](/docs/handbook/watchlist) |
|
||||||
| `trash` | Papierkorb (soft gelöschte Tools) | [Papierkorb](/docs/handbook/papierkorb) |
|
| `trash` | Papierkorb (soft gelöschte Tools) | [Papierkorb](/docs/handbook/papierkorb) |
|
||||||
| `costs` | Kosten-/Lizenzmodelle erfassen | [Kosten erfassen](/docs/handbook/kosten) |
|
| `costs` | Kosten-/Lizenzmodelle erfassen | [Kosten erfassen](/docs/handbook/kosten) |
|
||||||
|
| `tool-import` | Tools per CSV/JSON/YAML importieren (Admin) | [Administration](/docs/handbook/administration) |
|
||||||
|
|
||||||
Fehlt dir ein Feature, zeigt die App einen **Upgrade-Hinweis** mit Link zur
|
Fehlt dir ein Feature, zeigt die App einen **Upgrade-Hinweis** mit Link zur
|
||||||
Tarifverwaltung.
|
Tarifverwaltung.
|
||||||
+1
@@ -22,6 +22,7 @@ Premium/Enterprise unlock the following features:
|
|||||||
| `watchlist` | Favorites list | [Watchlist](/docs/handbook/watchlist) |
|
| `watchlist` | Favorites list | [Watchlist](/docs/handbook/watchlist) |
|
||||||
| `trash` | Trash (soft-deleted tools) | [Trash](/docs/handbook/papierkorb) |
|
| `trash` | Trash (soft-deleted tools) | [Trash](/docs/handbook/papierkorb) |
|
||||||
| `costs` | Record cost/license models | [Recording costs](/docs/handbook/kosten) |
|
| `costs` | Record cost/license models | [Recording costs](/docs/handbook/kosten) |
|
||||||
|
| `tool-import` | Import tools via CSV/JSON/YAML (admin) | [Administration](/docs/handbook/administration) |
|
||||||
|
|
||||||
If you are missing a feature, the app shows an **upgrade notice** with a link
|
If you are missing a feature, the app shows an **upgrade notice** with a link
|
||||||
to the plan management.
|
to the plan management.
|
||||||
+1
-1
@@ -15,7 +15,7 @@ Ohne Eingabe zeigt die Palette:
|
|||||||
|
|
||||||
- **Zuletzt angesehen** — die letzten 5 Tools, die du besucht hast.
|
- **Zuletzt angesehen** — die letzten 5 Tools, die du besucht hast.
|
||||||
- **Navigation** — Tools durchsuchen, Tool hinzufügen, Analytics sowie
|
- **Navigation** — Tools durchsuchen, Tool hinzufügen, Analytics sowie
|
||||||
(abhängig von Berechtigungen) Watchlist, Papierkorb und Admin.
|
(abhängig von Berechtigungen) Merkliste, Papierkorb und Admin.
|
||||||
|
|
||||||
### Suche
|
### Suche
|
||||||
|
|
||||||
+3
-3
@@ -43,7 +43,7 @@ Mit **Filter zurücksetzen** bzw. **Alle entfernen** räumst du sie wieder auf.
|
|||||||
- **Ansicht wechseln:** Raster / Tabelle / Zeilen.
|
- **Ansicht wechseln:** Raster / Tabelle / Zeilen.
|
||||||
- **Dichte:** gemütlich / kompakt (Schieberegler).
|
- **Dichte:** gemütlich / kompakt (Schieberegler).
|
||||||
|
|
||||||
Deine Auswahl wird gespeichert — lokal im Browser und für angemeldete Nutzer:innen
|
Deine Auswahl wird gespeichert — lokal im Browser und für angemeldete Nutzer
|
||||||
zusätzlich serverseitig in den Präferenzen. Ansicht, Dichte, Suche, Filter und
|
zusätzlich serverseitig in den Präferenzen. Ansicht, Dichte, Suche, Filter und
|
||||||
Sortierung werden dabei in die URL übernommen, sodass du Ergebnisse teilen
|
Sortierung werden dabei in die URL übernommen, sodass du Ergebnisse teilen
|
||||||
kannst.
|
kannst.
|
||||||
@@ -54,12 +54,12 @@ In der Tabellenansicht sind die Spalten **Tool**, **Bewertung** und **Anzahl
|
|||||||
Bewertungen** sortierbar. Beim Überfahren einer Zeile erscheint eine Vorschau
|
Bewertungen** sortierbar. Beim Überfahren einer Zeile erscheint eine Vorschau
|
||||||
mit Bewertungsdetails, Tags und Mini-Balken.
|
mit Bewertungsdetails, Tags und Mini-Balken.
|
||||||
|
|
||||||
## Auswählen für Vergleich & Watchlist
|
## Auswählen für Vergleich & Merkliste
|
||||||
|
|
||||||
- Auf jeder Karte/Zeile findest du ein **Vergleichs-Icon**, mit dem du Tools zur
|
- Auf jeder Karte/Zeile findest du ein **Vergleichs-Icon**, mit dem du Tools zur
|
||||||
[Vergleichsleiste](/docs/handbook/vergleichen) hinzufügst.
|
[Vergleichsleiste](/docs/handbook/vergleichen) hinzufügst.
|
||||||
- Das **Lesezeichen-Icon** speichert Tools in deiner
|
- Das **Lesezeichen-Icon** speichert Tools in deiner
|
||||||
[Watchlist](/docs/handbook/watchlist) (nur mit dem entsprechenden Tarif).
|
[Merkliste](/docs/handbook/watchlist) (nur mit dem entsprechenden Tarif).
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
+9
-9
@@ -1,10 +1,10 @@
|
|||||||
|
|
||||||
# Watchlist
|
# Merkliste
|
||||||
|
|
||||||
Die **Watchlist** ist eine persönliche Favoritenliste. Tools darin kannst du
|
Die **Merkliste** ist eine persönliche Favoritenliste. Tools darin kannst du
|
||||||
jederzeit per Klick wieder aufrufen und vergleichen.
|
jederzeit per Klick wieder aufrufen und vergleichen.
|
||||||
|
|
||||||
> Die Watchlist ist ein **Premium-Feature** (Premium/Enterprise) und steht
|
> Die Merkliste ist ein **Premium-Feature** (Premium/Enterprise) und steht
|
||||||
> Admins immer zur Verfügung.
|
> Admins immer zur Verfügung.
|
||||||
|
|
||||||
## Voraussetzung
|
## Voraussetzung
|
||||||
@@ -17,18 +17,18 @@ beim Lesezeichen ein Hinweis auf den Tarifwechsel
|
|||||||
|
|
||||||
- Auf jeder Karte/Zeile im Bereich **Tools durchsuchen** findest du das
|
- Auf jeder Karte/Zeile im Bereich **Tools durchsuchen** findest du das
|
||||||
**Lesezeichen-Icon**.
|
**Lesezeichen-Icon**.
|
||||||
- Ein Klick speichert das Tool in deiner Watchlist — das Icon wird gefüllt.
|
- Ein Klick speichert das Tool in deiner Merkliste — das Icon wird gefüllt.
|
||||||
- Ein erneuter Klick entfernt es wieder.
|
- Ein erneuter Klick entfernt es wieder.
|
||||||
|
|
||||||
## Watchlist ansehen
|
## Merkliste ansehen
|
||||||
|
|
||||||
Öffne die Watchlist über das Benutzermenü oder die Seitenleiste. Sie zeigt alle
|
Öffne die Merkliste über das Benutzermenü oder die Seitenleiste. Sie zeigt alle
|
||||||
gespeicherten Tools als Karten. Das gefüllte Lesezeichen auf einer Karte
|
gespeicherten Tools als Karten. Das gefüllte Lesezeichen auf einer Karte
|
||||||
entfernt das Tool aus der Liste.
|
entfernt das Tool aus der Liste.
|
||||||
|
|
||||||
## Wo wird die Watchlist gespeichert?
|
## Wo wird die Merkliste gespeichert?
|
||||||
|
|
||||||
Die Watchlist ist eine Liste von Tool-IDs in deinen **Benutzerpräferenzen**.
|
Die Merkliste ist eine Liste von Tool-IDs in deinen **Benutzerpräferenzen**.
|
||||||
Damit ist sie geräteübergreifend mit deinem Konto verbunden.
|
Damit ist sie geräteübergreifend mit deinem Konto verbunden.
|
||||||
|
|
||||||
API-Referenz: [`GET /auth/me/watchlist`](/docs/reference/endpoints/auth#getMeWatchlist).
|
API-Referenz: [`GET /auth/me/watchlist`](/docs/reference/endpoints/auth#getMeMerkliste).
|
||||||
@@ -2206,6 +2206,78 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "ToolImportBody",
|
||||||
|
"description": "",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "format",
|
||||||
|
"type": {
|
||||||
|
"kind": "type",
|
||||||
|
"value": "string"
|
||||||
|
},
|
||||||
|
"required": false,
|
||||||
|
"description": "",
|
||||||
|
"constraints": "auto, csv, json, yaml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "delimiter",
|
||||||
|
"type": {
|
||||||
|
"kind": "type",
|
||||||
|
"value": "string"
|
||||||
|
},
|
||||||
|
"required": false,
|
||||||
|
"description": "",
|
||||||
|
"constraints": "auto, comma, semicolon, tab"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "data",
|
||||||
|
"type": {
|
||||||
|
"kind": "type",
|
||||||
|
"value": "string"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"description": "",
|
||||||
|
"constraints": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ToolImportResponse",
|
||||||
|
"description": "",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"name": "imported",
|
||||||
|
"type": {
|
||||||
|
"kind": "type",
|
||||||
|
"value": "integer"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"description": "",
|
||||||
|
"constraints": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "total",
|
||||||
|
"type": {
|
||||||
|
"kind": "type",
|
||||||
|
"value": "integer"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"description": "",
|
||||||
|
"constraints": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "errors",
|
||||||
|
"type": {
|
||||||
|
"kind": "array",
|
||||||
|
"value": "object"
|
||||||
|
},
|
||||||
|
"required": true,
|
||||||
|
"description": "",
|
||||||
|
"constraints": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ToolUpdate",
|
"name": "ToolUpdate",
|
||||||
"description": "",
|
"description": "",
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# v0.9.1 — Release Notes
|
||||||
|
|
||||||
|
**Datum:** 2026-08-05 · **Tag:** [`v0.9.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.1)
|
||||||
|
|
||||||
|
## Fixes & Verbesserungen
|
||||||
|
|
||||||
|
- **Dokumentation:** Release-Notizen werden wieder korrekt auf der Hilfe-Seite
|
||||||
|
angezeigt. Ein doppelter `releases/`-Pfad in der versionierten
|
||||||
|
Dokumentation lieferte zuvor eine leere Seite (404).
|
||||||
|
|
||||||
|
## API-Änderungen
|
||||||
|
|
||||||
|
- Keine.
|
||||||
|
|
||||||
|
## Betrieb / Upgrade
|
||||||
|
|
||||||
|
- **Migration:** keine. **Breaking Changes:** keine.
|
||||||
|
|
||||||
|
## Bekannte Einschränkungen
|
||||||
|
|
||||||
|
- Das Vergleichen war serverseitig auf 8 Tools begrenzt; wird in v0.9.2 auf 9
|
||||||
|
erhöht und im Client konsistent abgesichert.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- Commit: [`e66a332`](https://git.kubebase.de/admin/tool-evaluator/commit/e66a332)
|
||||||
|
- Tag: [`v0.9.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.1)
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# v0.9.1 — Release Notes
|
||||||
|
|
||||||
|
**Date:** 2026-08-05 · **Tag:** [`v0.9.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.1)
|
||||||
|
|
||||||
|
## Fixes & Polish
|
||||||
|
|
||||||
|
- **Documentation:** Release notes render correctly again on the help page. A
|
||||||
|
duplicated `releases/` path prefix in the versioned docs previously returned
|
||||||
|
an empty page (404).
|
||||||
|
|
||||||
|
## API Changes
|
||||||
|
|
||||||
|
- None.
|
||||||
|
|
||||||
|
## Operations / Upgrade
|
||||||
|
|
||||||
|
- **Migration:** none. **Breaking Changes:** none.
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
|
||||||
|
- Comparing was limited to 8 tools server-side; this is raised to 9 in v0.9.2
|
||||||
|
and consistently enforced in the client.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- Commit: [`e66a332`](https://git.kubebase.de/admin/tool-evaluator/commit/e66a332)
|
||||||
|
- Tag: [`v0.9.1`](https://git.kubebase.de/admin/tool-evaluator/releases/tag/v0.9.1)
|
||||||
+43
@@ -32,6 +32,49 @@ Zentraler Zugriff auf den Tool-Katalog.
|
|||||||
- **Massenaktion:** mehrere Tools auswählen und in den Papierkorb verschieben
|
- **Massenaktion:** mehrere Tools auswählen und in den Papierkorb verschieben
|
||||||
(Bestätigungsdialog; soft gelöschte Tools sind aus allen öffentlichen Ansichten
|
(Bestätigungsdialog; soft gelöschte Tools sind aus allen öffentlichen Ansichten
|
||||||
entfernt und können wiederhergestellt oder endgültig gelöscht werden).
|
entfernt und können wiederhergestellt oder endgültig gelöscht werden).
|
||||||
|
- **Importieren** (Premium): über die Schaltfläche **Importieren** oben rechts
|
||||||
|
können mehrere Tools gleichzeitig angelegt werden. Das Format wird automatisch
|
||||||
|
erkannt (CSV, JSON oder YAML); für CSV lässt sich der Trenner wählen
|
||||||
|
(automatisch, Komma, Semikolon oder Tabulator). Die Daten lassen sich direkt
|
||||||
|
ins Formular einfügen oder als Datei hochladen.
|
||||||
|
|
||||||
|
Unterstützte Felder: `name` (Pflicht), `description`, `category`, `websiteUrl`,
|
||||||
|
`iconUrl`, `features`, `tags` (`features`/`tags` sind mit `|` getrennte Listen).
|
||||||
|
|
||||||
|
**CSV-Beispiel:**
|
||||||
|
|
||||||
|
```csv
|
||||||
|
name;description;category;features;tags
|
||||||
|
Grafana;Observability- und Dashboard-Plattform;Monitoring;Dashboards|Alerts;devops
|
||||||
|
Prometheus;Zeitreihen-Datenbank;Monitoring;Metrics;devops
|
||||||
|
```
|
||||||
|
|
||||||
|
**JSON-Beispiel:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{ "name": "Grafana", "category": "Monitoring", "features": ["Dashboards"] },
|
||||||
|
{ "name": "Prometheus", "category": "Monitoring" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**YAML-Beispiel:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Grafana
|
||||||
|
category: Monitoring
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- name: Prometheus
|
||||||
|
category: Monitoring
|
||||||
|
```
|
||||||
|
|
||||||
|
Eine umfangreichere, fertig importierbare Beispieldatei liegt unter
|
||||||
|
`docs/examples/import-tools.yaml` (24 gängige Enterprise-Tools).
|
||||||
|
|
||||||
|
Beim Import werden einzelne fehlerhafte Zeilen übersprungen und mit Zeilennummer
|
||||||
|
aufgelistet; korrekte Zeilen werden trotzdem angelegt. Jeder Import erzeugt
|
||||||
|
Audit-Log-Einträge.
|
||||||
|
|
||||||
## Tab „Audit-Log"
|
## Tab „Audit-Log"
|
||||||
|
|
||||||
+43
@@ -32,6 +32,49 @@ Central access to the tool catalog.
|
|||||||
- **Bulk action:** select multiple tools and move them to the trash
|
- **Bulk action:** select multiple tools and move them to the trash
|
||||||
(confirmation dialog; soft-deleted tools are removed from all public views
|
(confirmation dialog; soft-deleted tools are removed from all public views
|
||||||
and can be restored or permanently deleted).
|
and can be restored or permanently deleted).
|
||||||
|
- **Import** (premium): via the **Import** button at the top right, multiple
|
||||||
|
tools can be created at once. The format is detected automatically (CSV,
|
||||||
|
JSON or YAML); for CSV the delimiter can be chosen (auto-detect, comma,
|
||||||
|
semicolon or tab). Data can be pasted directly into the form or uploaded
|
||||||
|
as a file.
|
||||||
|
|
||||||
|
Supported fields: `name` (required), `description`, `category`, `websiteUrl`,
|
||||||
|
`iconUrl`, `features`, `tags` (`features`/`tags` are `|`-separated lists).
|
||||||
|
|
||||||
|
**CSV example:**
|
||||||
|
|
||||||
|
```csv
|
||||||
|
name;description;category;features;tags
|
||||||
|
Grafana;Observability and dashboard platform;Monitoring;Dashboards|Alerts;devops
|
||||||
|
Prometheus;Time-series database;Monitoring;Metrics;devops
|
||||||
|
```
|
||||||
|
|
||||||
|
**JSON example:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{ "name": "Grafana", "category": "Monitoring", "features": ["Dashboards"] },
|
||||||
|
{ "name": "Prometheus", "category": "Monitoring" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**YAML example:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Grafana
|
||||||
|
category: Monitoring
|
||||||
|
features:
|
||||||
|
- Dashboards
|
||||||
|
- name: Prometheus
|
||||||
|
category: Monitoring
|
||||||
|
```
|
||||||
|
|
||||||
|
A larger, ready-to-import example file is located at
|
||||||
|
`docs/examples/import-tools.yaml` (24 common enterprise tools).
|
||||||
|
|
||||||
|
During import, individual faulty rows are skipped and listed with their row
|
||||||
|
number; correct rows are still created. Every import produces audit-log
|
||||||
|
entries.
|
||||||
|
|
||||||
## "Audit log" tab
|
## "Audit log" tab
|
||||||
|
|
||||||
+2
-2
@@ -6,7 +6,7 @@ Besuch bis zum Anlegen und Bewerten eines Tools.
|
|||||||
|
|
||||||
## 1. Anmelden
|
## 1. Anmelden
|
||||||
|
|
||||||
Die meisten Aktionen (Tool anlegen, bewerten, Watchlist, Vergleichen) erfordern
|
Die meisten Aktionen (Tool anlegen, bewerten, Merkliste, Vergleichen) erfordern
|
||||||
ein Konto. Klicke unten links auf **Anmelden**. Je nach Konfiguration der
|
ein Konto. Klicke unten links auf **Anmelden**. Je nach Konfiguration der
|
||||||
Instanz hast du zwei Möglichkeiten:
|
Instanz hast du zwei Möglichkeiten:
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ Siehe [Bewerten](/docs/handbook/bewerten).
|
|||||||
## 5. Weiterführend
|
## 5. Weiterführend
|
||||||
|
|
||||||
- [Tools vergleichen](/docs/handbook/vergleichen)
|
- [Tools vergleichen](/docs/handbook/vergleichen)
|
||||||
- [Watchlist](/docs/handbook/watchlist)
|
- [Merkliste](/docs/handbook/watchlist)
|
||||||
- [Analytics](/docs/handbook/analytics)
|
- [Analytics](/docs/handbook/analytics)
|
||||||
- [Pläne & Berechtigungen](/docs/handbook/plaene)
|
- [Pläne & Berechtigungen](/docs/handbook/plaene)
|
||||||
- [Administration](/docs/handbook/administration)
|
- [Administration](/docs/handbook/administration)
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
# Willkommen bei toolr
|
# Willkommen bei toolr
|
||||||
|
|
||||||
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
toolr ist eine Plattform zum **Entdecken, Bewerten und Vergleichen von
|
||||||
Entwicklungstools**. Nutzer:innen pflegen einen gemeinsamen Katalog von Tools,
|
Entwicklungstools**. Nutzer pflegen einen gemeinsamen Katalog von Tools,
|
||||||
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
vergeben Bewertungen (Nützlichkeit & Bedienbarkeit) und nutzen Statistiken, um
|
||||||
die richtige Wahl zu treffen.
|
die richtige Wahl zu treffen.
|
||||||
|
|
||||||
@@ -12,13 +12,14 @@ die richtige Wahl zu treffen.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
| **Tools durchsuchen** | Katalog filtern, sortieren und durchsuchen | Alle |
|
||||||
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
| **Tool anlegen** | Neues Tool mit Beschreibung, Kategorie, Features & Tags eintragen | Angemeldet |
|
||||||
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller:in oder Admin) | Angemeldet |
|
| **Tool bearbeiten/löschen** | Eigene Tools pflegen (Ersteller oder Admin) | Angemeldet |
|
||||||
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
| **Bewerten** | Nützlichkeit & Bedienbarkeit (1–5) plus Kommentar vergeben | Angemeldet |
|
||||||
| **Watchlist** | Tools als Favoriten speichern | Premium |
|
| **Merkliste** | Tools als Favoriten speichern | Premium |
|
||||||
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
| **Vergleichen** | Tools nebeneinander gegenüberstellen | Premium |
|
||||||
| **Kosten erfassen** | Lizenz- und Kostenmodelle je Tool eintragen | Premium |
|
| **Kosten erfassen** | Lizenz- und Kostenmodelle je Tool eintragen | Premium |
|
||||||
| **Analytics** | Statistiken, Top-Tools, Verteilungen | Alle |
|
| **Analytics** | Statistiken, Top-Tools, Verteilungen | Alle |
|
||||||
| **Papierkorb** | Soft-gelöschte Tools wiederherstellen oder endgültig löschen | Premium |
|
| **Papierkorb** | Soft-gelöschte Tools wiederherstellen oder endgültig löschen | Premium |
|
||||||
|
| **Import** | Mehrere Tools per CSV, JSON oder YAML anlegen | Admin (Premium) |
|
||||||
| **Admin** | Nutzerverwaltung, Audit-Log, Systeminformationen | Admin |
|
| **Admin** | Nutzerverwaltung, Audit-Log, Systeminformationen | Admin |
|
||||||
| **Redundanz** | Automatische Doppelungs-Erkennung | Admin |
|
| **Redundanz** | Automatische Doppelungs-Erkennung | Admin |
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ tools**. Users maintain a shared catalog of tools, submit ratings
|
|||||||
| **Record costs** | Enter license and cost models per tool | Premium |
|
| **Record costs** | Enter license and cost models per tool | Premium |
|
||||||
| **Analytics** | Statistics, top tools, distributions | Everyone |
|
| **Analytics** | Statistics, top tools, distributions | Everyone |
|
||||||
| **Trash** | Restore soft-deleted tools or delete them permanently | Premium |
|
| **Trash** | Restore soft-deleted tools or delete them permanently | Premium |
|
||||||
|
| **Import** | Create multiple tools via CSV, JSON or YAML | Admin (premium) |
|
||||||
| **Admin** | User management, audit log, system information | Admin |
|
| **Admin** | User management, audit log, system information | Admin |
|
||||||
| **Redundancy detection** | Automatic duplicate detection | Admin |
|
| **Redundancy detection** | Automatic duplicate detection | Admin |
|
||||||
|
|
||||||
+18
-18
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"slug": "index",
|
"slug": "index",
|
||||||
"file": "index.md",
|
"file": "index.de.md",
|
||||||
"title": "Überblick",
|
"title": "Überblick",
|
||||||
"order": 1,
|
"order": 1,
|
||||||
"fileEn": "index.en.md",
|
"fileEn": "index.en.md",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "getting-started",
|
"slug": "getting-started",
|
||||||
"file": "getting-started.md",
|
"file": "getting-started.de.md",
|
||||||
"title": "Erste Schritte",
|
"title": "Erste Schritte",
|
||||||
"order": 2,
|
"order": 2,
|
||||||
"fileEn": "getting-started.en.md",
|
"fileEn": "getting-started.en.md",
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "konto",
|
"slug": "konto",
|
||||||
"file": "konto.md",
|
"file": "konto.de.md",
|
||||||
"title": "Anmelden & Konto",
|
"title": "Anmelden & Konto",
|
||||||
"order": 3,
|
"order": 3,
|
||||||
"fileEn": "konto.en.md",
|
"fileEn": "konto.en.md",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tools-finden",
|
"slug": "tools-finden",
|
||||||
"file": "tools-finden.md",
|
"file": "tools-finden.de.md",
|
||||||
"title": "Tools finden & durchsuchen",
|
"title": "Tools finden & durchsuchen",
|
||||||
"order": 4,
|
"order": 4,
|
||||||
"fileEn": "tools-finden.en.md",
|
"fileEn": "tools-finden.en.md",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tool-anlegen",
|
"slug": "tool-anlegen",
|
||||||
"file": "tool-anlegen.md",
|
"file": "tool-anlegen.de.md",
|
||||||
"title": "Tool anlegen",
|
"title": "Tool anlegen",
|
||||||
"order": 5,
|
"order": 5,
|
||||||
"fileEn": "tool-anlegen.en.md",
|
"fileEn": "tool-anlegen.en.md",
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tool-bearbeiten",
|
"slug": "tool-bearbeiten",
|
||||||
"file": "tool-bearbeiten.md",
|
"file": "tool-bearbeiten.de.md",
|
||||||
"title": "Tool bearbeiten & löschen",
|
"title": "Tool bearbeiten & löschen",
|
||||||
"order": 6,
|
"order": 6,
|
||||||
"fileEn": "tool-bearbeiten.en.md",
|
"fileEn": "tool-bearbeiten.en.md",
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "bewerten",
|
"slug": "bewerten",
|
||||||
"file": "bewerten.md",
|
"file": "bewerten.de.md",
|
||||||
"title": "Bewerten",
|
"title": "Bewerten",
|
||||||
"order": 7,
|
"order": 7,
|
||||||
"fileEn": "bewerten.en.md",
|
"fileEn": "bewerten.en.md",
|
||||||
@@ -57,15 +57,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "watchlist",
|
"slug": "watchlist",
|
||||||
"file": "watchlist.md",
|
"file": "watchlist.de.md",
|
||||||
"title": "Watchlist",
|
"title": "Merkliste",
|
||||||
"order": 8,
|
"order": 8,
|
||||||
"fileEn": "watchlist.en.md",
|
"fileEn": "watchlist.en.md",
|
||||||
"titleEn": "Watchlist"
|
"titleEn": "Watchlist"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "vergleichen",
|
"slug": "vergleichen",
|
||||||
"file": "vergleichen.md",
|
"file": "vergleichen.de.md",
|
||||||
"title": "Vergleichen",
|
"title": "Vergleichen",
|
||||||
"order": 9,
|
"order": 9,
|
||||||
"fileEn": "vergleichen.en.md",
|
"fileEn": "vergleichen.en.md",
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "analytics",
|
"slug": "analytics",
|
||||||
"file": "analytics.md",
|
"file": "analytics.de.md",
|
||||||
"title": "Analytics",
|
"title": "Analytics",
|
||||||
"order": 10,
|
"order": 10,
|
||||||
"fileEn": "analytics.en.md",
|
"fileEn": "analytics.en.md",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "plaene",
|
"slug": "plaene",
|
||||||
"file": "plaene.md",
|
"file": "plaene.de.md",
|
||||||
"title": "Pläne & Berechtigungen",
|
"title": "Pläne & Berechtigungen",
|
||||||
"order": 11,
|
"order": 11,
|
||||||
"fileEn": "plaene.en.md",
|
"fileEn": "plaene.en.md",
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "kosten",
|
"slug": "kosten",
|
||||||
"file": "kosten.md",
|
"file": "kosten.de.md",
|
||||||
"title": "Kosten erfassen",
|
"title": "Kosten erfassen",
|
||||||
"order": 12,
|
"order": 12,
|
||||||
"fileEn": "kosten.en.md",
|
"fileEn": "kosten.en.md",
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "administration",
|
"slug": "administration",
|
||||||
"file": "administration.md",
|
"file": "administration.de.md",
|
||||||
"title": "Administration",
|
"title": "Administration",
|
||||||
"order": 13,
|
"order": 13,
|
||||||
"fileEn": "administration.en.md",
|
"fileEn": "administration.en.md",
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "redundanz",
|
"slug": "redundanz",
|
||||||
"file": "redundanz.md",
|
"file": "redundanz.de.md",
|
||||||
"title": "Redundanz-Dashboard",
|
"title": "Redundanz-Dashboard",
|
||||||
"order": 14,
|
"order": 14,
|
||||||
"fileEn": "redundanz.en.md",
|
"fileEn": "redundanz.en.md",
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "papierkorb",
|
"slug": "papierkorb",
|
||||||
"file": "papierkorb.md",
|
"file": "papierkorb.de.md",
|
||||||
"title": "Papierkorb",
|
"title": "Papierkorb",
|
||||||
"order": 15,
|
"order": 15,
|
||||||
"fileEn": "papierkorb.en.md",
|
"fileEn": "papierkorb.en.md",
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "tastatur",
|
"slug": "tastatur",
|
||||||
"file": "tastatur.md",
|
"file": "tastatur.de.md",
|
||||||
"title": "Tastenkürzel & Kommandopalette",
|
"title": "Tastenkürzel & Kommandopalette",
|
||||||
"order": 16,
|
"order": 16,
|
||||||
"fileEn": "tastatur.en.md",
|
"fileEn": "tastatur.en.md",
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"slug": "datenmodell",
|
"slug": "datenmodell",
|
||||||
"file": "datenmodell.md",
|
"file": "datenmodell.de.md",
|
||||||
"title": "Datenmodell",
|
"title": "Datenmodell",
|
||||||
"order": 17,
|
"order": 17,
|
||||||
"fileEn": "datenmodell.en.md",
|
"fileEn": "datenmodell.en.md",
|
||||||
@@ -22,7 +22,7 @@ Der aktive Modus steht im Endpunkt
|
|||||||
Dein Profil (Avatar, Name, E-Mail, Tarif) siehst du unten links im
|
Dein Profil (Avatar, Name, E-Mail, Tarif) siehst du unten links im
|
||||||
Benutzermenü. Dort stehen dir folgende Aktionen zur Verfügung:
|
Benutzermenü. Dort stehen dir folgende Aktionen zur Verfügung:
|
||||||
|
|
||||||
- **Watchlist** — deine gespeicherten Tools (nur mit dem entsprechenden Tarif).
|
- **Merkliste** — deine gespeicherten Tools (nur mit dem entsprechenden Tarif).
|
||||||
- **Papierkorb** — wiederherstellbare, gelöschte Tools (Premium/Enterprise).
|
- **Papierkorb** — wiederherstellbare, gelöschte Tools (Premium/Enterprise).
|
||||||
- **Passwort ändern** — für lokale Konten direkt in toolr; für OIDC-Konten wird
|
- **Passwort ändern** — für lokale Konten direkt in toolr; für OIDC-Konten wird
|
||||||
die Passwortverwaltung im Identitätsanbieter angeboten.
|
die Passwortverwaltung im Identitätsanbieter angeboten.
|
||||||
@@ -47,7 +47,7 @@ API-Referenz: [`POST /auth/me/password`](/docs/reference/endpoints/auth#changeMy
|
|||||||
- die **Listenansicht** und **Dichte** im Bereich Tools durchsuchen anpassen
|
- die **Listenansicht** und **Dichte** im Bereich Tools durchsuchen anpassen
|
||||||
(siehe [Tools finden & durchsuchen](/docs/handbook/tools-finden)).
|
(siehe [Tools finden & durchsuchen](/docs/handbook/tools-finden)).
|
||||||
|
|
||||||
Deine Präferenzen (inkl. Watchlist) werden im Endpunkt
|
Deine Präferenzen (inkl. Merkliste) werden im Endpunkt
|
||||||
[`GET /auth/me/preferences`](/docs/reference/endpoints/auth#getMePreferences)
|
[`GET /auth/me/preferences`](/docs/reference/endpoints/auth#getMePreferences)
|
||||||
gespeichert und über [`PUT /auth/me/preferences`](/docs/reference/endpoints/auth#updateMePreferences)
|
gespeichert und über [`PUT /auth/me/preferences`](/docs/reference/endpoints/auth#updateMePreferences)
|
||||||
aktualisiert.
|
aktualisiert.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user