fix(ci): add Gitea CI workflows, documentation updates, and packaging metadata tweaks

This commit is contained in:
2026-01-26 12:48:50 +00:00
parent 4269058ab5
commit f7cd43933f
13 changed files with 326 additions and 61 deletions

View File

@@ -0,0 +1,66 @@
name: Default (not tags)
on:
push:
tags-ignore:
- '**'
env:
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-}
jobs:
security:
runs-on: ubuntu-latest
continue-on-error: true
container:
image: ${-{ env.IMAGE }-}
steps:
- uses: actions/checkout@v3
- name: Install pnpm and npmci
run: |
pnpm install -g pnpm
pnpm install -g @ship.zone/npmci
- name: Run npm prepare
run: npmci npm prepare
- name: Audit production dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --prod
continue-on-error: true
- name: Audit development dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --dev
continue-on-error: true
test:
if: ${-{ always() }-}
needs: security
runs-on: ubuntu-latest
container:
image: ${-{ env.IMAGE }-}
steps:
- uses: actions/checkout@v3
- name: Test stable
run: |
npmci node install stable
npmci npm install
npmci npm test
- name: Test build
run: |
npmci node install stable
npmci npm install
npmci npm build

View File

@@ -0,0 +1,124 @@
name: Default (tags)
on:
push:
tags:
- '*'
env:
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
NPMCI_URL_CLOUDLY: ${-{secrets.NPMCI_URL_CLOUDLY}-}
jobs:
security:
runs-on: ubuntu-latest
continue-on-error: true
container:
image: ${-{ env.IMAGE }-}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @ship.zone/npmci
npmci npm prepare
- name: Audit production dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --prod
continue-on-error: true
- name: Audit development dependencies
run: |
npmci command npm config set registry https://registry.npmjs.org
npmci command pnpm audit --audit-level=high --dev
continue-on-error: true
test:
if: ${-{ always() }-}
needs: security
runs-on: ubuntu-latest
container:
image: ${-{ env.IMAGE }-}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @ship.zone/npmci
npmci npm prepare
- name: Test stable
run: |
npmci node install stable
npmci npm install
npmci npm test
- name: Test build
run: |
npmci node install stable
npmci npm install
npmci npm build
release:
needs: test
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
container:
image: ${-{ env.IMAGE }-}
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @ship.zone/npmci
npmci npm prepare
- name: Release
run: |
npmci node install stable
npmci npm publish
metadata:
needs: test
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
container:
image: ${-{ env.IMAGE }-}
continue-on-error: true
steps:
- uses: actions/checkout@v3
- name: Prepare
run: |
pnpm install -g pnpm
pnpm install -g @ship.zone/npmci
npmci npm prepare
- name: Code quality
run: |
npmci command npm install -g typescript
npmci npm install
- name: Trigger
run: npmci trigger
- name: Build docs and upload artifacts
run: |
npmci node install stable
npmci npm install
pnpm install -g @git.zone/tsdoc
npmci command tsdoc
continue-on-error: true

11
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "npm test",
"name": "Run npm test",
"request": "launch",
"type": "node-terminal"
}
]
}

26
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm", "wcc"]
}
}
}
}
}
}
]
}

View File

@@ -1,6 +1,17 @@
# Changelog # Changelog
## 2026-01-26 - 1.6.1 - fix(ci)
add Gitea CI workflows, documentation updates, and packaging metadata tweaks
- Add .gitea workflow files for tag and non-tag pushes (security, test, release, metadata jobs)
- Add buildDocs script (tsdoc) and add bugs/homepage/pnpm.overrides entries to package.json
- Update README and readme.hints.md with real-time streaming docs, formatting/table fixes, and examples punctuation fixes
- Tidy npmextra.json formatting and array inline style changes
- Update changelog.md entries and correct trailing newline/formatting
- Minor .gitignore whitespace fix
## 2026-01-25 - 1.6.0 - feat(readme) ## 2026-01-25 - 1.6.0 - feat(readme)
document real-time change streaming and expand README with features, architecture, and configuration updates document real-time change streaming and expand README with features, architecture, and configuration updates
- Add Real-Time Change Streaming section: MongoDB change streams, S3 polling (ETag), activity stream, WebSocket subscriptions, and auto-reconnect behavior - Add Real-Time Change Streaming section: MongoDB change streams, S3 polling (ETag), activity stream, WebSocket subscriptions, and auto-reconnect behavior
@@ -10,6 +21,7 @@ document real-time change streaming and expand README with features, architectur
- Minor wording, formatting, and installation clarifications (prefer pnpm examples, fix LICENSE filename case) - Minor wording, formatting, and installation clarifications (prefer pnpm examples, fix LICENSE filename case)
## 2026-01-25 - 1.5.0 - feat(streaming) ## 2026-01-25 - 1.5.0 - feat(streaming)
add real-time streaming (MongoDB change streams & S3 bucket watchers) with WebSocket subscriptions and activity stream UI add real-time streaming (MongoDB change streams & S3 bucket watchers) with WebSocket subscriptions and activity stream UI
- Server: add ChangeStreamManager to manage MongoDB change streams and S3 BucketWatcher subscriptions, handle subscription lifecycle, activity ring buffer and push events via TypedSocket. - Server: add ChangeStreamManager to manage MongoDB change streams and S3 BucketWatcher subscriptions, handle subscription lifecycle, activity ring buffer and push events via TypedSocket.
@@ -20,6 +32,7 @@ add real-time streaming (MongoDB change streams & S3 bucket watchers) with WebSo
- Docs: update readme.hints.md with Real-Time Streaming architecture, interfaces and dependency notes. - Docs: update readme.hints.md with Real-Time Streaming architecture, interfaces and dependency notes.
## 2026-01-25 - 1.4.0 - feat(web) ## 2026-01-25 - 1.4.0 - feat(web)
add database overview panel, collection overview and resizable panels; show/hide system databases; use code editor with change-tracking in document view; add getDatabaseStats API and typings; enable overwrite for S3 uploads add database overview panel, collection overview and resizable panels; show/hide system databases; use code editor with change-tracking in document view; add getDatabaseStats API and typings; enable overwrite for S3 uploads
- Add backend handler getDatabaseStats + request/response typings (IReq_GetDatabaseStats, IDatabaseStats) and ApiService.getDatabaseStats() - Add backend handler getDatabaseStats + request/response typings (IReq_GetDatabaseStats, IDatabaseStats) and ApiService.getDatabaseStats()
@@ -32,6 +45,7 @@ add database overview panel, collection overview and resizable panels; show/hide
- Minor dependency bumps: @git.zone/tstest and @design.estate/dees-catalog - Minor dependency bumps: @git.zone/tstest and @design.estate/dees-catalog
## 2026-01-25 - 1.3.0 - feat(s3) ## 2026-01-25 - 1.3.0 - feat(s3)
add S3 create file/folder dialogs and in-place text editor; export mongodb plugin add S3 create file/folder dialogs and in-place text editor; export mongodb plugin
- Add mongodb dependency and export mongodb in ts/plugins.ts so ObjectId can be reused from plugins. - Add mongodb dependency and export mongodb in ts/plugins.ts so ObjectId can be reused from plugins.
@@ -42,6 +56,7 @@ add S3 create file/folder dialogs and in-place text editor; export mongodb plugi
- Various styling and UX improvements for dialogs, buttons, and editor states. - Various styling and UX improvements for dialogs, buttons, and editor states.
## 2026-01-25 - 1.2.0 - feat(s3,web-ui) ## 2026-01-25 - 1.2.0 - feat(s3,web-ui)
add S3 deletePrefix and getObjectUrl endpoints and add context menus in UI for S3 and Mongo views add S3 deletePrefix and getObjectUrl endpoints and add context menus in UI for S3 and Mongo views
- Add server-side TypedHandlers: deletePrefix and getObjectUrl (ts/api/handlers.s3.ts) - Add server-side TypedHandlers: deletePrefix and getObjectUrl (ts/api/handlers.s3.ts)
@@ -51,24 +66,28 @@ add S3 deletePrefix and getObjectUrl endpoints and add context menus in UI for S
- Switch from inline delete buttons to contextual menus for safer UX; implement downloads via data URLs returned by getObjectUrl and deletion of S3 prefixes (folders) - Switch from inline delete buttons to contextual menus for safer UX; implement downloads via data URLs returned by getObjectUrl and deletion of S3 prefixes (folders)
## 2026-01-25 - 1.1.3 - fix(package) ## 2026-01-25 - 1.1.3 - fix(package)
update package metadata update package metadata
- metadata-only change; no source code changes - metadata-only change; no source code changes
- current version 1.1.2 → recommended patch bump to 1.1.3 - current version 1.1.2 → recommended patch bump to 1.1.3
## 2026-01-25 - 1.1.2 - fix(package) ## 2026-01-25 - 1.1.2 - fix(package)
apply minor metadata-only change (one-line edit) apply minor metadata-only change (one-line edit)
- Change affects 1 file with a +1 -1 (metadata-only) — no behavioral changes - Change affects 1 file with a +1 -1 (metadata-only) — no behavioral changes
- Recommended bump of patch version from 1.1.1 to 1.1.2 - Recommended bump of patch version from 1.1.1 to 1.1.2
## 2026-01-25 - 1.1.1 - fix(tsview) ## 2026-01-25 - 1.1.1 - fix(tsview)
fix bad build commit - remove accidental include fix bad build commit - remove accidental include
- Removed an accidental include that caused a bad build and unintended files to be part of the commit - Removed an accidental include that caused a bad build and unintended files to be part of the commit
- Patch release recommended from 1.1.0 to 1.1.1 - Patch release recommended from 1.1.0 to 1.1.1
## 2026-01-25 - 1.1.0 - feat(tsview) ## 2026-01-25 - 1.1.0 - feat(tsview)
add database and S3 handlers, tswatch/watch scripts, web utilities, assets and release config add database and S3 handlers, tswatch/watch scripts, web utilities, assets and release config
- Add MongoDB management handlers: createDatabase, dropDatabase, dropCollection (ts/api/handlers.mongodb.ts) - Add MongoDB management handlers: createDatabase, dropDatabase, dropCollection (ts/api/handlers.mongodb.ts)
@@ -80,6 +99,7 @@ add database and S3 handlers, tswatch/watch scripts, web utilities, assets and r
- Add release/registry and project metadata in npmextra.json for publishing - Add release/registry and project metadata in npmextra.json for publishing
## 2026-01-23 - 1.0.0 - initial release: column view UI, S3 integration, and API fixes ## 2026-01-23 - 1.0.0 - initial release: column view UI, S3 integration, and API fixes
Initial public release introducing the new column-based UI with resizable columns and horizontal navigation, plus backend fixes for S3 bucket listing and API endpoint handling. Initial public release introducing the new column-based UI with resizable columns and horizontal navigation, plus backend fixes for S3 bucket listing and API endpoint handling.
- feat: Add resizable columns and horizontal scrolling - feat: Add resizable columns and horizontal scrolling

View File

@@ -6,9 +6,7 @@
"to": "./ts/bundled_ui.ts", "to": "./ts/bundled_ui.ts",
"outputMode": "base64ts", "outputMode": "base64ts",
"bundler": "esbuild", "bundler": "esbuild",
"includeFiles": [ "includeFiles": ["html/**/*"]
"html/**/*"
]
} }
] ]
}, },
@@ -34,14 +32,9 @@
"openBrowser": false "openBrowser": false
}, },
"@git.zone/cli": { "@git.zone/cli": {
"services": [ "services": ["mongodb", "minio"],
"mongodb",
"minio"
],
"release": { "release": {
"registries": [ "registries": ["https://verdaccio.lossless.digital"],
"https://verdaccio.lossless.digital"
],
"accessLevel": "public" "accessLevel": "public"
}, },
"projectType": "npm", "projectType": "npm",

View File

@@ -13,7 +13,8 @@
"build": "pnpm run bundle && tsbuild --allowimplicitany", "build": "pnpm run bundle && tsbuild --allowimplicitany",
"bundle": "tsbundle", "bundle": "tsbundle",
"startTs": "node cli.ts.js", "startTs": "node cli.ts.js",
"watch": "tswatch" "watch": "tswatch",
"buildDocs": "tsdoc"
}, },
"bin": { "bin": {
"tsview": "cli.js" "tsview": "cli.js"
@@ -67,5 +68,12 @@
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://code.foss.global/git.zone/tsview.git" "url": "https://code.foss.global/git.zone/tsview.git"
},
"bugs": {
"url": "https://code.foss.global/git.zone/tsview/issues"
},
"homepage": "https://code.foss.global/git.zone/tsview#readme",
"pnpm": {
"overrides": {}
} }
} }

View File

@@ -1,37 +1,44 @@
# tsview - Project Hints # tsview - Project Hints
## Overview ## Overview
tsview is a CLI tool for viewing S3 and MongoDB data through a web UI. tsview is a CLI tool for viewing S3 and MongoDB data through a web UI.
## Key Patterns ## Key Patterns
### Configuration ### Configuration
- Reads from `.nogit/env.json` (created by `gitzone service`) - Reads from `.nogit/env.json` (created by `gitzone service`)
- Environment variables: MONGODB_URL, S3_HOST, S3_ACCESSKEY, etc. - Environment variables: MONGODB_URL, S3_HOST, S3_ACCESSKEY, etc.
### CLI Commands ### CLI Commands
- `tsview` - Start viewer (auto-finds free port from 3010+) - `tsview` - Start viewer (auto-finds free port from 3010+)
- `tsview --port 3000` - Force specific port - `tsview --port 3000` - Force specific port
- `tsview s3` - S3 viewer only - `tsview s3` - S3 viewer only
- `tsview mongo` - MongoDB viewer only - `tsview mongo` - MongoDB viewer only
### Dependencies ### Dependencies
- Uses `@push.rocks/smartbucket` for S3 operations - Uses `@push.rocks/smartbucket` for S3 operations
- Uses `@push.rocks/smartdata` for MongoDB operations - Uses `@push.rocks/smartdata` for MongoDB operations
- Uses `@api.global/typedserver` + `@api.global/typedrequest` for API - Uses `@api.global/typedserver` + `@api.global/typedrequest` for API
- Uses `@design.estate/dees-catalog` for UI components - Uses `@design.estate/dees-catalog` for UI components
### Build Process ### Build Process
- Run `pnpm build` to compile TypeScript and bundle web UI - Run `pnpm build` to compile TypeScript and bundle web UI
- UI is bundled from `ts_web/` to `ts/bundled_ui.ts` as base64 - UI is bundled from `ts_web/` to `ts/bundled_ui.ts` as base64
### Web UI Structure ### Web UI Structure
- `ts_web/elements/` - Web components (LitElement-based) - `ts_web/elements/` - Web components (LitElement-based)
- `ts_web/services/` - API service for backend communication - `ts_web/services/` - API service for backend communication
- `ts_web/utilities/` - Shared formatting functions (formatSize, formatCount, getFileName) - `ts_web/utilities/` - Shared formatting functions (formatSize, formatCount, getFileName)
- `ts_web/styles/` - Shared CSS custom properties (themeStyles) - `ts_web/styles/` - Shared CSS custom properties (themeStyles)
### TypedRequest Pattern ### TypedRequest Pattern
```typescript ```typescript
// Interface definition // Interface definition
export interface IReq_ListBuckets extends plugins.typedrequest.implementsTR< export interface IReq_ListBuckets extends plugins.typedrequest.implementsTR<
@@ -57,27 +64,32 @@ typedrouter.addTypedHandler(
## Real-Time Streaming (v1.5.0+) ## Real-Time Streaming (v1.5.0+)
### Architecture ### Architecture
- `ts/streaming/` - Backend streaming infrastructure - `ts/streaming/` - Backend streaming infrastructure
- `classes.changestream-manager.ts` - Manages MongoDB and S3 watchers - `classes.changestream-manager.ts` - Manages MongoDB and S3 watchers
- `interfaces.streaming.ts` - TypedRequest interfaces for subscriptions - `interfaces.streaming.ts` - TypedRequest interfaces for subscriptions
- `ts_web/services/changestream.service.ts` - Frontend WebSocket client - `ts_web/services/changestream.service.ts` - Frontend WebSocket client
### MongoDB Change Streams ### MongoDB Change Streams
- Uses native MongoDB Change Streams via `SmartdataDb.mongoDbClient` - Uses native MongoDB Change Streams via `SmartdataDb.mongoDbClient`
- Subscription per collection: `db/collection` - Subscription per collection: `db/collection`
- Events: insert, update, delete, replace, drop - Events: insert, update, delete, replace, drop
### S3 Change Detection ### S3 Change Detection
- Uses `@push.rocks/smartbucket` BucketWatcher (polling-based) - Uses `@push.rocks/smartbucket` BucketWatcher (polling-based)
- Polling interval: 5 seconds - Polling interval: 5 seconds
- Events: add, modify, delete - Events: add, modify, delete
### Frontend Components ### Frontend Components
- `tsview-activity-stream.ts` - Combined activity view with filtering - `tsview-activity-stream.ts` - Combined activity view with filtering
- MongoDB/S3 browsers auto-subscribe to current resource - MongoDB/S3 browsers auto-subscribe to current resource
- Visual indicators for "Live" status and recent change count - Visual indicators for "Live" status and recent change count
### Key Streaming Interfaces ### Key Streaming Interfaces
```typescript ```typescript
// Subscribe to collection changes // Subscribe to collection changes
IReq_SubscribeMongo: { database, collection } -> { success, subscriptionId } IReq_SubscribeMongo: { database, collection } -> { success, subscriptionId }
@@ -95,5 +107,6 @@ IReq_PushActivityEvent: { event: IActivityEvent } -> { received }
``` ```
### Dependencies Added ### Dependencies Added
- `@api.global/typedsocket` - WebSocket client/server - `@api.global/typedsocket` - WebSocket client/server
- `@push.rocks/smartrx` - RxJS utilities - `@push.rocks/smartrx` - RxJS utilities

View File

@@ -19,6 +19,7 @@ pnpm add @git.zone/tsview
## Features ✨ ## Features ✨
### 🗄️ S3 Storage Browser ### 🗄️ S3 Storage Browser
- **Column View Navigation** — Mac Finder-style interface with resizable columns - **Column View Navigation** — Mac Finder-style interface with resizable columns
- **List View** — Traditional key-based view with hierarchical navigation - **List View** — Traditional key-based view with hierarchical navigation
- **Real-time Preview** — View images, JSON, text files, code, and more directly in the browser - **Real-time Preview** — View images, JSON, text files, code, and more directly in the browser
@@ -29,6 +30,7 @@ pnpm add @git.zone/tsview
- **Breadcrumb Navigation** — Clickable path traversal - **Breadcrumb Navigation** — Clickable path traversal
### 🍃 MongoDB Browser ### 🍃 MongoDB Browser
- **Database Explorer** — Hierarchical navigation through databases and collections - **Database Explorer** — Hierarchical navigation through databases and collections
- **Database Overview** — Collection counts, data sizes, index stats at a glance - **Database Overview** — Collection counts, data sizes, index stats at a glance
- **Document Viewer** — Paginated table view with JSON filter support - **Document Viewer** — Paginated table view with JSON filter support
@@ -39,6 +41,7 @@ pnpm add @git.zone/tsview
- **Show/Hide System Databases** — Toggle visibility of `admin`, `local`, `config` - **Show/Hide System Databases** — Toggle visibility of `admin`, `local`, `config`
### ⚡ Real-Time Change Streaming ### ⚡ Real-Time Change Streaming
- **MongoDB Change Streams** — Live updates via native MongoDB change streams - **MongoDB Change Streams** — Live updates via native MongoDB change streams
- **S3 Change Detection** — Polling-based bucket monitoring with ETag comparison (5s intervals) - **S3 Change Detection** — Polling-based bucket monitoring with ETag comparison (5s intervals)
- **Activity Stream** — Combined timeline of all changes from both sources, filterable by type - **Activity Stream** — Combined timeline of all changes from both sources, filterable by type
@@ -47,6 +50,7 @@ pnpm add @git.zone/tsview
- **Auto-Reconnect** — Subscriptions automatically restored after connection loss - **Auto-Reconnect** — Subscriptions automatically restored after connection loss
### 🎨 Modern Web UI ### 🎨 Modern Web UI
- 🌙 Dark theme designed for developer comfort - 🌙 Dark theme designed for developer comfort
- 📱 Responsive layout with resizable panels - 📱 Responsive layout with resizable panels
- ⌨️ Context menus for quick actions - ⌨️ Context menus for quick actions
@@ -114,12 +118,12 @@ viewer.setS3Config({
port: 9000, port: 9000,
accessKey: 'minioadmin', accessKey: 'minioadmin',
accessSecret: 'minioadmin', accessSecret: 'minioadmin',
useSsl: false useSsl: false,
}); });
viewer.setMongoConfig({ viewer.setMongoConfig({
mongoDbUrl: 'mongodb://localhost:27017', mongoDbUrl: 'mongodb://localhost:27017',
mongoDbName: 'mydb' mongoDbName: 'mydb',
}); });
// Option 3: Cloud services // Option 3: Cloud services
@@ -128,12 +132,12 @@ viewer.setS3Config({
accessKey: 'AKIAXXXXXXX', accessKey: 'AKIAXXXXXXX',
accessSecret: 'your-secret-key', accessSecret: 'your-secret-key',
useSsl: true, useSsl: true,
region: 'us-east-1' region: 'us-east-1',
}); });
viewer.setMongoConfig({ viewer.setMongoConfig({
mongoDbUrl: 'mongodb+srv://user:pass@cluster.mongodb.net', mongoDbUrl: 'mongodb+srv://user:pass@cluster.mongodb.net',
mongoDbName: 'production' mongoDbName: 'production',
}); });
// Start the server // Start the server
@@ -161,11 +165,11 @@ await viewer.stop();
} }
``` ```
| Option | Type | Default | Description | | Option | Type | Default | Description |
|--------|------|---------|-------------| | ------------- | --------- | ------- | -------------------------------------------- |
| `port` | `number` | auto | Fixed port (auto-finds from 3010 if not set) | | `port` | `number` | auto | Fixed port (auto-finds from 3010 if not set) |
| `killIfBusy` | `boolean` | `false` | Kill existing process if port is busy | | `killIfBusy` | `boolean` | `false` | Kill existing process if port is busy |
| `openBrowser` | `boolean` | `true` | Automatically open browser on start | | `openBrowser` | `boolean` | `true` | Automatically open browser on start |
**Port priority:** CLI `--port` flag → `npmextra.json` → auto-detect **Port priority:** CLI `--port` flag → `npmextra.json` → auto-detect
@@ -173,54 +177,54 @@ await viewer.stop();
#### S3 #### S3
| Variable | Description | | Variable | Description |
|----------|-------------| | -------------- | ----------------------------- |
| `S3_ENDPOINT` | S3-compatible server hostname | | `S3_ENDPOINT` | S3-compatible server hostname |
| `S3_PORT` | Server port (optional) | | `S3_PORT` | Server port (optional) |
| `S3_ACCESSKEY` | Access key ID | | `S3_ACCESSKEY` | Access key ID |
| `S3_SECRETKEY` | Secret access key | | `S3_SECRETKEY` | Secret access key |
| `S3_USESSL` | Use HTTPS (`true`/`false`) | | `S3_USESSL` | Use HTTPS (`true`/`false`) |
#### MongoDB #### MongoDB
| Variable | Description | | Variable | Description |
|----------|-------------| | -------------- | ---------------------------------- |
| `MONGODB_URL` | Full connection string (preferred) | | `MONGODB_URL` | Full connection string (preferred) |
| `MONGODB_NAME` | Default database name | | `MONGODB_NAME` | Default database name |
Or use individual variables: Or use individual variables:
| Variable | Description | | Variable | Description |
|----------|-------------| | -------------- | ------------- |
| `MONGODB_HOST` | Hostname | | `MONGODB_HOST` | Hostname |
| `MONGODB_PORT` | Port | | `MONGODB_PORT` | Port |
| `MONGODB_USER` | Username | | `MONGODB_USER` | Username |
| `MONGODB_PASS` | Password | | `MONGODB_PASS` | Password |
| `MONGODB_NAME` | Database name | | `MONGODB_NAME` | Database name |
## Supported S3 Providers ## Supported S3 Providers
tsview works with any S3-compatible storage: tsview works with any S3-compatible storage:
| Provider | Status | | Provider | Status |
|----------|--------| | ----------------------- | --------------------------- |
| **MinIO** | ✅ Perfect for local dev | | **MinIO** | ✅ Perfect for local dev |
| **AWS S3** | ✅ Amazon's object storage | | **AWS S3** | ✅ Amazon's object storage |
| **DigitalOcean Spaces** | ✅ Simple object storage | | **DigitalOcean Spaces** | ✅ Simple object storage |
| **Backblaze B2** | ✅ S3-compatible API | | **Backblaze B2** | ✅ S3-compatible API |
| **Cloudflare R2** | ✅ Zero egress fees | | **Cloudflare R2** | ✅ Zero egress fees |
| **Wasabi** | ✅ Hot cloud storage | | **Wasabi** | ✅ Hot cloud storage |
| **Self-hosted** | ✅ Any S3-compatible server | | **Self-hosted** | ✅ Any S3-compatible server |
## Supported File Types for Preview ## Supported File Types for Preview
| Category | Extensions | | Category | Extensions |
|----------|------------| | ------------- | ------------------------------------------------------ |
| **Images** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` | | **Images** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` |
| **Text** | `.txt`, `.md`, `.log`, `.sh`, `.env` | | **Text** | `.txt`, `.md`, `.log`, `.sh`, `.env` |
| **Code** | `.json`, `.js`, `.ts`, `.tsx`, `.jsx`, `.html`, `.css` | | **Code** | `.json`, `.js`, `.ts`, `.tsx`, `.jsx`, `.html`, `.css` |
| **Data** | `.csv`, `.xml`, `.yaml`, `.yml` | | **Data** | `.csv`, `.xml`, `.yaml`, `.yml` |
| **Documents** | `.pdf` | | **Documents** | `.pdf` |
## Architecture ## Architecture

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/tsview', name: '@git.zone/tsview',
version: '1.6.0', version: '1.6.1',
description: 'A CLI tool for viewing S3 and MongoDB data with a web UI' description: 'A CLI tool for viewing S3 and MongoDB data with a web UI'
} }

File diff suppressed because one or more lines are too long

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/tsview', name: '@git.zone/tsview',
version: '1.6.0', version: '1.6.1',
description: 'A CLI tool for viewing S3 and MongoDB data with a web UI' description: 'A CLI tool for viewing S3 and MongoDB data with a web UI'
} }