From 819850142774f6ebc999ff8d68440aeced1b0aa0 Mon Sep 17 00:00:00 2001 From: Rup Sarmah <84681565+sarmah-rup@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:47:12 +0530 Subject: [PATCH 1/6] fix(importers): keep Checkly followRedirects on imported monitors (#2834) --- packages/importers/src/providers/checkly/mapper.test.ts | 5 +++++ packages/importers/src/providers/checkly/mapper.ts | 1 + packages/services/src/import/phase-writers.ts | 2 ++ 3 files changed, 8 insertions(+) diff --git a/packages/importers/src/providers/checkly/mapper.test.ts b/packages/importers/src/providers/checkly/mapper.test.ts index f7123a6b..5c32a5e6 100644 --- a/packages/importers/src/providers/checkly/mapper.test.ts +++ b/packages/importers/src/providers/checkly/mapper.test.ts @@ -114,6 +114,11 @@ describe("mapCheck", () => { expect(m.active).toBe(false); expect(m.method).toBe("POST"); }); + + test("carries over the check's followRedirects setting", () => { + expect(mapCheck(MOCK_CHECKS[0], 1).followRedirects).toBe(true); + expect(mapCheck(MOCK_CHECKS[3], 1).followRedirects).toBe(false); + }); }); describe("deriveSlug", () => { diff --git a/packages/importers/src/providers/checkly/mapper.ts b/packages/importers/src/providers/checkly/mapper.ts index 46da5d97..87102d6a 100644 --- a/packages/importers/src/providers/checkly/mapper.ts +++ b/packages/importers/src/providers/checkly/mapper.ts @@ -125,6 +125,7 @@ export function mapCheck(check: ChecklyCheck, workspaceId: number) { headers, body: req?.body ?? "", method: mapMethod(req?.method ?? "GET"), + followRedirects: req?.followRedirects ?? true, // Checkly maxResponseTime is the hard timeout (ms); default to 45s. timeout: check.maxResponseTime ?? 45000, sourceMonitorGroupId: check.groupId, diff --git a/packages/services/src/import/phase-writers.ts b/packages/services/src/import/phase-writers.ts index 8122d196..6ab1ef1c 100644 --- a/packages/services/src/import/phase-writers.ts +++ b/packages/services/src/import/phase-writers.ts @@ -726,6 +726,7 @@ export async function writeMonitorsPhase( body: string; method: string; timeout: number; + followRedirects?: boolean; sourceMonitorGroupId: string | null; }; @@ -793,6 +794,7 @@ export async function writeMonitorsPhase( | "CONNECT" | "OPTIONS", timeout: data.timeout, + followRedirects: data.followRedirects, }) .returning(); -- 2.51.2 From 0d88ea618a7aa985a7d4828c2a602411d892c6e9 Mon Sep 17 00:00:00 2001 From: AArslane Date: Fri, 2 Oct 2026 09:22:36 +0200 Subject: [PATCH 2/6] fix(web): don't repeat the provider in external component names (#2815) Component pages built their display name as `${service.name} ${component.name}`, so a Zoom component already named "Zoom AI" rendered as "Zoom Zoom AI" in the page title, og/twitter title, H1, lead answer, report-issue block, JSON-LD (WebPage name, FAQ question) and the OG image. Add getComponentFullName() and use it in all of those places. The provider is only skipped when the component name already starts with it followed by a space (or equals it), case-insensitively. "Zoom" + "Web SDK" still yields "Zoom Web SDK", and "Zoomify" / "Rooms for Zoom" keep the prefix. Names are trimmed and inner whitespace collapsed; an empty name falls back to the other. URLs, canonicals, slugs and source data are unchanged. Co-authored-by: Claude Sonnet 5.5 --- .../[id]/[component]/component-detail.tsx | 16 +++--- .../status/[id]/[component]/page.tsx | 7 ++- .../src/app/(landing)/status/utils.test.ts | 52 +++++++++++++++++++ apps/web/src/app/(landing)/status/utils.ts | 16 ++++++ .../src/app/api/og/external-service/route.tsx | 7 +-- 5 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 apps/web/src/app/(landing)/status/utils.test.ts diff --git a/apps/web/src/app/(landing)/status/[id]/[component]/component-detail.tsx b/apps/web/src/app/(landing)/status/[id]/[component]/component-detail.tsx index ccb63411..6023623c 100644 --- a/apps/web/src/app/(landing)/status/[id]/[component]/component-detail.tsx +++ b/apps/web/src/app/(landing)/status/[id]/[component]/component-detail.tsx @@ -18,7 +18,7 @@ import { ContentBoxTitle, } from "../../../content-box"; import { ExternalServicePill } from "../../external-service-pill"; -import { formatRelative } from "../../utils"; +import { formatRelative, getComponentFullName } from "../../utils"; import { HistoryBars } from "../history-bars"; import { ReportIssue } from "../report-issue"; @@ -77,18 +77,19 @@ function formatTimestamp(value: string | null | undefined): string | null { function jsonLd(args: { serviceName: string; componentName: string; + fullName: string; serviceUrl: string; componentUrl: string; answer: string; }) { return createJsonLDGraph([ getJsonLDWebPage({ - name: `${args.serviceName} ${args.componentName} Status`, + name: `${args.fullName} Status`, url: args.componentUrl, }), getJsonLDFAQPage([ { - question: `Is ${args.serviceName} ${args.componentName} down?`, + question: `Is ${args.fullName} down?`, answer: args.answer, }, ]), @@ -154,7 +155,7 @@ export function ComponentDetail({ if (!data.found || !data.service || !data.component) return null; const { service, component, history, incidents, overlayIncidents } = data; - const fullName = `${service.name} ${component.name}`; + const fullName = getComponentFullName(service.name, component.name); const answer = answerFor({ fullName, indicator: component.indicator, @@ -167,6 +168,7 @@ export function ComponentDetail({ const ld = jsonLd({ serviceName: service.name, componentName: component.name, + fullName, serviceUrl, componentUrl, answer, @@ -176,9 +178,7 @@ export function ComponentDetail({
-

- Is {service.name} {component.name} down? -

+

Is {fullName} down?

{answer} Below you'll find the live {component.name} status, uptime over the last {days} days, and recent incidents affecting {component.name}. @@ -214,7 +214,7 @@ export function ComponentDetail({

{component.reporters > 0 ? ( diff --git a/apps/web/src/app/(landing)/status/[id]/[component]/page.tsx b/apps/web/src/app/(landing)/status/[id]/[component]/page.tsx index 5e9e139a..fbffb6dc 100644 --- a/apps/web/src/app/(landing)/status/[id]/[component]/page.tsx +++ b/apps/web/src/app/(landing)/status/[id]/[component]/page.tsx @@ -18,6 +18,7 @@ import { ContentBoxDescription, ContentBoxTitle, } from "../../../content-box"; +import { getComponentFullName } from "../../utils"; import { ComponentDetail } from "./component-detail"; export const dynamic = "force-dynamic"; @@ -38,7 +39,7 @@ export async function generateMetadata(args: { return { ...defaultMetadata, title: "Not Found" }; } - const fullName = `${service.name} ${component.name}`; + const fullName = getComponentFullName(service.name, component.name); const title = `Is ${fullName} Down? ${fullName} Status & History`; const description = `Is ${component.name} (${service.name}) down right now? Check the live status, uptime over the last ${HISTORY_DAYS} days, and recent incidents for ${component.name} tracked by OpenStatus.`; const canonicalUrl = `${BASE_URL}/status/${service.slug}/${component.slug}`; @@ -77,6 +78,8 @@ export default async function Page(args: { params: Promise }) { permanentRedirect(`/status/${service.slug}/${component.slug}`); } + const fullName = getComponentFullName(service.name, component.name); + await api.externalService.component.prefetch({ serviceSlug: service.slug, componentSlug: component.slug, @@ -100,7 +103,7 @@ export default async function Page(args: { params: Promise }) { fallback={

- Loading {service.name} {component.name} status… + Loading {fullName} status…

} diff --git a/apps/web/src/app/(landing)/status/utils.test.ts b/apps/web/src/app/(landing)/status/utils.test.ts new file mode 100644 index 00000000..7339b146 --- /dev/null +++ b/apps/web/src/app/(landing)/status/utils.test.ts @@ -0,0 +1,52 @@ +import { expect } from "@std/expect"; +import { describe, test } from "@std/testing/bdd"; + +import { getComponentFullName } from "./utils"; + +describe("getComponentFullName", () => { + test("does not repeat the provider already in the component name", () => { + expect(getComponentFullName("Zoom", "Zoom AI")).toBe("Zoom AI"); + }); + + test("prefixes the provider when the component name lacks it", () => { + expect(getComponentFullName("Zoom", "Web SDK")).toBe("Zoom Web SDK"); + }); + + test("matches the provider prefix case-insensitively", () => { + expect(getComponentFullName("Zoom", "zoom Chat")).toBe("zoom Chat"); + }); + + test("component equal to the provider name", () => { + expect(getComponentFullName("Zoom", "Zoom")).toBe("Zoom"); + }); + + test("requires a word boundary after the provider name", () => { + expect(getComponentFullName("Zoom", "Zoomify")).toBe("Zoom Zoomify"); + }); + + test("keeps the provider name when it appears later", () => { + expect(getComponentFullName("Zoom", "Rooms for Zoom")).toBe( + "Zoom Rooms for Zoom", + ); + }); + + test("trims surrounding whitespace", () => { + expect(getComponentFullName(" Zoom ", " Zoom AI ")).toBe("Zoom AI"); + expect(getComponentFullName(" Zoom", "Web SDK ")).toBe("Zoom Web SDK"); + }); + + test("collapses inner whitespace runs", () => { + expect(getComponentFullName("Zoom", "Zoom AI")).toBe("Zoom AI"); + expect(getComponentFullName("Zoom", "Zoom\tAI")).toBe("Zoom AI"); + expect(getComponentFullName("Zoom Video", "Web SDK")).toBe( + "Zoom Video Web SDK", + ); + }); + + test("falls back to the non-empty name", () => { + expect(getComponentFullName("Zoom", "")).toBe("Zoom"); + expect(getComponentFullName("Zoom", " ")).toBe("Zoom"); + expect(getComponentFullName("", "Zoom AI")).toBe("Zoom AI"); + expect(getComponentFullName(" ", "")).toBe(""); + }); +}); diff --git a/apps/web/src/app/(landing)/status/utils.ts b/apps/web/src/app/(landing)/status/utils.ts index bdcfd5d2..c433d6d4 100644 --- a/apps/web/src/app/(landing)/status/utils.ts +++ b/apps/web/src/app/(landing)/status/utils.ts @@ -17,6 +17,22 @@ export function isStale(fetchedAtMs: number): boolean { return Date.now() - fetchedAtMs > STALE_THRESHOLD_MS; } +// Upstream component names often already carry the provider ("Zoom AI" on +// Zoom), so prefixing blindly yields "Zoom Zoom AI". +export function getComponentFullName( + serviceName: string, + componentName: string, +): string { + const service = serviceName.trim().replace(/\s+/g, " "); + const component = componentName.trim().replace(/\s+/g, " "); + if (!component) return service; + if (!service) return component; + const lower = component.toLowerCase(); + const prefix = service.toLowerCase(); + if (lower === prefix || lower.startsWith(`${prefix} `)) return component; + return `${service} ${component}`; +} + // Natural-language answer to "Is down?", used both as on-page lead copy // and as the FAQPage answer in JSON-LD. Mirrors getPillStyle semantics. export function getStatusAnswer(args: { diff --git a/apps/web/src/app/api/og/external-service/route.tsx b/apps/web/src/app/api/og/external-service/route.tsx index d188b779..986ac0ab 100644 --- a/apps/web/src/app/api/og/external-service/route.tsx +++ b/apps/web/src/app/api/og/external-service/route.tsx @@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises"; import { ImageResponse } from "next/og"; -import { isStale } from "../../../(landing)/status/utils"; +import { getComponentFullName, isStale } from "../../../(landing)/status/utils"; import { getComponentEscalation, getServiceEscalation, @@ -133,6 +133,7 @@ export async function GET(req: Request) { if (componentResult?.service && componentResult.component) { const { service, component } = componentResult; isDetail = true; + const fullName = getComponentFullName(service.name, component.name); const esc = await getComponentEscalation({ serviceId: service.id, componentId: component.id, @@ -145,8 +146,8 @@ export async function GET(req: Request) { category = content.label; categoryDot = content.bg; title = esc.escalated - ? `Users reporting issues with ${service.name} ${component.name}` - : `Is ${service.name} ${component.name} down?`; + ? `Users reporting issues with ${fullName}` + : `Is ${fullName} down?`; description = ""; footer = `${FOOTER}/${service.slug}/${component.slug}`; } else { -- 2.51.2 From a41c8a4ea90d7f95a661e44222c1006c1eb2e241 Mon Sep 17 00:00:00 2001 From: Maximilian Kaske <56969857+mxkaske@users.noreply.github.com> Date: Fri, 2 Oct 2026 09:39:55 +0200 Subject: [PATCH 3/6] fix: date-time picker (#2836) * fix: date-time picker * fix: format * fix: review * fix: format --- .../components/common/date-time-picker.tsx | 122 ++++++++++ .../src/components/content/property-list.tsx | 18 ++ .../src/components/forms/incident/form.tsx | 18 +- .../src/components/forms/maintenance/form.tsx | 222 +++--------------- .../forms/status-report-update/form.tsx | 110 +-------- .../components/forms/status-report/form.tsx | 111 +-------- .../components/incidents/declare-from-row.tsx | 5 +- .../maintenances/maintenance-properties.tsx | 63 +++-- .../status-reports/status-report-composer.tsx | 28 +-- 9 files changed, 242 insertions(+), 455 deletions(-) create mode 100644 apps/dashboard/src/components/common/date-time-picker.tsx diff --git a/apps/dashboard/src/components/common/date-time-picker.tsx b/apps/dashboard/src/components/common/date-time-picker.tsx new file mode 100644 index 00000000..0ab2157a --- /dev/null +++ b/apps/dashboard/src/components/common/date-time-picker.tsx @@ -0,0 +1,122 @@ +"use client"; + +import { Calendar as CalendarIcon, Clock } from "@openstatus/icons"; +import { Button } from "@openstatus/ui/components/ui/button"; +import { Calendar } from "@openstatus/ui/components/ui/calendar"; +import { Input } from "@openstatus/ui/components/ui/input"; +import { Label } from "@openstatus/ui/components/ui/label"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@openstatus/ui/components/ui/popover"; +import { useIsMobile } from "@openstatus/ui/hooks/use-mobile"; +import { cn } from "@openstatus/ui/lib/utils"; +import { format, startOfDay } from "date-fns"; +import { useId } from "react"; + +type DateTimePickerProps = { + value: Date; + onChange: (date: Date) => void; + /** Bounds, inclusive; a picked time is clamped into them. */ + min?: Date; + max?: Date; +} & Omit, "value" | "onChange">; + +/** + * Calendar + time field in a popover. The time input is uncontrolled: a + * controlled one gets its value attribute rewritten per keystroke and WebKit + * then drops the focused segment. It only follows `value` on open, so an + * external change while the popover is open is not reflected in it. + */ +export function DateTimePicker({ + value, + onChange, + min, + max, + className, + size = "sm", + ...props +}: DateTimePickerProps) { + const mobile = useIsMobile(); + const id = useId(); + + /** Clamps into the bounds and reports a change; returns what was applied. */ + function commit(next: Date) { + if (Number.isNaN(next.getTime())) return null; + const clamped = min && next < min ? min : max && next > max ? max : next; + if (clamped.getTime() !== value.getTime()) onChange(clamped); + return clamped; + } + + return ( + + + + + + { + if (!day) return; + const next = new Date(day); + next.setHours( + value.getHours(), + value.getMinutes(), + value.getSeconds(), + value.getMilliseconds(), + ); + commit(next); + }} + disabled={(day) => + (min ? day < startOfDay(min) : false) || (max ? day > max : false) + } + initialFocus + /> +
+ +
+ { + // "" while a segment is cleared + if (!e.target.value) return; + const [hours, minutes] = e.target.value.split(":").map(Number); + const next = new Date(value); + next.setHours(hours, minutes); + const applied = commit(next); + // show the clamped time instead of what was typed + if (applied && applied.getTime() !== next.getTime()) { + e.target.value = format(applied, "HH:mm"); + } + }} + /> +
+
+
+
+
+
+ ); +} diff --git a/apps/dashboard/src/components/content/property-list.tsx b/apps/dashboard/src/components/content/property-list.tsx index 7cc2ebdf..1f07b966 100644 --- a/apps/dashboard/src/components/content/property-list.tsx +++ b/apps/dashboard/src/components/content/property-list.tsx @@ -3,6 +3,7 @@ import { Input } from "@openstatus/ui/components/ui/input"; import { SelectTrigger } from "@openstatus/ui/components/ui/select"; import { cn } from "@openstatus/ui/lib/utils"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { Link } from "@/components/common/link"; export function PropertyList({ @@ -136,3 +137,20 @@ export function PropertyInput({ /> ); } + +export function PropertyDateTimePicker({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} diff --git a/apps/dashboard/src/components/forms/incident/form.tsx b/apps/dashboard/src/components/forms/incident/form.tsx index 9e01685b..3ddaa962 100644 --- a/apps/dashboard/src/components/forms/incident/form.tsx +++ b/apps/dashboard/src/components/forms/incident/form.tsx @@ -28,6 +28,7 @@ import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { Link } from "@/components/common/link"; import { FormCardContent, @@ -35,7 +36,6 @@ import { } from "@/components/forms/form-card"; import { useFormSheetDirty } from "@/components/forms/form-sheet"; import { personName, severityConfig } from "@/data/managed-incidents.client"; -import { formatDateForInput } from "@/lib/formatter"; import { useTRPC } from "@/lib/trpc/client"; import { errorMessage } from "@/lib/trpc/error"; @@ -47,10 +47,9 @@ const schema = z.object({ summary: z.string().max(4000), commanderId: z.string(), startedAt: z - .string() - .min(1, "Start time is required.") + .date() .refine( - (value) => new Date(value) <= new Date(), + (value) => value <= new Date(), "Start time cannot be in the future.", ), statusReportId: z.string(), @@ -96,7 +95,7 @@ export function FormDeclareIncident({ // user.get is prefetched in the dashboard layout, so it is hydrated // before the sheet can mount and the default is never NONE for members. commanderId: user ? String(user.id) : NONE, - startedAt: formatDateForInput(new Date()), + startedAt: new Date(), statusReportId: NONE, openSlackChannel: slack === "ready", ...defaultValues, @@ -120,7 +119,7 @@ export function FormDeclareIncident({ summary: values.summary || undefined, commanderId: values.commanderId === NONE ? null : Number(values.commanderId), - startedAt: new Date(values.startedAt), + startedAt: values.startedAt, statusReportId: values.statusReportId === NONE ? undefined @@ -239,7 +238,12 @@ export function FormDeclareIncident({ Started at - + When the impact began. Set it in the past to record an diff --git a/apps/dashboard/src/components/forms/maintenance/form.tsx b/apps/dashboard/src/components/forms/maintenance/form.tsx index a0ab4655..b61acbf7 100644 --- a/apps/dashboard/src/components/forms/maintenance/form.tsx +++ b/apps/dashboard/src/components/forms/maintenance/form.tsx @@ -1,9 +1,6 @@ "use client"; import { zodResolver } from "@hookform/resolvers/zod"; -import { Calendar as CalendarIcon, Clock } from "@openstatus/icons"; -import { Button } from "@openstatus/ui/components/ui/button"; -import { Calendar } from "@openstatus/ui/components/ui/calendar"; import { Checkbox } from "@openstatus/ui/components/ui/checkbox"; import { Form, @@ -16,25 +13,20 @@ import { } from "@openstatus/ui/components/ui/form"; import { Input } from "@openstatus/ui/components/ui/input"; import { Label } from "@openstatus/ui/components/ui/label"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@openstatus/ui/components/ui/popover"; import { TabsContent } from "@openstatus/ui/components/ui/tabs"; import { TabsList, TabsTrigger } from "@openstatus/ui/components/ui/tabs"; import { Tabs } from "@openstatus/ui/components/ui/tabs"; import { Textarea } from "@openstatus/ui/components/ui/textarea"; -import { useIsMobile } from "@openstatus/ui/hooks/use-mobile"; import { cn } from "@openstatus/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { isTRPCClientError } from "@trpc/client"; -import { addDays, format } from "date-fns"; +import { addDays } from "date-fns"; import React, { useTransition } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { EmptyStateContainer, EmptyStateTitle, @@ -80,7 +72,6 @@ export function FormMaintenance({ }) { const trpc = useTRPC(); const { data: workspace } = useQuery(trpc.workspace.get.queryOptions()); - const mobile = useIsMobile(); const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const form = useForm({ resolver: zodResolver(schema), @@ -158,101 +149,25 @@ export function FormMaintenance({ render={({ field }) => ( Start Date - - - - - - - - { - if (!selectedDate) return; - - const newDate = new Date(selectedDate); - newDate.setHours( - field.value.getHours(), - field.value.getMinutes(), - field.value.getSeconds(), - field.value.getMilliseconds(), + + { + // a start moved past the end drags the end along, + // keeping the duration + if (watchEndDate && date > watchEndDate) { + const duration = + watchEndDate.getTime() - field.value.getTime(); + form.setValue( + "endDate", + new Date(date.getTime() + duration), ); - field.onChange(newDate); - - // NOTE: if end date is before start date, set it to the same day as the start date - if (watchEndDate && newDate > watchEndDate) { - form.setValue("endDate", newDate); - } - }} - initialFocus - /> -
-
- -
- { - try { - const timeValue = e.target.value; - if (!timeValue || !field.value) return; - - const [hours, minutes, seconds] = timeValue - .split(":") - .map(Number); - - const newDate = new Date(field.value); - newDate.setHours( - hours, - minutes, - seconds || 0, - 0, - ); - - field.onChange(newDate); - } catch (error) { - console.error(error); - } - }} - /> -
-
-
-
-
-
-
+ } + field.onChange(date); + }} + /> + When the maintenance starts. Shown in your timezone ( @@ -277,96 +192,13 @@ export function FormMaintenance({ render={({ field }) => ( End Date - - - - - - - - { - if (!selectedDate) return; - - const newDate = new Date(selectedDate); - newDate.setHours( - field.value.getHours(), - field.value.getMinutes(), - field.value.getSeconds(), - field.value.getMilliseconds(), - ); - field.onChange(newDate); - }} - initialFocus - /> -
-
- -
- { - try { - const timeValue = e.target.value; - if (!timeValue || !field.value) return; - - const [hours, minutes, seconds] = timeValue - .split(":") - .map(Number); - - const newDate = new Date(field.value); - newDate.setHours( - hours, - minutes, - seconds || 0, - 0, - ); - - field.onChange(newDate); - } catch (error) { - console.error(error); - } - }} - /> -
-
-
-
-
-
-
+ + + When the maintenance ends. Shown in your timezone ( diff --git a/apps/dashboard/src/components/forms/status-report-update/form.tsx b/apps/dashboard/src/components/forms/status-report-update/form.tsx index 94e821c4..6a26bd54 100644 --- a/apps/dashboard/src/components/forms/status-report-update/form.tsx +++ b/apps/dashboard/src/components/forms/status-report-update/form.tsx @@ -3,9 +3,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { pageComponentImpact } from "@openstatus/db/src/schema/page_components/constants"; import { statusReportStatus } from "@openstatus/db/src/schema/status_reports/constants"; -import { Calendar as CalendarIcon, Clock } from "@openstatus/icons"; -import { Button } from "@openstatus/ui/components/ui/button"; -import { Calendar } from "@openstatus/ui/components/ui/calendar"; import { Checkbox } from "@openstatus/ui/components/ui/checkbox"; import { Form, @@ -16,13 +13,7 @@ import { FormLabel, FormMessage, } from "@openstatus/ui/components/ui/form"; -import { Input } from "@openstatus/ui/components/ui/input"; import { Label } from "@openstatus/ui/components/ui/label"; -import { - PopoverContent, - PopoverTrigger, -} from "@openstatus/ui/components/ui/popover"; -import { Popover } from "@openstatus/ui/components/ui/popover"; import { Select, SelectContent, @@ -34,16 +25,15 @@ import { TabsContent } from "@openstatus/ui/components/ui/tabs"; import { TabsList, TabsTrigger } from "@openstatus/ui/components/ui/tabs"; import { Tabs } from "@openstatus/ui/components/ui/tabs"; import { Textarea } from "@openstatus/ui/components/ui/textarea"; -import { useIsMobile } from "@openstatus/ui/hooks/use-mobile"; import { cn } from "@openstatus/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { isTRPCClientError } from "@trpc/client"; -import { format } from "date-fns"; import React, { useTransition } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { ProcessMessage } from "@/components/content/process-message"; import { FormCardContent, @@ -88,7 +78,6 @@ export function FormStatusReportUpdate({ }) { const trpc = useTRPC(); const { data: workspace } = useQuery(trpc.workspace.get.queryOptions()); - const mobile = useIsMobile(); const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const form = useForm({ resolver: zodResolver(schema), @@ -202,94 +191,15 @@ export function FormStatusReportUpdate({ render={({ field }) => ( Date - - - - - - - - { - if (!selectedDate) return; - const newDate = new Date(selectedDate); - newDate.setHours( - field.value.getHours(), - field.value.getMinutes(), - field.value.getSeconds(), - field.value.getMilliseconds(), - ); - field.onChange(newDate); - }} - disabled={(date) => - date > new Date() || date < new Date("1900-01-01") - } - initialFocus - /> -
-
- -
- { - try { - const timeValue = e.target.value; - if (!timeValue || !field.value) return; - - const [hours, minutes, seconds] = timeValue - .split(":") - .map(Number); - - const newDate = new Date(field.value); - newDate.setHours( - hours, - minutes, - seconds || 0, - 0, - ); - - field.onChange(newDate); - } catch (error) { - console.error(error); - } - }} - /> -
-
-
-
-
-
-
+ + + When the status report was created. Shown in your timezone ( diff --git a/apps/dashboard/src/components/forms/status-report/form.tsx b/apps/dashboard/src/components/forms/status-report/form.tsx index bf769987..b309e8da 100644 --- a/apps/dashboard/src/components/forms/status-report/form.tsx +++ b/apps/dashboard/src/components/forms/status-report/form.tsx @@ -3,9 +3,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { pageComponentImpact } from "@openstatus/db/src/schema/page_components/constants"; import { statusReportStatus } from "@openstatus/db/src/schema/status_reports/constants"; -import { Calendar as CalendarIcon, Clock } from "@openstatus/icons"; -import { Button } from "@openstatus/ui/components/ui/button"; -import { Calendar } from "@openstatus/ui/components/ui/calendar"; import { Checkbox } from "@openstatus/ui/components/ui/checkbox"; import { Form, @@ -18,11 +15,6 @@ import { } from "@openstatus/ui/components/ui/form"; import { Input } from "@openstatus/ui/components/ui/input"; import { Label } from "@openstatus/ui/components/ui/label"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@openstatus/ui/components/ui/popover"; import { Select, SelectContent, @@ -34,16 +26,15 @@ import { TabsContent } from "@openstatus/ui/components/ui/tabs"; import { TabsList, TabsTrigger } from "@openstatus/ui/components/ui/tabs"; import { Tabs } from "@openstatus/ui/components/ui/tabs"; import { Textarea } from "@openstatus/ui/components/ui/textarea"; -import { useIsMobile } from "@openstatus/ui/hooks/use-mobile"; import { cn } from "@openstatus/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { isTRPCClientError } from "@trpc/client"; -import { format } from "date-fns"; import React, { useTransition } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { EmptyStateContainer, EmptyStateTitle, @@ -102,7 +93,6 @@ export function FormStatusReport({ }) { const trpc = useTRPC(); const { data: workspace } = useQuery(trpc.workspace.get.queryOptions()); - const mobile = useIsMobile(); const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; const form = useForm({ resolver: zodResolver(defaultValues ? updateSchema : schema), @@ -226,96 +216,15 @@ export function FormStatusReport({ render={({ field }) => ( Date - - - - - - - - { - if (!selectedDate) return; - const newDate = new Date(selectedDate); - newDate.setHours( - field.value.getHours(), - field.value.getMinutes(), - field.value.getSeconds(), - field.value.getMilliseconds(), - ); - field.onChange(newDate); - }} - disabled={(date) => - date > new Date() || date < new Date("1900-01-01") - } - initialFocus - /> -
-
- -
- { - try { - const timeValue = e.target.value; - if (!timeValue || !field.value) return; - - const [hours, minutes, seconds] = timeValue - .split(":") - .map(Number); - - const newDate = new Date(field.value); - newDate.setHours( - hours, - minutes, - seconds || 0, - 0, - ); - - field.onChange(newDate); - } catch (error) { - console.error(error); - } - }} - /> -
-
-
-
-
-
-
+ + + When the status report was created. Shown in your timezone ( diff --git a/apps/dashboard/src/components/incidents/declare-from-row.tsx b/apps/dashboard/src/components/incidents/declare-from-row.tsx index 7ad624b9..99c11cf0 100644 --- a/apps/dashboard/src/components/incidents/declare-from-row.tsx +++ b/apps/dashboard/src/components/incidents/declare-from-row.tsx @@ -4,7 +4,6 @@ import { Button } from "@openstatus/ui/components/ui/button"; import { useQuery } from "@tanstack/react-query"; import { useFeature } from "@/hooks/use-feature"; -import { formatDateForInput } from "@/lib/formatter"; import { useTRPC } from "@/lib/trpc/client"; import { @@ -41,9 +40,7 @@ export function DeclareFromRow({ defaultValues={{ title, // epoch = legacy report without dates; prefill now instead - startedAt: formatDateForInput( - startedAt.getTime() === 0 ? new Date() : startedAt, - ), + startedAt: startedAt.getTime() === 0 ? new Date() : startedAt, ...(statusReportId ? { statusReportId: String(statusReportId) } : {}), }} > diff --git a/apps/dashboard/src/components/maintenances/maintenance-properties.tsx b/apps/dashboard/src/components/maintenances/maintenance-properties.tsx index 79fc2c25..03deaf58 100644 --- a/apps/dashboard/src/components/maintenances/maintenance-properties.tsx +++ b/apps/dashboard/src/components/maintenances/maintenance-properties.tsx @@ -10,7 +10,7 @@ import { StatusDot } from "@/components/common/status-dot"; import { UserAvatar } from "@/components/common/user-avatar"; import { Property, - PropertyInput, + PropertyDateTimePicker, PropertyLabel, PropertyLink, PropertyList, @@ -22,7 +22,6 @@ import { maintenanceStatusConfig, } from "@/data/overview-events.client"; import { useHydrated } from "@/hooks/use-hydrated"; -import { formatDateForInput } from "@/lib/formatter"; import { useUpdateMaintenance } from "./use-update-maintenance"; @@ -57,15 +56,13 @@ export function MaintenanceProperties({ status: MaintenanceStatus; publicUrl: string; }) { - // datetime-local values and the timezone are browser-local + // the formatted dates and the timezone are browser-local const hydrated = useHydrated(); const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; - // null = pristine: the inputs follow the server copy until edited. - const [draft, setDraft] = useState<{ from: string; to: string } | null>(null); - const serverFrom = formatDateForInput(maintenance.from); - const serverTo = formatDateForInput(maintenance.to); - const from = draft?.from ?? serverFrom; - const to = draft?.to ?? serverTo; + // null = pristine: the pickers follow the server copy until edited. + const [draft, setDraft] = useState<{ from: Date; to: Date } | null>(null); + const from = draft?.from ?? maintenance.from; + const to = draft?.to ?? maintenance.to; const { update, isPending } = useUpdateMaintenance(maintenance.id, { onSuccess: () => { toast.success("Schedule saved"); @@ -73,8 +70,11 @@ export function MaintenanceProperties({ }, }); - const dirty = draft !== null && (from !== serverFrom || to !== serverTo); - const invalid = !from || !to || new Date(to) <= new Date(from); + const dirty = + draft !== null && + (from.getTime() !== maintenance.from.getTime() || + to.getTime() !== maintenance.to.getTime()); + const invalid = to <= from; const author = maintenance.createdByUser; const editor = distinctEditor(maintenance); @@ -96,37 +96,36 @@ export function MaintenanceProperties({ From - setDraft({ from: e.target.value, to })} - /> + {hydrated ? ( + setDraft({ from: date, to })} + /> + ) : ( +
+ )} To - setDraft({ from, to: e.target.value })} - /> + {hydrated ? ( + setDraft({ from, to: date })} + /> + ) : ( +
+ )} {dirty ? (
@@ -139,7 +138,7 @@ export function MaintenanceProperties({ > Reset - {from && to && invalid ? ( + {invalid ? ( End must be after start diff --git a/apps/dashboard/src/components/status-reports/status-report-composer.tsx b/apps/dashboard/src/components/status-reports/status-report-composer.tsx index 7fd807c5..27839efd 100644 --- a/apps/dashboard/src/components/status-reports/status-report-composer.tsx +++ b/apps/dashboard/src/components/status-reports/status-report-composer.tsx @@ -10,7 +10,6 @@ import { statusReportStatus } from "@openstatus/db/src/schema/status_reports/con import { Close } from "@openstatus/icons"; import { Button } from "@openstatus/ui/components/ui/button"; import { Checkbox } from "@openstatus/ui/components/ui/checkbox"; -import { Input } from "@openstatus/ui/components/ui/input"; import { Label } from "@openstatus/ui/components/ui/label"; import { Select, @@ -23,6 +22,7 @@ import { useQuery } from "@tanstack/react-query"; import { useState } from "react"; import { toast } from "sonner"; +import { DateTimePicker } from "@/components/common/date-time-picker"; import { StatusDot } from "@/components/common/status-dot"; import { ComponentImpact, @@ -49,7 +49,6 @@ import { statusVariants, toCreateStatusReportUpdateInput, } from "@/data/status-report-updates.client"; -import { formatDateForInput } from "@/lib/formatter"; import { useTRPC } from "@/lib/trpc/client"; import { errorMessage } from "@/lib/trpc/error"; @@ -90,7 +89,9 @@ export function StatusReportComposer({ const [notifyChecked, setNotifyChecked] = useState(true); const [selected, setSelected] = useState(null); // null = now, resolved at publish time so an open composer never backdates. - const [date, setDate] = useState(null); + const [date, setDate] = useState(null); + // shown while `date` is null; refreshed on reset + const [now, setNow] = useState(() => new Date()); const [overrides, setOverrides] = useState>( () => new Map(), ); @@ -100,13 +101,7 @@ export function StatusReportComposer({ const publish = usePublishUpdate(report.id); const notify = canNotify && notifyChecked; const status = selected ?? getNextStatus(report.status); - const now = formatDateForInput(new Date()); - // the input's `max` is not enforced on the button handler - const invalidDate = - date !== null && - (date === "" || - Number.isNaN(new Date(date).getTime()) || - new Date(date) > new Date()); + const invalidDate = date !== null && date > new Date(); const disabled = publish.isPending || !message.trim() || invalidDate; const byId = new Map( @@ -129,6 +124,7 @@ export function StatusReportComposer({ setMessage(""); setSelected(null); setDate(null); + setNow(new Date()); setOverrides(new Map()); setIds(null); } @@ -141,7 +137,7 @@ export function StatusReportComposer({ values: { status, message: message.trim(), - date: date ? new Date(date) : new Date(), + date: date ?? new Date(), componentImpacts: components.map((c) => ({ pageComponentId: c.id, impact: impactFor(c.id), @@ -310,13 +306,13 @@ export function StatusReportComposer({ at - setDate(e.target.value)} - className="bg-background text-foreground h-8 w-auto font-mono md:text-sm" + max={new Date()} + onChange={setDate} + className="bg-background text-foreground h-8 font-mono" />
-- 2.51.2 From 09c060699e75992df8c587adb02831141129f8ff Mon Sep 17 00:00:00 2001 From: Maximilian Kaske <56969857+mxkaske@users.noreply.github.com> Date: Fri, 2 Oct 2026 09:52:15 +0200 Subject: [PATCH 4/6] chore: status-report timeline changelog (#2837) --- .../status-report-details-timeline.png | Bin 0 -> 321472 bytes .../pages/changelog/status-report-timeline.mdx | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 apps/web/public/assets/changelog/status-report-details-timeline.png create mode 100644 apps/web/src/content/pages/changelog/status-report-timeline.mdx diff --git a/apps/web/public/assets/changelog/status-report-details-timeline.png b/apps/web/public/assets/changelog/status-report-details-timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..6094087eeed697e4f4d02eb954d9c6c22eefcd90 GIT binary patch literal 321472 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�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%0AX@-O~U+H+7~LhB>DYlea6J{~AMDv=(v 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 z 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 y8BBrm%x^7lyIpV_e26GfaXc$>!Knw|{} Date: Fri, 2 Oct 2026 10:06:45 +0200 Subject: [PATCH 5/6] feat: slack rich text notes (#2835) * feat: slack rich text notes * fix: review * fix: --- .../components/content/process-message.tsx | 2 + .../src/libs/test/doubles/slack-test-state.ts | 3 + .../libs/test/doubles/slack-web-api.mock.ts | 4 + apps/server/src/routes/slack/handler.test.ts | 161 +++++++ .../src/routes/slack/incident-events.ts | 89 +++- .../src/routes/slack/resolve-slack-user.ts | 111 ++++- .../server/src/routes/slack/rich-text.test.ts | 404 ++++++++++++++++++ apps/server/src/routes/slack/rich-text.ts | 316 ++++++++++++++ .../src/incident/__tests__/incident.test.ts | 37 ++ packages/services/src/incident/add-note.ts | 1 + packages/services/src/incident/index.ts | 3 + packages/services/src/incident/schemas.ts | 26 +- .../src/member/__tests__/display-name.test.ts | 44 ++ packages/services/src/member/display-name.ts | 32 ++ packages/services/src/member/index.ts | 2 + packages/services/src/member/schemas.ts | 5 + 16 files changed, 1223 insertions(+), 17 deletions(-) create mode 100644 apps/server/src/routes/slack/rich-text.test.ts create mode 100644 apps/server/src/routes/slack/rich-text.ts create mode 100644 packages/services/src/member/__tests__/display-name.test.ts create mode 100644 packages/services/src/member/display-name.ts diff --git a/apps/dashboard/src/components/content/process-message.tsx b/apps/dashboard/src/components/content/process-message.tsx index 791a1f8e..23deb35e 100644 --- a/apps/dashboard/src/components/content/process-message.tsx +++ b/apps/dashboard/src/components/content/process-message.tsx @@ -2,6 +2,7 @@ import type { AnchorHTMLAttributes } from "react"; import { Fragment, createElement } from "react"; import { jsx, jsxs } from "react/jsx-runtime"; import rehypeReact from "rehype-react"; +import remarkGfm from "remark-gfm"; import remarkParse from "remark-parse"; import remarkRehype from "remark-rehype"; import { unified } from "unified"; @@ -9,6 +10,7 @@ import { unified } from "unified"; export function ProcessMessage({ value }: { value: string }) { const result = unified() .use(remarkParse) + .use(remarkGfm) .use(remarkRehype) .use(rehypeReact, { createElement, diff --git a/apps/server/src/libs/test/doubles/slack-test-state.ts b/apps/server/src/libs/test/doubles/slack-test-state.ts index 4698fddb..7519e052 100644 --- a/apps/server/src/libs/test/doubles/slack-test-state.ts +++ b/apps/server/src/libs/test/doubles/slack-test-state.ts @@ -26,6 +26,8 @@ export interface SlackTestState { usersInfoImpl: (args: Record) => Promise; /** `reactions.get` result; the default message has no reactions. */ reactionsGetImpl: (args: Record) => Promise; + /** `conversations.info` result; the default channel has no name. */ + conversationsInfoImpl: (args: Record) => Promise; } const g = globalThis as Record; @@ -52,6 +54,7 @@ if (!g.__slackTestState) { }), usersInfoImpl: () => Promise.resolve({ ok: true, user: { profile: {} } }), reactionsGetImpl: () => Promise.resolve({ ok: true, message: {} }), + conversationsInfoImpl: () => Promise.resolve({ ok: true, channel: {} }), } satisfies SlackTestState; } diff --git a/apps/server/src/libs/test/doubles/slack-web-api.mock.ts b/apps/server/src/libs/test/doubles/slack-web-api.mock.ts index 01a73fc1..dc301130 100644 --- a/apps/server/src/libs/test/doubles/slack-web-api.mock.ts +++ b/apps/server/src/libs/test/doubles/slack-web-api.mock.ts @@ -81,6 +81,10 @@ export class WebClient { s.calls.push({ method: "conversations.history", args }); return s.historyImpl(); }, + info: (args: Record) => { + s.calls.push({ method: "conversations.info", args }); + return s.conversationsInfoImpl(args); + }, }; agents = { sessions: { diff --git a/apps/server/src/routes/slack/handler.test.ts b/apps/server/src/routes/slack/handler.test.ts index 425aab02..8b8cd958 100644 --- a/apps/server/src/routes/slack/handler.test.ts +++ b/apps/server/src/routes/slack/handler.test.ts @@ -2043,6 +2043,8 @@ describe("incident channel events", () => { resetSlackTestState(); slackTestState.reactionsGetImpl = () => Promise.resolve({ ok: true, message: {} }); + slackTestState.conversationsInfoImpl = () => + Promise.resolve({ ok: true, channel: {} }); channelId = `C_PIN_${crypto.randomUUID()}`; const [row] = await db .insert(incident) @@ -2101,6 +2103,165 @@ describe("incident channel events", () => { expect(rows[0].message).toContain("https://slack.test/archives/"); }); + test("rich_text wins over mrkdwn: emoji, styles, mentions and channels", async () => { + // U1 is the pinner and must stay linked; U9 has no email, so the + // profile name is the only thing we know about them. + slackTestState.usersInfoImpl = (args) => + Promise.resolve( + args.user === "U9" + ? { ok: true, user: { real_name: "Jane Doe", profile: {} } } + : { ok: true, user: { profile: { email: "ping@openstatus.dev" } } }, + ); + slackTestState.conversationsInfoImpl = () => + Promise.resolve({ ok: true, channel: { name: "inc-db" } }); + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { + ts: "503.1", + user: "U2", + text: "*rolled back* :face_holding_back_tears: <@U9> see <#C7|inc-db>", + blocks: [ + { + type: "rich_text", + elements: [ + { + type: "rich_text_section", + elements: [ + { + type: "text", + text: "rolled back", + style: { bold: true }, + }, + { type: "text", text: " " }, + { + type: "emoji", + name: "face_holding_back_tears", + unicode: "1f979", + }, + { type: "text", text: " " }, + { type: "user", user_id: "U9" }, + { type: "text", text: " see " }, + { type: "channel", channel_id: "C7" }, + ], + }, + ], + }, + ], + }, + ], + }); + await pin("503.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].message).toContain( + "**rolled back** 🥹 @Jane Doe see #inc-db", + ); + expect(rows[0].message).not.toContain(":face_holding_back_tears:"); + }); + + test("a mention whose lookup fails keeps the raw id", async () => { + slackTestState.usersInfoImpl = (args) => + args.user === "U9" + ? Promise.reject(new Error("user_not_found")) + : Promise.resolve({ + ok: true, + user: { profile: { email: "ping@openstatus.dev" } }, + }); + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { + ts: "504.1", + text: "<@U9> ack", + blocks: [ + { + type: "rich_text", + elements: [ + { + type: "rich_text_section", + elements: [ + { type: "user", user_id: "U9" }, + { type: "text", text: " ack" }, + ], + }, + ], + }, + ], + }, + ], + }); + await pin("504.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].message).toContain("@U9 ack"); + }); + + test("the note keeps the time the message was said", async () => { + const saidAt = Math.floor(Date.now() / 1000) - 3600; + const ts = `${saidAt}.000100`; + slackTestState.historyImpl = () => + Promise.resolve({ messages: [{ ts, text: "an hour ago" }] }); + await pin(ts); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(Math.abs(rows[0].createdAt.getTime() - saidAt * 1000)).toBeLessThan( + 1000, + ); + }); + + test("a message with only attachments is noted from their fallback", async () => { + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { + ts: "505.1", + text: "", + attachments: [{ fallback: "[FIRING] db latency > 2s" }], + }, + ], + }); + await pin("505.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].message).toContain("[FIRING] db latency > 2s"); + }); + + test("an attachment with an empty fallback is noted from its text", async () => { + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { + ts: "507.1", + text: "", + attachments: [{ fallback: "", text: "Deploy 1234 failed" }], + }, + ], + }); + await pin("507.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].message).toContain("Deploy 1234 failed"); + }); + + test("a message with nothing to copy tells the pinner", async () => { + slackTestState.historyImpl = () => + Promise.resolve({ messages: [{ ts: "506.1", text: "" }] }); + await pin("506.1"); + const ephemeral = await waitForCall("postEphemeral"); + expect(ephemeral?.args.text).toContain("Nothing to copy"); + await new Promise((r) => setTimeout(r, 50)); + expect(slackTestState.calls.some((c) => c.method === "reactions.add")).toBe( + false, + ); + expect(await notes()).toHaveLength(0); + }); + test("a message already confirmed is not noted twice", async () => { slackTestState.historyImpl = () => Promise.resolve({ messages: [{ ts: "501.1", text: "Twice" }] }); diff --git a/apps/server/src/routes/slack/incident-events.ts b/apps/server/src/routes/slack/incident-events.ts index bbf61250..a7467407 100644 --- a/apps/server/src/routes/slack/incident-events.ts +++ b/apps/server/src/routes/slack/incident-events.ts @@ -3,6 +3,7 @@ import type { ServiceContext } from "@openstatus/services"; import { addIncidentNote, getIncidentBySlackChannel, + isAllowedNoteCreatedAt, unbindIncidentSlackChannel, } from "@openstatus/services/incident"; import { WebClient } from "@slack/web-api"; @@ -17,6 +18,12 @@ import { requireSlackMember, slackAgentAllowed, } from "./require-slack-member"; +import { resolveSlackMentionNames } from "./resolve-slack-user"; +import { + collectMentions, + mentionLabelsFromText, + richTextToMarkdown, +} from "./rich-text"; import type { SlackWorkspace } from "./workspace-resolver"; const logger = getLogger(["api-server", "slack", "incident-events"]); @@ -24,7 +31,67 @@ const logger = getLogger(["api-server", "slack", "incident-events"]); const PIN = "pushpin"; const DONE = "white_check_mark"; -type SlackMessage = { ts?: string; text?: string; user?: string }; +type SlackMessage = { + ts?: string; + text?: string; + user?: string; + blocks?: unknown[]; + attachments?: { text?: string; fallback?: string }[]; +}; + +const NOTHING_TO_COPY = "Nothing to copy from that message."; +const VERB_LAG_MS = 60_000; + +/** + * A Slack `ts` ("1759300000.123456") as the time the message was said, or + * `undefined` (now) when the verb would reject it as outside its window. + */ +function messageDate(ts: string): Date | undefined { + const date = new Date(Number(ts) * 1000); + const now = Date.now(); + // The verb samples its own `now` a moment later; a boundary message must + // pass both, or the pin would fail instead of falling back to now. + return isAllowedNoteCreatedAt(date, now) && + isAllowedNoteCreatedAt(date, now + VERB_LAG_MS) + ? date + : undefined; +} + +/** Alert bots post `attachments` with an empty `text`. */ +function attachmentsText(message: SlackMessage): string { + return (message.attachments ?? []) + .map((a) => a.fallback?.trim() || a.text?.trim() || "") + .filter(Boolean) + .join("\n\n"); +} + +async function noteBody(args: { + resolved: SlackWorkspace; + teamId: string; + slack: WebClient; + message: SlackMessage; +}): Promise { + const { resolved, teamId, slack, message } = args; + const labels = mentionLabelsFromText(message.text); + const lookedUp = await resolveSlackMentionNames({ + workspace: resolved.workspace, + teamId, + slack, + ...collectMentions(message.blocks), + }); + // A looked-up name beats the label Slack put in `text`. + const names = { + users: new Map([...(labels.users ?? []), ...(lookedUp.users ?? [])]), + channels: new Map([ + ...(labels.channels ?? []), + ...(lookedUp.channels ?? []), + ]), + usergroups: labels.usergroups, + }; + const body = + richTextToMarkdown(message.blocks, names) ?? message.text?.trim() ?? ""; + return body || attachmentsText(message); +} function system(resolved: SlackWorkspace): ServiceContext { return { @@ -131,8 +198,21 @@ export async function handlePinReaction(args: { try { if (await alreadyNoted(slack, channel, ts, resolved.botUserId)) return; const message = await findMessage(slack, channel, ts); - if (!message?.text) { + const body = message + ? await noteBody({ resolved, teamId, slack, message }) + : ""; + if (!body) { await redis.del(claim); + await slack.chat + .postEphemeral({ + channel, + user: slackUserId, + thread_ts: ts, + text: NOTHING_TO_COPY, + }) + .catch((error) => + logger.warn("slack failed to report an empty pin", { error }), + ); return; } const permalink = await slack.chat @@ -145,9 +225,8 @@ export async function handlePinReaction(args: { ctx, input: { id: bound.id, - message: permalink - ? `${message.text}\n\n[From Slack](${permalink})` - : message.text, + message: permalink ? `${body}\n\n[From Slack](${permalink})` : body, + createdAt: messageDate(ts), }, }); trackSlackIncident(ctx, "note", { via: "reaction" }); diff --git a/apps/server/src/routes/slack/resolve-slack-user.ts b/apps/server/src/routes/slack/resolve-slack-user.ts index c65d58b7..ea3ada79 100644 --- a/apps/server/src/routes/slack/resolve-slack-user.ts +++ b/apps/server/src/routes/slack/resolve-slack-user.ts @@ -1,55 +1,144 @@ import { getLogger } from "@logtape/logtape"; import type { Workspace } from "@openstatus/db/src/schema/workspaces/validation"; import type { ServiceContext } from "@openstatus/services"; -import { findMemberIdByEmail } from "@openstatus/services/member"; +import { + findMemberIdByEmail, + getMemberDisplayName, +} from "@openstatus/services/member"; import { createSlackUserMapping, getSlackUserMapping, } from "@openstatus/services/slack-user"; import type { WebClient } from "@slack/web-api"; +import type { MentionNames } from "./rich-text"; + const logger = getLogger(["api-server", "slack", "resolve-user"]); /** - * The openstatus member linked to a Slack user, or `null`. A missing link is - * created on the spot when the Slack profile email matches exactly one member. + * One `users.info` serves both the email match and the fallback name. Links + * the Slack user to the member on an email match, so merely being mentioned + * in a pinned message can create the mapping; it is the same rule applied + * when they act themselves. */ -export async function resolveSlackMember(args: { +async function lookupSlackMember(args: { workspace: Workspace; teamId: string; slackUserId: string; slack: WebClient; -}): Promise { +}): Promise<{ userId: number | null; profileName: string | null }> { const { workspace, teamId, slackUserId, slack } = args; - if (!teamId || !slackUserId) return null; + if (!teamId || !slackUserId) return { userId: null, profileName: null }; const ctx: ServiceContext = { workspace, actor: { type: "system", job: "slack-user-automap" }, }; + let profileName: string | null = null; try { const linked = await getSlackUserMapping({ ctx, input: { teamId, slackUserId }, }); - if (linked !== null) return linked; + if (linked !== null) return { userId: linked, profileName }; const info = await slack.users.info({ user: slackUserId }); + profileName = + info.user?.profile?.display_name || + info.user?.real_name || + info.user?.name || + null; const email = info.user?.profile?.email; - if (!email) return null; + if (!email) return { userId: null, profileName }; const userId = await findMemberIdByEmail({ ctx, input: { email } }); - if (userId === null) return null; + if (userId === null) return { userId: null, profileName }; await createSlackUserMapping({ ctx, input: { teamId, slackUserId, userId }, }); - return userId; + return { userId, profileName }; } catch (err) { logger.warn("slack user resolution failed", { workspaceId: workspace.id, teamId, error: err instanceof Error ? err.message : String(err), }); - return null; + return { userId: null, profileName }; } } + +/** + * The openstatus member linked to a Slack user, or `null`. A missing link is + * created on the spot when the Slack profile email matches exactly one member. + */ +export async function resolveSlackMember(args: { + workspace: Workspace; + teamId: string; + slackUserId: string; + slack: WebClient; +}): Promise { + return (await lookupSlackMember(args)).userId; +} + +// A pinned message rarely mentions more than a handful of people; Slack +// rate-limits `users.info`/`conversations.info`, so look them up a few at a time. +const MAX_MENTIONS = 20; +const LOOKUP_CONCURRENCY = 5; + +async function forEachBounded( + items: T[], + fn: (item: T) => Promise, +): Promise { + for (let i = 0; i < items.length; i += LOOKUP_CONCURRENCY) { + await Promise.all(items.slice(i, i + LOOKUP_CONCURRENCY).map(fn)); + } +} + +/** + * Names for the users and channels a message mentions: a linked member's + * openstatus name, else the Slack profile name, else nothing (the caller + * keeps the raw id). Lookups that fail are dropped, never thrown. + */ +export async function resolveSlackMentionNames(args: { + workspace: Workspace; + teamId: string; + slack: WebClient; + users: string[]; + channels: string[]; +}): Promise { + const { workspace, teamId, slack } = args; + const ctx: ServiceContext = { + workspace, + actor: { type: "system", job: "slack-user-automap" }, + }; + const users = new Map(); + const channels = new Map(); + + await Promise.all([ + forEachBounded(args.users.slice(0, MAX_MENTIONS), async (slackUserId) => { + const { userId, profileName } = await lookupSlackMember({ + workspace, + teamId, + slackUserId, + slack, + }); + const memberName = + userId === null + ? null + : await getMemberDisplayName({ ctx, input: { userId } }).catch( + () => null, + ); + const name = memberName ?? profileName; + if (name) users.set(slackUserId, name); + }), + forEachBounded(args.channels.slice(0, MAX_MENTIONS), async (channelId) => { + const res = await slack.conversations + .info({ channel: channelId }) + .catch(() => undefined); + const name = res?.channel?.name; + if (name) channels.set(channelId, name); + }), + ]); + + return { users, channels }; +} diff --git a/apps/server/src/routes/slack/rich-text.test.ts b/apps/server/src/routes/slack/rich-text.test.ts new file mode 100644 index 00000000..6aa5d612 --- /dev/null +++ b/apps/server/src/routes/slack/rich-text.test.ts @@ -0,0 +1,404 @@ +import { describe, expect, test } from "@openstatus/test-utils"; + +import { + collectMentions, + mentionLabelsFromText, + richTextToMarkdown, +} from "./rich-text"; + +function section(...elements: unknown[]) { + return { type: "rich_text_section", elements }; +} + +function message(...elements: unknown[]) { + return [{ type: "rich_text", elements }]; +} + +describe("richTextToMarkdown", () => { + test("returns undefined without a rich_text block", () => { + expect(richTextToMarkdown(undefined)).toBeUndefined(); + expect(richTextToMarkdown([])).toBeUndefined(); + expect( + richTextToMarkdown([{ type: "section", text: { type: "mrkdwn" } }]), + ).toBeUndefined(); + }); + + test("renders a standard emoji from its codepoints", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "text", text: "oh wow, it syncs omg " }, + { + type: "emoji", + name: "face_holding_back_tears", + unicode: "1f979", + }, + ), + ), + ), + ).toBe("oh wow, it syncs omg 🥹"); + }); + + test("renders a skin-tone sequence", () => { + expect( + richTextToMarkdown( + message( + section({ + type: "emoji", + name: "+1", + skin_tone: 3, + unicode: "1f44d-1f3fc", + }), + ), + ), + ).toBe("👍🏼"); + }); + + test("keeps a custom emoji as its shortcode", () => { + expect( + richTextToMarkdown( + message(section({ type: "emoji", name: "partyparrot" })), + ), + ).toBe(":partyparrot:"); + }); + + test("converts styles to markdown", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "text", text: "bold", style: { bold: true } }, + { type: "text", text: " " }, + { type: "text", text: "italic", style: { italic: true } }, + { type: "text", text: " " }, + { type: "text", text: "gone", style: { strike: true } }, + { type: "text", text: " " }, + { type: "text", text: "a*b", style: { code: true } }, + ), + ), + ), + ).toBe("**bold** _italic_ ~~gone~~ `a*b`"); + }); + + test("keeps surrounding whitespace outside style markers", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "text", text: "rolled back ", style: { bold: true } }, + { type: "text", text: "to v41" }, + ), + ), + ), + ).toBe("**rolled back** to v41"); + }); + + test("converts links with and without a label", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "link", url: "https://example.com/run/1", text: "the run" }, + { type: "text", text: " and " }, + { type: "link", url: "https://example.com" }, + ), + ), + ), + ).toBe("[the run](https://example.com/run/1) and "); + }); + + test("names mentions from the map and falls back to the id", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "user", user_id: "U1" }, + { type: "text", text: " ping " }, + { type: "user", user_id: "U2" }, + { type: "text", text: " in " }, + { type: "channel", channel_id: "C1" }, + { type: "text", text: " " }, + { type: "channel", channel_id: "C2" }, + ), + ), + { + users: new Map([["U1", "Maximilian Kaske"]]), + channels: new Map([["C1", "inc-db"]]), + }, + ), + ).toBe("@Maximilian Kaske ping @U2 in #inc-db #C2"); + }); + + test("escapes markdown specials in names and plain text", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "user", user_id: "U1" }, + { type: "text", text: " said 2*3 is_fine [sic]" }, + ), + ), + { users: new Map([["U1", "jo_hn"]]) }, + ), + ).toBe("@jo\\_hn said 2\\*3 is\\_fine \\[sic\\]"); + }); + + test("names a user group from the map and falls back to the id", () => { + const blocks = message( + section( + { type: "usergroup", usergroup_id: "S1" }, + { type: "text", text: " " }, + { type: "usergroup", usergroup_id: "S2" }, + ), + ); + expect( + richTextToMarkdown(blocks, { + usergroups: new Map([["S1", "engineering"]]), + }), + ).toBe("@engineering @S2"); + }); + + test("renders broadcasts", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "broadcast", range: "here" }, + { type: "text", text: " db is back" }, + ), + ), + ), + ).toBe("@here db is back"); + }); + + test("renders lists, quotes and code blocks", () => { + expect( + richTextToMarkdown( + message( + section({ type: "text", text: "Findings:" }), + { + type: "rich_text_list", + style: "bullet", + elements: [ + section({ type: "text", text: "one" }), + section({ type: "text", text: "two" }), + ], + }, + { + type: "rich_text_list", + style: "ordered", + indent: 1, + elements: [section({ type: "text", text: "nested" })], + }, + { + type: "rich_text_quote", + elements: [{ type: "text", text: "quoted\nlines" }], + }, + { + type: "rich_text_preformatted", + elements: [{ type: "text", text: "SELECT *\nFROM t;" }], + }, + ), + ), + ).toBe( + [ + "Findings:", + "", + "- one\n- two\n 1. nested", + "", + "> quoted\n> lines", + "", + "```\nSELECT *\nFROM t;\n```", + ].join("\n"), + ); + }); + + test("escapes a line-start dash so it does not become a list", () => { + expect( + richTextToMarkdown( + message(section({ type: "text", text: "- not a list" })), + ), + ).toBe("\\- not a list"); + }); +}); + +describe("richTextToMarkdown edge cases", () => { + test("honors the ordered-list offset", () => { + expect( + richTextToMarkdown( + message({ + type: "rich_text_list", + style: "ordered", + offset: 2, + elements: [ + section({ type: "text", text: "third" }), + section({ type: "text", text: "fourth" }), + ], + }), + ), + ).toBe("3. third\n4. fourth"); + }); + + test("escapes tildes so literal text is not struck through", () => { + expect( + richTextToMarkdown( + message(section({ type: "text", text: "~~not gone~~" })), + ), + ).toBe("\\~\\~not gone\\~\\~"); + }); + + test("widens code delimiters past the backticks inside", () => { + expect( + richTextToMarkdown( + message( + section({ type: "text", text: "a `b` c", style: { code: true } }), + { + type: "rich_text_preformatted", + elements: [{ type: "text", text: "```\nx\n```" }], + }, + ), + ), + ).toBe("``a `b` c``\n\n````\n```\nx\n```\n````"); + }); + + test("pads inline code that starts or ends with a backtick", () => { + expect( + richTextToMarkdown( + message(section({ type: "text", text: "`x", style: { code: true } })), + ), + ).toBe("`` `x ``"); + expect( + richTextToMarkdown( + message(section({ type: "text", text: "x`", style: { code: true } })), + ), + ).toBe("`` x` ``"); + }); + + test("keeps a multi-line list item inside the item", () => { + expect( + richTextToMarkdown( + message( + { + type: "rich_text_list", + style: "ordered", + offset: 9, + elements: [section({ type: "text", text: "first\nstill first" })], + }, + { + type: "rich_text_list", + style: "bullet", + indent: 1, + elements: [section({ type: "text", text: "a\nb" })], + }, + ), + ), + ).toBe("10. first\n still first\n - a\n b"); + }); + + test("escapes block syntax at line start, also inside quotes", () => { + expect( + richTextToMarkdown( + message( + section({ type: "text", text: "## not a heading\n---\n+ no\n1) no" }), + { + type: "rich_text_quote", + elements: [{ type: "text", text: "# q" }], + }, + ), + ), + ).toBe("\\## not a heading\n\\---\n\\+ no\n\\1) no\n\n> \\# q"); + }); + + test("renders a link with an unsafe scheme as plain text", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "link", url: "javascript:alert(1)", text: "click" }, + { type: "text", text: " " }, + { type: "link", url: "javascript:alert(1)" }, + { type: "text", text: " " }, + { type: "link", url: "mailto:ops@example.com" }, + ), + ), + ), + ).toBe("click javascript:alert(1) "); + }); + + test("encodes spaces and parentheses in link destinations", () => { + expect( + richTextToMarkdown( + message( + section( + { type: "link", url: "https://w.org/wiki/Foo_(bar)", text: "wiki" }, + { type: "text", text: " " }, + { type: "link", url: "https://e.com/a b" }, + ), + ), + ), + ).toBe("[wiki](https://w.org/wiki/Foo_%28bar%29) "); + }); +}); + +describe("mentionLabelsFromText", () => { + test("harvests the labels Slack spelled out in mrkdwn", () => { + const names = mentionLabelsFromText( + "<@U1|max> ping in <#C1|inc-db> and <#C2>", + ); + expect(names.users).toEqual(new Map([["U1", "max"]])); + expect(names.usergroups).toEqual(new Map([["S1", "engineering"]])); + expect(names.channels).toEqual(new Map([["C1", "inc-db"]])); + }); + + test("is empty without text", () => { + expect(mentionLabelsFromText(undefined).users?.size).toBe(0); + }); +}); + +describe("collectMentions", () => { + test("dedupes user and channel ids across blocks", () => { + expect( + collectMentions( + message( + section( + { type: "user", user_id: "U1" }, + { type: "channel", channel_id: "C1" }, + ), + { + type: "rich_text_quote", + elements: [ + { type: "user", user_id: "U1" }, + { type: "user", user_id: "U2" }, + ], + }, + ), + ), + ).toEqual({ users: ["U1", "U2"], channels: ["C1"] }); + }); + + test("is empty without rich_text", () => { + expect(collectMentions(undefined)).toEqual({ users: [], channels: [] }); + }); + + test("finds mentions inside list items", () => { + const blocks = message({ + type: "rich_text_list", + style: "bullet", + elements: [ + section( + { type: "user", user_id: "U5" }, + { type: "text", text: " owns it" }, + ), + section({ type: "channel", channel_id: "C5" }), + ], + }); + expect(collectMentions(blocks)).toEqual({ + users: ["U5"], + channels: ["C5"], + }); + expect( + richTextToMarkdown(blocks, { users: new Map([["U5", "Sam"]]) }), + ).toBe("- @Sam owns it\n- #C5"); + }); +}); diff --git a/apps/server/src/routes/slack/rich-text.ts b/apps/server/src/routes/slack/rich-text.ts new file mode 100644 index 00000000..1830125d --- /dev/null +++ b/apps/server/src/routes/slack/rich-text.ts @@ -0,0 +1,316 @@ +/** + * Slack attaches `rich_text` blocks to every user-typed message. They carry + * what `message.text` (mrkdwn) loses: emoji codepoints, structured mentions + * and links, styles. Convert them to the markdown the timeline renders. + * + * Structural types instead of `@slack/types`: the package is only a + * transitive dep and the fields used here are stable. + */ + +type Style = { + bold?: boolean; + italic?: boolean; + strike?: boolean; + code?: boolean; +}; + +type InlineElement = + | { type: "text"; text: string; style?: Style } + | { type: "emoji"; name: string; unicode?: string; style?: Style } + | { type: "link"; url: string; text?: string; style?: Style } + | { type: "user"; user_id: string; style?: Style } + | { type: "channel"; channel_id: string; style?: Style } + | { type: "usergroup"; usergroup_id: string; style?: Style } + | { type: "broadcast"; range: string; style?: Style } + | { type: "date"; fallback?: string; style?: Style } + | { type: "color"; value: string; style?: Style }; + +type Section = { type: "rich_text_section"; elements: InlineElement[] }; +type List = { + type: "rich_text_list"; + style: "bullet" | "ordered"; + indent?: number; + offset?: number; + elements: Section[]; +}; +type Quote = { type: "rich_text_quote"; elements: InlineElement[] }; +type Preformatted = { + type: "rich_text_preformatted"; + elements: InlineElement[]; +}; +type RichTextElement = Section | List | Quote | Preformatted; +type RichTextBlock = { type: "rich_text"; elements: RichTextElement[] }; + +export type MentionNames = { + users?: Map; + channels?: Map; + usergroups?: Map; +}; + +// `<@U1|max>`, `<#C1|inc-db>`, `` in mrkdwn `text`. +const LABELLED_MENTION = /<([@#]|!subteam\^)([A-Z0-9]+)\|@?([^>|]+)>/g; + +/** + * Names Slack already spelled out in `message.text`. The only source for a + * user group's handle, since `rich_text` carries just its id and reading + * groups would need a scope we do not request. + */ +export function mentionLabelsFromText(text: string | undefined): MentionNames { + const names: Required = { + users: new Map(), + channels: new Map(), + usergroups: new Map(), + }; + for (const match of (text ?? "").matchAll(LABELLED_MENTION)) { + const [, kind, id, label] = match; + const target = + kind === "@" + ? names.users + : kind === "#" + ? names.channels + : names.usergroups; + target.set(id, label.trim()); + } + return names; +} + +function isRichTextBlock(block: unknown): block is RichTextBlock { + return ( + typeof block === "object" && + block !== null && + (block as { type?: unknown }).type === "rich_text" && + Array.isArray((block as { elements?: unknown }).elements) + ); +} + +function richTextBlocks(blocks: unknown[] | undefined): RichTextBlock[] { + return (blocks ?? []).filter(isRichTextBlock); +} + +/** A list's children are sections; everything else holds inlines directly. */ +function inlinesOf(element: RichTextElement): InlineElement[] { + if (element.type === "rich_text_list") { + return element.elements.flatMap((item) => item.elements ?? []); + } + return element.elements ?? []; +} + +/** Every user and channel id mentioned, deduplicated, for the caller to resolve. */ +export function collectMentions(blocks: unknown[] | undefined): { + users: string[]; + channels: string[]; +} { + const users = new Set(); + const channels = new Set(); + for (const block of richTextBlocks(blocks)) { + for (const element of block.elements) { + for (const inline of inlinesOf(element)) { + if (inline.type === "user") users.add(inline.user_id); + if (inline.type === "channel") channels.add(inline.channel_id); + } + } + } + return { users: [...users], channels: [...channels] }; +} + +// Only what remark would otherwise interpret; `#`, `>`, `-` matter at line start. +const INLINE_SPECIALS = /[\\`*_~[\]]/g; +const LINE_START_SPECIALS = + /^(\s*)(#{1,6}|>|[-+]|-{3,}|={3,}|\d+[.)])(?=\s|$)/gm; + +function escapeText(text: string): string { + return text + .replace(INLINE_SPECIALS, "\\$&") + .replace(LINE_START_SPECIALS, "$1\\$2"); +} + +function longestBacktickRun(text: string): number { + let max = 0; + for (const match of text.matchAll(/`+/g)) { + max = Math.max(max, match[0].length); + } + return max; +} + +/** A delimiter longer than any backtick run inside, so the span cannot close early. */ +function inlineCode(text: string): string { + const fence = "`".repeat(longestBacktickRun(text) + 1); + const pad = text.startsWith("`") || text.endsWith("`") ? " " : ""; + return `${fence}${pad}${text}${pad}${fence}`; +} + +function codeFence(code: string): string { + const fence = "`".repeat(Math.max(3, longestBacktickRun(code) + 1)); + return `${fence}\n${code}\n${fence}`; +} + +// Not every renderer sanitizes `javascript:`; anything else becomes plain text. +const SAFE_LINK = /^(https?:|mailto:)/i; + +/** Spaces and parentheses end a markdown destination early; `<>` break autolinks. */ +function linkDestination(url: string): string { + return url.replace( + /[ ()<>]/g, + (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + ); +} + +/** `"1f44d-1f3fc"` → 👍🏼. Hyphen-separated hex codepoints. */ +function emojiFromUnicode(unicode: string): string | undefined { + const points = unicode.split("-").map((hex) => Number.parseInt(hex, 16)); + if (points.length === 0 || points.some((p) => !Number.isFinite(p))) { + return undefined; + } + try { + return String.fromCodePoint(...points); + } catch { + return undefined; + } +} + +/** Markers must hug the text, or remark reads `**bold **` literally. */ +function applyStyle(text: string, style: Style | undefined): string { + if (!style || !text.trim()) return text; + const leading = text.match(/^\s*/)?.[0] ?? ""; + const trailing = text.match(/\s*$/)?.[0] ?? ""; + let inner = text.slice(leading.length, text.length - trailing.length); + if (style.code) { + inner = inlineCode(inner); + } else { + if (style.strike) inner = `~~${inner}~~`; + if (style.italic) inner = `_${inner}_`; + if (style.bold) inner = `**${inner}**`; + } + return `${leading}${inner}${trailing}`; +} + +function renderInline(element: InlineElement, names: MentionNames): string { + switch (element.type) { + case "text": + return applyStyle( + element.style?.code ? element.text : escapeText(element.text), + element.style, + ); + case "emoji": { + const char = element.unicode + ? emojiFromUnicode(element.unicode) + : undefined; + return applyStyle(char ?? `:${element.name}:`, element.style); + } + case "link": { + const label = element.text?.trim(); + if (!SAFE_LINK.test(element.url)) { + return applyStyle(escapeText(label || element.url), element.style); + } + const url = linkDestination(element.url); + const md = + label && label !== element.url + ? `[${escapeText(label)}](${url})` + : `<${url}>`; + return applyStyle(md, element.style); + } + case "user": { + const name = names.users?.get(element.user_id); + return applyStyle( + `@${escapeText(name ?? element.user_id)}`, + element.style, + ); + } + case "channel": { + const name = names.channels?.get(element.channel_id); + return applyStyle( + `#${escapeText(name ?? element.channel_id)}`, + element.style, + ); + } + case "usergroup": { + const name = names.usergroups?.get(element.usergroup_id); + return applyStyle( + `@${escapeText(name ?? element.usergroup_id)}`, + element.style, + ); + } + case "broadcast": + return applyStyle(`@${element.range}`, element.style); + case "date": + return applyStyle(escapeText(element.fallback ?? ""), element.style); + case "color": + return applyStyle(escapeText(element.value), element.style); + default: + return ""; + } +} + +function renderInlines(elements: InlineElement[], names: MentionNames): string { + return elements.map((element) => renderInline(element, names)).join(""); +} + +// Wide enough to nest under `1. ` (3 columns) as well as `- `. +const LIST_INDENT = " "; + +function renderElement(element: RichTextElement, names: MentionNames): string { + switch (element.type) { + case "rich_text_section": + return renderInlines(element.elements, names); + case "rich_text_list": { + const pad = LIST_INDENT.repeat(element.indent ?? 0); + const start = (element.offset ?? 0) + 1; + return element.elements + .map((item, index) => { + const marker = + element.style === "ordered" ? `${start + index}.` : "-"; + // Continuation lines stay inside the item when indented to its text. + const hang = `\n${pad}${" ".repeat(marker.length + 1)}`; + const text = renderInlines(item.elements, names).replace(/\n/g, hang); + return `${pad}${marker} ${text}`; + }) + .join("\n"); + } + case "rich_text_quote": + return renderInlines(element.elements, names) + .split("\n") + .map((line) => `> ${line}`) + .join("\n"); + case "rich_text_preformatted": + return codeFence( + element.elements + .map((inline) => + inline.type === "text" + ? inline.text + : inline.type === "link" + ? (inline.text ?? inline.url) + : "", + ) + .join(""), + ); + default: + return ""; + } +} + +/** + * Markdown for a message's `rich_text` blocks, or `undefined` when there are + * none so the caller falls back to `message.text`. + */ +export function richTextToMarkdown( + blocks: unknown[] | undefined, + names: MentionNames = {}, +): string | undefined { + const rich = richTextBlocks(blocks); + if (rich.length === 0) return undefined; + let out = ""; + let previous: RichTextElement["type"] | undefined; + for (const block of rich) { + for (const element of block.elements) { + const rendered = renderElement(element, names); + if (!rendered.trim()) continue; + // Slack emits one list per nesting level; a blank line would split them. + const adjacentLists = + previous === "rich_text_list" && element.type === "rich_text_list"; + if (out) out += adjacentLists ? "\n" : "\n\n"; + out += rendered; + previous = element.type; + } + } + return out.trim() || undefined; +} diff --git a/packages/services/src/incident/__tests__/incident.test.ts b/packages/services/src/incident/__tests__/incident.test.ts index 640c411b..7dc78c15 100644 --- a/packages/services/src/incident/__tests__/incident.test.ts +++ b/packages/services/src/incident/__tests__/incident.test.ts @@ -459,6 +459,43 @@ describe("addIncidentNote", () => { }); }); + test("keeps a createdAt inside the window and treats null as now", async () => { + await withTestTransaction(async (tx) => { + const row = await declare(tx); + const saidAt = new Date(Date.now() - 60 * 60 * 1000); + const backdated = await addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "an hour ago", createdAt: saidAt }, + }); + // `created_at` is stored in whole seconds. + expect( + Math.abs(backdated.createdAt.getTime() - saidAt.getTime()), + ).toBeLessThan(1000); + const now = await addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "now", createdAt: null }, + }); + expect(Math.abs(now.createdAt.getTime() - Date.now())).toBeLessThan(5000); + }); + }); + + test("rejects a createdAt in the future or older than the window", async () => { + await withTestTransaction(async (tx) => { + const row = await declare(tx); + for (const createdAt of [ + new Date(Date.now() + 10 * 60 * 1000), + new Date(Date.now() - 31 * 24 * 60 * 60 * 1000), + ]) { + await expect( + addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "off the timeline", createdAt }, + }), + ).rejects.toThrow(/createdAt must be within the last 30 days/); + } + }); + }); + test("a closed incident takes no notes", async () => { await withTestTransaction(async (tx) => { const row = await createIncident( diff --git a/packages/services/src/incident/add-note.ts b/packages/services/src/incident/add-note.ts index d518408c..106f0842 100644 --- a/packages/services/src/incident/add-note.ts +++ b/packages/services/src/incident/add-note.ts @@ -32,6 +32,7 @@ export async function addIncidentNote(args: { incidentId: existing.id, type: "note", message: input.message, + createdAt: input.createdAt ?? undefined, }); }); } diff --git a/packages/services/src/incident/index.ts b/packages/services/src/incident/index.ts index 7130a983..b4f6ddfb 100644 --- a/packages/services/src/incident/index.ts +++ b/packages/services/src/incident/index.ts @@ -37,6 +37,9 @@ export { } from "./postmortem-draft"; export { AddIncidentNoteInput, + isAllowedNoteCreatedAt, + NOTE_BACKDATE_MAX_MS, + NOTE_FUTURE_SKEW_MS, ApprovePostmortemInput, CloseIncidentInput, DraftPostmortemInput, diff --git a/packages/services/src/incident/schemas.ts b/packages/services/src/incident/schemas.ts index 125857b3..4c659935 100644 --- a/packages/services/src/incident/schemas.ts +++ b/packages/services/src/incident/schemas.ts @@ -42,7 +42,31 @@ export const SetIncidentStatusInput = z.object({ }); export type SetIncidentStatusInput = z.infer; -export const AddIncidentNoteInput = z.object({ id, message: note }); +// A note copied from elsewhere (Slack) may keep the time it was said, within +// a window that keeps the timeline honest for every caller of the verb. +export const NOTE_BACKDATE_MAX_MS = 30 * 24 * 60 * 60 * 1000; +export const NOTE_FUTURE_SKEW_MS = 60_000; + +export function isAllowedNoteCreatedAt(date: Date, now = Date.now()): boolean { + const ms = date.getTime(); + return ( + Number.isFinite(ms) && + ms <= now + NOTE_FUTURE_SKEW_MS && + ms >= now - NOTE_BACKDATE_MAX_MS + ); +} + +export const AddIncidentNoteInput = z.object({ + id, + message: note, + createdAt: z.coerce + .date() + .refine((d) => isAllowedNoteCreatedAt(d), { + message: + "createdAt must be within the last 30 days and at most a minute ahead", + }) + .nullish(), +}); export type AddIncidentNoteInput = z.infer; export const LinkIncidentStatusReportInput = z.object({ diff --git a/packages/services/src/member/__tests__/display-name.test.ts b/packages/services/src/member/__tests__/display-name.test.ts new file mode 100644 index 00000000..8cc7adc8 --- /dev/null +++ b/packages/services/src/member/__tests__/display-name.test.ts @@ -0,0 +1,44 @@ +import { + addUserToWorkspace, + createUser, +} from "@openstatus/db/src/test/factories"; +import { expect } from "@std/expect"; +import { beforeAll, describe, test } from "@std/testing/bdd"; + +import { createWorkspaceFixture, makeSystemCtx } from "../../../test/helpers"; +import type { ServiceContext } from "../../context"; +import { getMemberDisplayName } from "../index.ts"; + +let ctx: ServiceContext; +let workspaceId: number; + +beforeAll(async () => { + const fixture = await createWorkspaceFixture("team"); + workspaceId = fixture.workspace.id; + ctx = makeSystemCtx(fixture.workspace, { job: "slack-user-automap" }); +}); + +describe("getMemberDisplayName", () => { + test("prefers the explicit name over first and last", async () => { + const member = await createUser({ name: "Max K." }); + await addUserToWorkspace(member.id, workspaceId, "member"); + expect( + await getMemberDisplayName({ ctx, input: { userId: member.id } }), + ).toBe("Max K."); + }); + + test("falls back to first and last name", async () => { + const member = await createUser({ name: null }); + await addUserToWorkspace(member.id, workspaceId, "member"); + expect( + await getMemberDisplayName({ ctx, input: { userId: member.id } }), + ).toBe("Test User"); + }); + + test("returns null for a user who is not a member here", async () => { + const outsider = await createUser(); + expect( + await getMemberDisplayName({ ctx, input: { userId: outsider.id } }), + ).toBeNull(); + }); +}); diff --git a/packages/services/src/member/display-name.ts b/packages/services/src/member/display-name.ts new file mode 100644 index 00000000..6a35fdaf --- /dev/null +++ b/packages/services/src/member/display-name.ts @@ -0,0 +1,32 @@ +import { and, eq, isNull } from "@openstatus/db"; +import { user, usersToWorkspaces } from "@openstatus/db/src/schema"; + +import { displayName } from "../attribution"; +import { type ServiceContext, getReadDb } from "../context"; +import { GetMemberDisplayNameInput } from "./schemas"; + +/** The display name of a live member of this workspace, or `null`. */ +export async function getMemberDisplayName(args: { + ctx: ServiceContext; + input: GetMemberDisplayNameInput; +}): Promise { + const input = GetMemberDisplayNameInput.parse(args.input); + const row = await getReadDb(args.ctx) + .select({ + name: user.name, + firstName: user.firstName, + lastName: user.lastName, + email: user.email, + }) + .from(usersToWorkspaces) + .innerJoin(user, eq(user.id, usersToWorkspaces.userId)) + .where( + and( + eq(usersToWorkspaces.workspaceId, args.ctx.workspace.id), + eq(usersToWorkspaces.userId, input.userId), + isNull(user.deletedAt), + ), + ) + .get(); + return row ? displayName(row) : null; +} diff --git a/packages/services/src/member/index.ts b/packages/services/src/member/index.ts index 10cc2823..6582ab10 100644 --- a/packages/services/src/member/index.ts +++ b/packages/services/src/member/index.ts @@ -1,8 +1,10 @@ export { deleteMember } from "./delete"; +export { getMemberDisplayName } from "./display-name"; export { findMemberIdByEmail } from "./find-by-email"; export { listMembers, type Member } from "./list"; export { DeleteMemberInput, FindMemberByEmailInput, + GetMemberDisplayNameInput, ListMembersInput, } from "./schemas"; diff --git a/packages/services/src/member/schemas.ts b/packages/services/src/member/schemas.ts index 0e24564a..db5605c4 100644 --- a/packages/services/src/member/schemas.ts +++ b/packages/services/src/member/schemas.ts @@ -8,3 +8,8 @@ export type DeleteMemberInput = z.infer; export const FindMemberByEmailInput = z.object({ email: z.string() }); export type FindMemberByEmailInput = z.infer; + +export const GetMemberDisplayNameInput = z.object({ userId: z.number().int() }); +export type GetMemberDisplayNameInput = z.infer< + typeof GetMemberDisplayNameInput +>; -- 2.51.2 From 23bac2532b0ed4f37634764ad95928e9c1428a7a Mon Sep 17 00:00:00 2001 From: Maximilian Kaske <56969857+mxkaske@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:09:20 +0200 Subject: [PATCH 6/6] fix: resolve pinned slack message created by (#2838) * fix: resolve pinned slack message * fix: format * wip: * fix: --- apps/server/src/routes/slack/handler.test.ts | 142 +++++++++++++++++- .../src/routes/slack/incident-events.ts | 59 +++++++- .../src/routes/slack/resolve-slack-user.ts | 12 ++ packages/api/src/router/incident.ts | 3 +- .../src/incident/__tests__/incident.test.ts | 38 +++++ packages/services/src/incident/add-note.ts | 5 + packages/services/src/incident/internal.ts | 3 +- packages/services/src/incident/schemas.ts | 5 + 8 files changed, 259 insertions(+), 8 deletions(-) diff --git a/apps/server/src/routes/slack/handler.test.ts b/apps/server/src/routes/slack/handler.test.ts index 8b8cd958..42720c7d 100644 --- a/apps/server/src/routes/slack/handler.test.ts +++ b/apps/server/src/routes/slack/handler.test.ts @@ -5,8 +5,15 @@ import { incident, incidentEvent, integration, + slackUser, + user, + usersToWorkspaces, } from "@openstatus/db/src/schema"; -import { createTestWorkspace } from "@openstatus/db/src/test/factories"; +import { + addUserToWorkspace, + createTestWorkspace, + createUser, +} from "@openstatus/db/src/test/factories"; import { afterEach, beforeEach, @@ -2213,6 +2220,139 @@ describe("incident channel events", () => { ); }); + test("the note belongs to the author, not the pinner", async () => { + const author = await createUser(); + await addUserToWorkspace(author.id, 1, "member"); + const authorSlackId = `U_AUTHOR_${crypto.randomUUID()}`; + slackTestState.usersInfoImpl = (args) => + Promise.resolve({ + ok: true, + user: { + profile: { + email: + args.user === authorSlackId + ? author.email + : "ping@openstatus.dev", + }, + }, + }); + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { ts: "508.1", text: "I rolled it back", user: authorSlackId }, + ], + }); + try { + await pin("508.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].createdBy).toBe(author.id); + } finally { + // The note references the author; drop it before the user. + await db + .delete(incidentEvent) + .where(eq(incidentEvent.incidentId, incidentId)); + await db + .delete(slackUser) + .where(eq(slackUser.slackUserId, authorSlackId)); + await db + .delete(usersToWorkspaces) + .where(eq(usersToWorkspaces.userId, author.id)); + await db.delete(user).where(eq(user.id, author.id)); + } + }); + + test("a bot message is attributed to the pinner without a lookup", async () => { + // Apps with a bot user carry both `bot_id` and `user`. + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [ + { + ts: "509.1", + text: "[FIRING] api 5xx", + bot_id: "B1", + user: "U_BOT", + }, + ], + }); + await pin("509.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + const [pinner] = await db + .select({ id: user.id }) + .from(user) + .where(eq(user.email, "ping@openstatus.dev")); + expect(rows[0].createdBy).toBe(pinner.id); + expect( + slackTestState.calls.some( + (m) => m.method === "users.info" && m.args.user === "U_BOT", + ), + ).toBe(false); + }); + + test("a failed author lookup releases the pin for a retry", async () => { + const author = await createUser(); + await addUserToWorkspace(author.id, 1, "member"); + const authorSlackId = `U_AUTHOR_${crypto.randomUUID()}`; + let flaky = true; + slackTestState.usersInfoImpl = (args) => { + if (args.user !== authorSlackId) { + return Promise.resolve({ + ok: true, + user: { profile: { email: "ping@openstatus.dev" } }, + }); + } + if (flaky) { + const err = new Error("An API error occurred: ratelimited"); + Object.assign(err, { data: { ok: false, error: "ratelimited" } }); + return Promise.reject(err); + } + return Promise.resolve({ + ok: true, + user: { profile: { email: author.email } }, + }); + }; + slackTestState.historyImpl = () => + Promise.resolve({ + messages: [{ ts: "510.1", text: "flaky lookup", user: authorSlackId }], + }); + try { + await pin("510.1"); + await settleBackgroundTasks(); + expect(await notes()).toHaveLength(0); + expect(await waitForCall("reactions.add", 100)).toBeUndefined(); + const notice = await waitForCall("postEphemeral"); + expect(notice?.args.text).toContain("Pin it again"); + + // A second failure stays quiet; the pinner was already told. + await pin("510.1"); + await settleBackgroundTasks(); + expect( + slackTestState.calls.filter((c) => c.method === "postEphemeral"), + ).toHaveLength(1); + + flaky = false; + await pin("510.1"); + await waitForCall("reactions.add"); + const rows = await notes(); + expect(rows).toHaveLength(1); + expect(rows[0].createdBy).toBe(author.id); + } finally { + await db + .delete(incidentEvent) + .where(eq(incidentEvent.incidentId, incidentId)); + await db + .delete(slackUser) + .where(eq(slackUser.slackUserId, authorSlackId)); + await db + .delete(usersToWorkspaces) + .where(eq(usersToWorkspaces.userId, author.id)); + await db.delete(user).where(eq(user.id, author.id)); + } + }); + test("a message with only attachments is noted from their fallback", async () => { slackTestState.historyImpl = () => Promise.resolve({ diff --git a/apps/server/src/routes/slack/incident-events.ts b/apps/server/src/routes/slack/incident-events.ts index a7467407..e37f19ab 100644 --- a/apps/server/src/routes/slack/incident-events.ts +++ b/apps/server/src/routes/slack/incident-events.ts @@ -18,7 +18,10 @@ import { requireSlackMember, slackAgentAllowed, } from "./require-slack-member"; -import { resolveSlackMentionNames } from "./resolve-slack-user"; +import { + resolveSlackMember, + resolveSlackMentionNames, +} from "./resolve-slack-user"; import { collectMentions, mentionLabelsFromText, @@ -35,11 +38,15 @@ type SlackMessage = { ts?: string; text?: string; user?: string; + bot_id?: string; + subtype?: string; blocks?: unknown[]; attachments?: { text?: string; fallback?: string }[]; }; const NOTHING_TO_COPY = "Nothing to copy from that message."; +const PIN_FAILED = + "Couldn't copy that message to the timeline. Pin it again to retry."; const VERB_LAG_MS = 60_000; /** @@ -215,10 +222,31 @@ export async function handlePinReaction(args: { ); return; } - const permalink = await slack.chat - .getPermalink({ channel, message_ts: ts }) - .then((res) => res.permalink) - .catch(() => undefined); + // The note belongs to whoever said it; bots and unlinked authors fall + // back to the pinner. A lookup hiccup throws so the claim is released and + // Slack retries, rather than pinning the wrong name forever. + const authorSlackId = + message?.user && + message.user !== slackUserId && + !message.bot_id && + message.subtype !== "bot_message" + ? message.user + : null; + const [permalink, author] = await Promise.all([ + slack.chat + .getPermalink({ channel, message_ts: ts }) + .then((res) => res.permalink) + .catch(() => undefined), + authorSlackId + ? resolveSlackMember({ + workspace: resolved.workspace, + teamId, + slackUserId: authorSlackId, + slack, + strict: true, + }) + : null, + ]); const ctx: ServiceContext = { workspace: resolved.workspace, actor }; await addIncidentNote({ @@ -227,11 +255,32 @@ export async function handlePinReaction(args: { id: bound.id, message: permalink ? `${body}\n\n[From Slack](${permalink})` : body, createdAt: messageDate(ts), + createdBy: author ?? undefined, }, }); trackSlackIncident(ctx, "note", { via: "reaction" }); } catch (err) { await redis.del(claim).catch(() => undefined); + // Slack retries the event, but a lost pin should not go unnoticed if it + // keeps failing; one notice per message is enough. + const once = await redis + .set(`slack:pinfail:${channel}:${ts}`, "1", { + nx: true, + ex: 24 * 60 * 60, + }) + .catch(() => null); + if (once !== null) { + await slack.chat + .postEphemeral({ + channel, + user: slackUserId, + thread_ts: ts, + text: PIN_FAILED, + }) + .catch((error) => + logger.warn("slack failed to report a lost pin", { error }), + ); + } throw err; } await slack.reactions diff --git a/apps/server/src/routes/slack/resolve-slack-user.ts b/apps/server/src/routes/slack/resolve-slack-user.ts index ea3ada79..92b4987a 100644 --- a/apps/server/src/routes/slack/resolve-slack-user.ts +++ b/apps/server/src/routes/slack/resolve-slack-user.ts @@ -21,11 +21,18 @@ const logger = getLogger(["api-server", "slack", "resolve-user"]); * in a pinned message can create the mapping; it is the same rule applied * when they act themselves. */ +function isUserNotFound(err: unknown): boolean { + const code = (err as { data?: { error?: string } })?.data?.error; + return code === "user_not_found" || code === "users_not_found"; +} + async function lookupSlackMember(args: { workspace: Workspace; teamId: string; slackUserId: string; slack: WebClient; + /** Rethrow a failed lookup instead of answering "unlinked". */ + strict?: boolean; }): Promise<{ userId: number | null; profileName: string | null }> { const { workspace, teamId, slackUserId, slack } = args; if (!teamId || !slackUserId) return { userId: null, profileName: null }; @@ -58,6 +65,9 @@ async function lookupSlackMember(args: { }); return { userId, profileName }; } catch (err) { + // A user Slack no longer knows is unlinked for good; anything else + // (rate limit, DB) is a hiccup the caller may want to retry. + if (args.strict && !isUserNotFound(err)) throw err; logger.warn("slack user resolution failed", { workspaceId: workspace.id, teamId, @@ -70,12 +80,14 @@ async function lookupSlackMember(args: { /** * The openstatus member linked to a Slack user, or `null`. A missing link is * created on the spot when the Slack profile email matches exactly one member. + * With `strict`, a failed lookup throws instead of passing for "unlinked". */ export async function resolveSlackMember(args: { workspace: Workspace; teamId: string; slackUserId: string; slack: WebClient; + strict?: boolean; }): Promise { return (await lookupSlackMember(args)).userId; } diff --git a/packages/api/src/router/incident.ts b/packages/api/src/router/incident.ts index b3b024ef..b1cd02d3 100644 --- a/packages/api/src/router/incident.ts +++ b/packages/api/src/router/incident.ts @@ -284,7 +284,8 @@ export const incidentRouter = createTRPCRouter({ addNote: protectedProcedure .meta({ track: Events.AddManagedIncidentNote }) - .input(AddIncidentNoteInput) + // `createdBy` is for trusted callers copying a note in (Slack pins). + .input(AddIncidentNoteInput.omit({ createdBy: true })) .mutation(async ({ ctx, input }) => { try { return await addIncidentNote({ ctx: toServiceCtx(ctx), input }); diff --git a/packages/services/src/incident/__tests__/incident.test.ts b/packages/services/src/incident/__tests__/incident.test.ts index 7dc78c15..6b2384d7 100644 --- a/packages/services/src/incident/__tests__/incident.test.ts +++ b/packages/services/src/incident/__tests__/incident.test.ts @@ -496,6 +496,44 @@ describe("addIncidentNote", () => { }); }); + test("createdBy attributes the note to another member, actor stays audited", async () => { + await withTestTransaction(async (tx) => { + const row = await declare(tx); + const note = await addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "said by admin", createdBy: adminId }, + }); + expect(note.createdBy).toBe(adminId); + const [audit] = await tx + .select() + .from(auditLog) + .where( + and( + eq(auditLog.entityType, "incident_event"), + eq(auditLog.entityId, String(note.id)), + ), + ); + expect(audit?.actorUserId).toBe(memberId); + const self = await addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "mine", createdBy: null }, + }); + expect(self.createdBy).toBe(memberId); + }); + }); + + test("rejects a createdBy outside the workspace", async () => { + await withTestTransaction(async (tx) => { + const row = await declare(tx); + await expect( + addIncidentNote({ + ctx: as(memberId, tx), + input: { id: row.id, message: "spoofed", createdBy: outsiderId }, + }), + ).rejects.toThrow(ValidationError); + }); + }); + test("a closed incident takes no notes", async () => { await withTestTransaction(async (tx) => { const row = await createIncident( diff --git a/packages/services/src/incident/add-note.ts b/packages/services/src/incident/add-note.ts index 106f0842..cec54694 100644 --- a/packages/services/src/incident/add-note.ts +++ b/packages/services/src/incident/add-note.ts @@ -4,6 +4,7 @@ import { requireScope } from "../auth"; import { type ServiceContext, withTransaction } from "../context"; import { appendIncidentEvent, + assertMember, assertNotClosed, getIncidentInWorkspace, requireIncidentFeature, @@ -28,11 +29,15 @@ export async function addIncidentNote(args: { input.id, ); assertNotClosed(existing); + if (input.createdBy != null) { + await assertMember(tx, ctx.workspace.id, input.createdBy); + } return appendIncidentEvent(tx, ctx, { incidentId: existing.id, type: "note", message: input.message, createdAt: input.createdAt ?? undefined, + createdBy: input.createdBy, }); }); } diff --git a/packages/services/src/incident/internal.ts b/packages/services/src/incident/internal.ts index 501168d6..294f53c2 100644 --- a/packages/services/src/incident/internal.ts +++ b/packages/services/src/incident/internal.ts @@ -79,6 +79,7 @@ export async function appendIncidentEvent( type: IncidentEventType; message?: string | null; createdAt?: Date; + createdBy?: number | null; }, ): Promise { const event = await tx @@ -87,7 +88,7 @@ export async function appendIncidentEvent( incidentId: args.incidentId, type: args.type, message: args.message ?? null, - createdBy: tryGetActorUserId(ctx.actor), + createdBy: args.createdBy ?? tryGetActorUserId(ctx.actor), createdAt: args.createdAt ?? new Date(), }) .returning() diff --git a/packages/services/src/incident/schemas.ts b/packages/services/src/incident/schemas.ts index 4c659935..0e9a4e28 100644 --- a/packages/services/src/incident/schemas.ts +++ b/packages/services/src/incident/schemas.ts @@ -66,6 +66,11 @@ export const AddIncidentNoteInput = z.object({ "createdAt must be within the last 30 days and at most a minute ahead", }) .nullish(), + // The member who wrote the note when someone else copies it in (a pinned + // Slack message). The actor stays the one who performed the action. Trusted + // callers only: a public route must omit it or anyone could speak for a + // colleague. + createdBy: id.nullish(), }); export type AddIncidentNoteInput = z.infer; -- 2.51.2