Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 57 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,60 @@ Thumbs.db
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

.envrc
.envrc
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# Diagnostic reports
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage reports
coverage/
*.lcov

# Build output
dist/
out/
tmp/
temp/

# Dependency directories
bower_components/
jspm_packages/

# Compiled source
*.class
*.dll
*.exe
*.o
*.so
*.pyc
*.pyo
*.pyd
__pycache__/

# Package files
*.tgz
*.zip

# IDE and editor folders
.vscode/
.idea/
*.swp
*.swo

# Environment files
.env.local
docs/DEVELOPER.md
static/merge-crds.py
Empty file added CHANGELOG.md
Empty file.
72 changes: 69 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,71 @@
# EDA Resource Browser
# EDA Resource Browser - Visual Architecture

## System Overview

Resource Browser is a compact SvelteKit application that reads CRD manifests stored in the repo (under `static/resources/<release>/...`) and exposes:

- A release-aware resource browser and search index
- Per-resource pages showing YAML and OpenAPI-style schema details
- Lightweight version comparison and diff views

The app is built with SvelteKit + Vite and can be deployed as a static site (for example, Cloudflare Pages).
<!-- prettier-ignore -->
# 🚀 EDA Resource Browser

A compact, fast web UI for exploring Nokia EDA Custom Resource Definitions (CRDs) and release manifests.

Clean, focused features:

- 🔎 Search and browse CRDs by release
- 📄 View YAML and OpenAPI-style schemas for each resource
- 🔁 Compare versions across releases and inspect diffs

Quick start

1. Install dependencies:

```bash
pnpm install
```

2. Run the development server (hot-reload):

```bash
pnpm run dev
```

3. Build for production:

```bash
pnpm run prepare
pnpm run build
```

Preview the production build locally:

```bash
pnpm run preview
```

Notes and tips

- Demo data: sample CRD manifests are placed under `static/resources/<release>/...` — the app reads these for the release browser.
- CI tip: if `pnpm install` in CI errors with a frozen-lockfile mismatch, regenerate the lockfile locally with:

```bash
pnpm install --no-frozen-lockfile
git add pnpm-lock.yaml
git commit -m "chore: update pnpm-lock.yaml"
```

Developer notes

- Built with SvelteKit + Vite and styled with TailwindCSS. Routes expose a home listing and per-resource detail pages.
- Keep changes small and UI-focused. If you add a new release, drop its manifest under `static/resources/<release>/manifest.json`.

Contributing

- Open issues and PRs welcome. Please include a short description and screenshots where helpful.


## Generating

Requires `yq` and `kubectl`.
24 changes: 24 additions & 0 deletions ecosystem.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module.exports = {
apps: [
{
name: 'resource-browser',
// use pnpm if pnpm is installed; fallback to npm would be explicit
script: 'pnpm',
args: 'run dev -- --host 0.0.0.0',
// Ensure cwd points to the actual workspace path for this environment
cwd: 'resource-browser',
// Do not specify an interpreter; allow PM2 to execute `pnpm` directly
// interpreter: 'bash',
env: {
NODE_ENV: 'development'
},
watch: false,
autorestart: true,
restart_delay: 5000,
max_restarts: 10,
error_file: 'resource-browser/logs/pm2-error.log',
out_file: 'resource-browser/logs/pm2-out.log',
log_date_format: 'YYYY-MM-DD HH:mm Z'
}
]
}
23 changes: 23 additions & 0 deletions ecosystem.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = {
apps: [
{
name: 'resource-browser',
script: 'pnpm',
args: 'run dev -- --host 0.0.0.0',
// Ensure this matches where the repo is checked out on the host
cwd: '/home/noksysadm/work/resource-browser',
// Leave interpreter unset so PM2 executes the 'pnpm' binary directly
// interpreter: 'bash',
env: {
NODE_ENV: 'development'
},
watch: false,
autorestart: true,
restart_delay: 5000,
max_restarts: 10,
error_file: '/home/noksysadm/work/resource-browser/logs/pm2-error.log',
out_file: '/home/noksysadm/work/resource-browser/logs/pm2-out.log',
log_date_format: 'YYYY-MM-DD HH:mm Z'
}
]
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "resource-browser",
"private": true,
"version": "0.0.1",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite dev --host 0.0.0.0",
Expand All @@ -16,6 +16,9 @@
"test": "npm run test:unit -- --run && npm run test:e2e",
"test:e2e": "playwright test"
},
"dependencies": {
"ajv": "^8.17.1"
},
"devDependencies": {
"@eslint/compat": "^1.2.5",
"@eslint/js": "^9.18.0",
Expand Down
30 changes: 30 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading