This repository was archived by the owner on Jun 26, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathfeatures.json
More file actions
95 lines (95 loc) · 4.14 KB
/
Copy pathfeatures.json
File metadata and controls
95 lines (95 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[
{
"category": "technical",
"description": "Plugin scaffolding: project builds, dev server starts, Functions nav item renders in sidebar",
"steps": [
"Scaffold project from OCP dynamic plugin template",
"Configure console-extensions.json with nav section + href",
"Dev server starts without errors",
"Functions nav item visible in sidebar"
],
"passes": true
},
{
"category": "technical",
"description": "Dev environment: init.sh starts and stops plugin and console, docs restructured into WORKFLOW.md",
"steps": [
"init.sh starts webpack dev server and OCP console container",
"init.sh waits for ports to be ready before exiting",
"init.sh --stop cleanly stops both processes",
"AGENTS.md slimmed to project overview, workflow extracted to docs/WORKFLOW.md"
],
"passes": true
},
{
"category": "functional",
"description": "Function List Page renders empty state when no functions exist",
"steps": [
"Navigate to /functions route",
"Empty state component renders with Create function button",
"Create function button links to /functions/create"
],
"passes": true
},
{
"category": "functional",
"description": "Session wide GitHub Personal Access Token",
"steps": [
"If a user visits the /functions plugin and the GH PAT is not set then there will be prompt to enter it and store it into the session",
"The GH PAT it then used where needed (e.g. Function Creation page)",
"The GH PAT text box shall be removed from the Function Creation page as it should be stored in the session"
],
"passes": true
},
{
"category": "functional",
"description": "Function List Page renders a table with function entries",
"steps": [
"SourceControlService lists function repos via Octokit (topic:serverless-function) and fetches func.yaml per repo for runtime",
"ClusterService watches Deployments with label function.knative.dev/name via useK8sWatchResource, maps to DeployedFunction[]",
"useFunctionListPage hook merges repos + deployments into FunctionListItem[] (repos are source of truth, undeployed get NotDeployed status)",
"Table renders with columns: name, runtime, status, url, replicas, actions using PatternFly clickable rows",
"Status column uses SDK components: SuccessStatus (Running), ProgressStatus (Deploying/CreatingRepo/Pushing/PushedToGitHub), ErrorStatus (Error), InfoStatus (ScaledToZero/NotDeployed), StatusIconAndText+YellowExclamationTriangleIcon (Unknown)",
"URL column shows hostname-only clickable link opening in new tab",
"Clicking function row or edit action navigates to /functions/edit/:name",
"Delete action uses SDK useDeleteModal with custom message and Undeploy button text",
"Empty state renders when no functions exist, spinner while loading"
],
"passes": false
},
{
"category": "technical",
"description": "Go backend: custom Go server replaces nginx for static file serving",
"steps": [
"Go server embeds and serves webpack-built static files",
"Multi-stage Dockerfile: Node build, Go build, ubi9-micro runtime",
"TLS support with automatic fallback to HTTP-only",
"Nginx ConfigMap removed from Helm chart"
],
"passes": true
},
{
"category": "functional",
"description": "Function Create Page renders form with all fields",
"steps": [
"Navigate to /functions/create",
"Form renders with name, runtime, registry, namespace, repo name fields",
"Runtime field offers node, python, go options",
"Create and Cancel buttons are visible"
],
"passes": true
},
{
"category": "technical",
"description": "Claude Code sandbox: isolated VM environment for autonomous agent development",
"steps": [
"Vagrant VM with Fedora (matching host OS) provisioned",
"Project directory mounted into VM",
"Full write permissions enabled for agent",
"Git worktree creation works inside VM",
"Agent can run full startup sequence autonomously in VM",
"VM isolation ensures no leakage to host workstation"
],
"passes": false
}
]