mirror of
https://github.com/hanzoai/insights.git
synced 2026-11-03 00:52:32 +00:00
"door" stood for several different things across this fork — the ingest
endpoint cloud serves at POST /v1/event, the replay endpoint that produces the
session-replay topic, a code path that is not an address at all, the importer
that pulls a heavy package onto the startup path — so a reader had to work out
which one each comment meant.
Every metaphor site now says what it is. Measured over the worktree:
before 93 occurrences of (?i)\bdoors?\b (89 of \bdoor\b)
after 3
90 uses replaced, by sense:
endpoint/endpoints 49 an HTTP address that accepts requests — cloud's
/v1/event and /v1/replay, this deployment's /v1/flags,
the capture routes at /v1/e, /v1/s and /v1/ai
path/paths 13 a code path that is not an address: the two ways a
report reaches PENDING_INPUT, the three ways a team
gets created, a second route around an access check
ingest 6 where the referent is the ingest tier itself
importer 4 the module that pulls a package onto the Django
startup path
entry point, starting point, registration point, nav entry, landing page,
"on entry" and "another way" carry the remaining one-off senses
Three sites keep the word, deliberately:
- insights/api/test/test_flags.py — test_the_door_is_not_under_api is a test
function name, so it is left alone.
- insights/temporal/README.md — a blockquote of upstream prose. Editing a
quotation misrepresents its source.
- products/warehouse_sources/.../pretix/canonical_descriptions.py — a Pretix
check-in list admits attendees at a literal door. Not a metaphor.
Verification:
python3 -m py_compile the 30 changed .py files, exit 0
yaml.safe_load .hanzo/workflows/deploy.yml parses
every changed .rs/.ts/.tsx line is a //, ///, //! or /** comment, bar three
balanced string literals — a jest description, a setFlagsUnavailable reason,
and a Rust assert message
The pre-commit formatters did not run: bin/insightscli needs a project venv this
checkout has none of, so it exits 127 on `python: not found` with nothing staged
at all. Neither ruff nor prettier nor rustfmt rewraps comment text, and ruff
ignores E501, so no changed line is one they would have altered.
73 lines
3.3 KiB
TypeScript
73 lines
3.3 KiB
TypeScript
import { urls } from 'scenes/urls'
|
|
|
|
import { FileSystemIconColor, ProductManifest } from '../../frontend/src/types'
|
|
import type { WorkflowsSceneTab } from './frontend/WorkflowsScene'
|
|
|
|
export const manifest: ProductManifest = {
|
|
name: 'Workflows',
|
|
scenes: {
|
|
Workflows: {
|
|
import: () => import('./frontend/WorkflowsScene'),
|
|
name: 'Workflows',
|
|
iconType: 'workflows',
|
|
projectBased: true,
|
|
description: 'Automate user communication and internal processes',
|
|
},
|
|
Workflow: {
|
|
import: () => import('./frontend/Workflows/WorkflowScene'),
|
|
name: 'Workflows',
|
|
iconType: 'workflows',
|
|
projectBased: true,
|
|
},
|
|
WorkflowsLibraryTemplate: {
|
|
import: () => import('./frontend/TemplateLibrary/MessageTemplate'),
|
|
name: 'Workflows',
|
|
iconType: 'workflows',
|
|
projectBased: true,
|
|
},
|
|
},
|
|
routes: {
|
|
// URL: [Scene, SceneKey]
|
|
'/workflows': ['Workflows', 'workflows'],
|
|
'/workflows/:tab': ['Workflows', 'workflows'],
|
|
'/workflows/:id/:tab': ['Workflow', 'workflowTab'],
|
|
'/workflows/library/templates/:id': ['WorkflowsLibraryTemplate', 'workflowsLibraryTemplate'],
|
|
'/workflows/library/templates/new': ['WorkflowsLibraryTemplate', 'workflowsLibraryTemplate'],
|
|
'/workflows/library/templates/new?messageId=:messageId': [
|
|
'WorkflowsLibraryTemplate',
|
|
'workflowsLibraryTemplateFromMessage',
|
|
],
|
|
},
|
|
urls: {
|
|
workflows: (tab?: WorkflowsSceneTab): string => `/workflows${tab ? `/${tab}` : ''}`,
|
|
workflow: (id: string, tab: string): string => `/workflows/${id}/${tab}`,
|
|
workflowNew: (): string => '/workflows/new/workflow',
|
|
workflowsLibraryMessage: (id: string): string => `/workflows/library/messages/${id}`,
|
|
workflowsLibraryTemplate: (id?: string): string => `/workflows/library/templates/${id}`,
|
|
workflowsLibraryTemplateNew: (): string => '/workflows/library/templates/new',
|
|
workflowsLibraryTemplateFromMessage: (id?: string): string =>
|
|
`/workflows/library/templates/new?messageId=${id}`,
|
|
},
|
|
fileSystemTypes: {
|
|
workflows: {
|
|
name: 'Workflow',
|
|
iconType: 'workflows',
|
|
iconColor: ['var(--color-product-workflows-light)'] as FileSystemIconColor,
|
|
href: (ref: string) => urls.workflow(ref, 'workflow'),
|
|
filterKey: 'workflows',
|
|
},
|
|
},
|
|
// No nav entry. Automations is the automation graph — one engine, on Go
|
|
// tasks, at /v1/automations. This product is the upstream one, and it is not
|
|
// merely redundant: its model reads `db_table = "insights_flow"`, a table
|
|
// that does not exist in the database, so listing flows answers 500. Showing
|
|
// an entry that can only fail is worse than showing none, and pointing it at
|
|
// Automations would be a second nav entry onto the same idea.
|
|
//
|
|
// The routes stay registered for now. Nothing reaches them without this
|
|
// entry, and the removal migration has to wait: the migration chain is wedged
|
|
// on batch_exports.0005 (`insights_batchexportondemand` missing), and adding
|
|
// drops behind a stuck chain compounds it. Retire the code once that is green.
|
|
treeItemsProducts: [],
|
|
}
|