Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 856f13f2ad | |||
| f7cd43933f |
66
.gitea/workflows/default_nottags.yaml
Normal file
66
.gitea/workflows/default_nottags.yaml
Normal 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
|
||||
124
.gitea/workflows/default_tags.yaml
Normal file
124
.gitea/workflows/default_tags.yaml
Normal 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
11
.vscode/launch.json
vendored
Normal 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
26
.vscode/settings.json
vendored
Normal 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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
20
changelog.md
20
changelog.md
@@ -1,6 +1,17 @@
|
||||
# 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)
|
||||
|
||||
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
|
||||
@@ -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)
|
||||
|
||||
## 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
|
||||
|
||||
- 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.
|
||||
|
||||
## 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 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
|
||||
|
||||
## 2026-01-25 - 1.3.0 - feat(s3)
|
||||
|
||||
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.
|
||||
@@ -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.
|
||||
|
||||
## 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 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)
|
||||
|
||||
## 2026-01-25 - 1.1.3 - fix(package)
|
||||
|
||||
update package metadata
|
||||
|
||||
- metadata-only change; no source code changes
|
||||
- current version 1.1.2 → recommended patch bump to 1.1.3
|
||||
|
||||
## 2026-01-25 - 1.1.2 - fix(package)
|
||||
|
||||
apply minor metadata-only change (one-line edit)
|
||||
|
||||
- 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
|
||||
|
||||
## 2026-01-25 - 1.1.1 - fix(tsview)
|
||||
|
||||
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
|
||||
- Patch release recommended from 1.1.0 to 1.1.1
|
||||
|
||||
## 2026-01-25 - 1.1.0 - feat(tsview)
|
||||
|
||||
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)
|
||||
@@ -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
|
||||
|
||||
## 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.
|
||||
|
||||
- feat: Add resizable columns and horizontal scrolling
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
"to": "./ts/bundled_ui.ts",
|
||||
"outputMode": "base64ts",
|
||||
"bundler": "esbuild",
|
||||
"includeFiles": [
|
||||
"html/**/*"
|
||||
]
|
||||
"includeFiles": ["html/**/*"]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -34,14 +32,9 @@
|
||||
"openBrowser": false
|
||||
},
|
||||
"@git.zone/cli": {
|
||||
"services": [
|
||||
"mongodb",
|
||||
"minio"
|
||||
],
|
||||
"services": ["mongodb", "minio"],
|
||||
"release": {
|
||||
"registries": [
|
||||
"https://verdaccio.lossless.digital"
|
||||
],
|
||||
"registries": ["https://verdaccio.lossless.digital"],
|
||||
"accessLevel": "public"
|
||||
},
|
||||
"projectType": "npm",
|
||||
|
||||
12
package.json
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@git.zone/tsview",
|
||||
"version": "1.6.0",
|
||||
"version": "1.6.1",
|
||||
"private": false,
|
||||
"description": "A CLI tool for viewing S3 and MongoDB data with a web UI",
|
||||
"main": "dist_ts/index.js",
|
||||
@@ -13,7 +13,8 @@
|
||||
"build": "pnpm run bundle && tsbuild --allowimplicitany",
|
||||
"bundle": "tsbundle",
|
||||
"startTs": "node cli.ts.js",
|
||||
"watch": "tswatch"
|
||||
"watch": "tswatch",
|
||||
"buildDocs": "tsdoc"
|
||||
},
|
||||
"bin": {
|
||||
"tsview": "cli.js"
|
||||
@@ -67,5 +68,12 @@
|
||||
"repository": {
|
||||
"type": "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": {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,44 @@
|
||||
# tsview - Project Hints
|
||||
|
||||
## Overview
|
||||
|
||||
tsview is a CLI tool for viewing S3 and MongoDB data through a web UI.
|
||||
|
||||
## Key Patterns
|
||||
|
||||
### Configuration
|
||||
|
||||
- Reads from `.nogit/env.json` (created by `gitzone service`)
|
||||
- Environment variables: MONGODB_URL, S3_HOST, S3_ACCESSKEY, etc.
|
||||
|
||||
### CLI Commands
|
||||
|
||||
- `tsview` - Start viewer (auto-finds free port from 3010+)
|
||||
- `tsview --port 3000` - Force specific port
|
||||
- `tsview s3` - S3 viewer only
|
||||
- `tsview mongo` - MongoDB viewer only
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Uses `@push.rocks/smartbucket` for S3 operations
|
||||
- Uses `@push.rocks/smartdata` for MongoDB operations
|
||||
- Uses `@api.global/typedserver` + `@api.global/typedrequest` for API
|
||||
- Uses `@design.estate/dees-catalog` for UI components
|
||||
|
||||
### Build Process
|
||||
|
||||
- Run `pnpm build` to compile TypeScript and bundle web UI
|
||||
- UI is bundled from `ts_web/` to `ts/bundled_ui.ts` as base64
|
||||
|
||||
### Web UI Structure
|
||||
|
||||
- `ts_web/elements/` - Web components (LitElement-based)
|
||||
- `ts_web/services/` - API service for backend communication
|
||||
- `ts_web/utilities/` - Shared formatting functions (formatSize, formatCount, getFileName)
|
||||
- `ts_web/styles/` - Shared CSS custom properties (themeStyles)
|
||||
|
||||
### TypedRequest Pattern
|
||||
|
||||
```typescript
|
||||
// Interface definition
|
||||
export interface IReq_ListBuckets extends plugins.typedrequest.implementsTR<
|
||||
@@ -57,27 +64,32 @@ typedrouter.addTypedHandler(
|
||||
## Real-Time Streaming (v1.5.0+)
|
||||
|
||||
### Architecture
|
||||
|
||||
- `ts/streaming/` - Backend streaming infrastructure
|
||||
- `classes.changestream-manager.ts` - Manages MongoDB and S3 watchers
|
||||
- `interfaces.streaming.ts` - TypedRequest interfaces for subscriptions
|
||||
- `ts_web/services/changestream.service.ts` - Frontend WebSocket client
|
||||
|
||||
### MongoDB Change Streams
|
||||
|
||||
- Uses native MongoDB Change Streams via `SmartdataDb.mongoDbClient`
|
||||
- Subscription per collection: `db/collection`
|
||||
- Events: insert, update, delete, replace, drop
|
||||
|
||||
### S3 Change Detection
|
||||
|
||||
- Uses `@push.rocks/smartbucket` BucketWatcher (polling-based)
|
||||
- Polling interval: 5 seconds
|
||||
- Events: add, modify, delete
|
||||
|
||||
### Frontend Components
|
||||
|
||||
- `tsview-activity-stream.ts` - Combined activity view with filtering
|
||||
- MongoDB/S3 browsers auto-subscribe to current resource
|
||||
- Visual indicators for "Live" status and recent change count
|
||||
|
||||
### Key Streaming Interfaces
|
||||
|
||||
```typescript
|
||||
// Subscribe to collection changes
|
||||
IReq_SubscribeMongo: { database, collection } -> { success, subscriptionId }
|
||||
@@ -95,5 +107,6 @@ IReq_PushActivityEvent: { event: IActivityEvent } -> { received }
|
||||
```
|
||||
|
||||
### Dependencies Added
|
||||
|
||||
- `@api.global/typedsocket` - WebSocket client/server
|
||||
- `@push.rocks/smartrx` - RxJS utilities
|
||||
|
||||
88
readme.md
88
readme.md
@@ -19,6 +19,7 @@ pnpm add @git.zone/tsview
|
||||
## Features ✨
|
||||
|
||||
### 🗄️ S3 Storage Browser
|
||||
|
||||
- **Column View Navigation** — Mac Finder-style interface with resizable columns
|
||||
- **List View** — Traditional key-based view with hierarchical navigation
|
||||
- **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
|
||||
|
||||
### 🍃 MongoDB Browser
|
||||
|
||||
- **Database Explorer** — Hierarchical navigation through databases and collections
|
||||
- **Database Overview** — Collection counts, data sizes, index stats at a glance
|
||||
- **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`
|
||||
|
||||
### ⚡ Real-Time Change Streaming
|
||||
|
||||
- **MongoDB Change Streams** — Live updates via native MongoDB change streams
|
||||
- **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
|
||||
@@ -47,6 +50,7 @@ pnpm add @git.zone/tsview
|
||||
- **Auto-Reconnect** — Subscriptions automatically restored after connection loss
|
||||
|
||||
### 🎨 Modern Web UI
|
||||
|
||||
- 🌙 Dark theme designed for developer comfort
|
||||
- 📱 Responsive layout with resizable panels
|
||||
- ⌨️ Context menus for quick actions
|
||||
@@ -114,12 +118,12 @@ viewer.setS3Config({
|
||||
port: 9000,
|
||||
accessKey: 'minioadmin',
|
||||
accessSecret: 'minioadmin',
|
||||
useSsl: false
|
||||
useSsl: false,
|
||||
});
|
||||
|
||||
viewer.setMongoConfig({
|
||||
mongoDbUrl: 'mongodb://localhost:27017',
|
||||
mongoDbName: 'mydb'
|
||||
mongoDbName: 'mydb',
|
||||
});
|
||||
|
||||
// Option 3: Cloud services
|
||||
@@ -128,12 +132,12 @@ viewer.setS3Config({
|
||||
accessKey: 'AKIAXXXXXXX',
|
||||
accessSecret: 'your-secret-key',
|
||||
useSsl: true,
|
||||
region: 'us-east-1'
|
||||
region: 'us-east-1',
|
||||
});
|
||||
|
||||
viewer.setMongoConfig({
|
||||
mongoDbUrl: 'mongodb+srv://user:pass@cluster.mongodb.net',
|
||||
mongoDbName: 'production'
|
||||
mongoDbName: 'production',
|
||||
});
|
||||
|
||||
// Start the server
|
||||
@@ -161,11 +165,11 @@ await viewer.stop();
|
||||
}
|
||||
```
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
|--------|------|---------|-------------|
|
||||
| `port` | `number` | auto | Fixed port (auto-finds from 3010 if not set) |
|
||||
| `killIfBusy` | `boolean` | `false` | Kill existing process if port is busy |
|
||||
| `openBrowser` | `boolean` | `true` | Automatically open browser on start |
|
||||
| Option | Type | Default | Description |
|
||||
| ------------- | --------- | ------- | -------------------------------------------- |
|
||||
| `port` | `number` | auto | Fixed port (auto-finds from 3010 if not set) |
|
||||
| `killIfBusy` | `boolean` | `false` | Kill existing process if port is busy |
|
||||
| `openBrowser` | `boolean` | `true` | Automatically open browser on start |
|
||||
|
||||
**Port priority:** CLI `--port` flag → `npmextra.json` → auto-detect
|
||||
|
||||
@@ -173,54 +177,54 @@ await viewer.stop();
|
||||
|
||||
#### S3
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `S3_ENDPOINT` | S3-compatible server hostname |
|
||||
| `S3_PORT` | Server port (optional) |
|
||||
| `S3_ACCESSKEY` | Access key ID |
|
||||
| `S3_SECRETKEY` | Secret access key |
|
||||
| `S3_USESSL` | Use HTTPS (`true`/`false`) |
|
||||
| Variable | Description |
|
||||
| -------------- | ----------------------------- |
|
||||
| `S3_ENDPOINT` | S3-compatible server hostname |
|
||||
| `S3_PORT` | Server port (optional) |
|
||||
| `S3_ACCESSKEY` | Access key ID |
|
||||
| `S3_SECRETKEY` | Secret access key |
|
||||
| `S3_USESSL` | Use HTTPS (`true`/`false`) |
|
||||
|
||||
#### MongoDB
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `MONGODB_URL` | Full connection string (preferred) |
|
||||
| `MONGODB_NAME` | Default database name |
|
||||
| Variable | Description |
|
||||
| -------------- | ---------------------------------- |
|
||||
| `MONGODB_URL` | Full connection string (preferred) |
|
||||
| `MONGODB_NAME` | Default database name |
|
||||
|
||||
Or use individual variables:
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `MONGODB_HOST` | Hostname |
|
||||
| `MONGODB_PORT` | Port |
|
||||
| `MONGODB_USER` | Username |
|
||||
| `MONGODB_PASS` | Password |
|
||||
| Variable | Description |
|
||||
| -------------- | ------------- |
|
||||
| `MONGODB_HOST` | Hostname |
|
||||
| `MONGODB_PORT` | Port |
|
||||
| `MONGODB_USER` | Username |
|
||||
| `MONGODB_PASS` | Password |
|
||||
| `MONGODB_NAME` | Database name |
|
||||
|
||||
## Supported S3 Providers
|
||||
|
||||
tsview works with any S3-compatible storage:
|
||||
|
||||
| Provider | Status |
|
||||
|----------|--------|
|
||||
| **MinIO** | ✅ Perfect for local dev |
|
||||
| **AWS S3** | ✅ Amazon's object storage |
|
||||
| **DigitalOcean Spaces** | ✅ Simple object storage |
|
||||
| **Backblaze B2** | ✅ S3-compatible API |
|
||||
| **Cloudflare R2** | ✅ Zero egress fees |
|
||||
| **Wasabi** | ✅ Hot cloud storage |
|
||||
| **Self-hosted** | ✅ Any S3-compatible server |
|
||||
| Provider | Status |
|
||||
| ----------------------- | --------------------------- |
|
||||
| **MinIO** | ✅ Perfect for local dev |
|
||||
| **AWS S3** | ✅ Amazon's object storage |
|
||||
| **DigitalOcean Spaces** | ✅ Simple object storage |
|
||||
| **Backblaze B2** | ✅ S3-compatible API |
|
||||
| **Cloudflare R2** | ✅ Zero egress fees |
|
||||
| **Wasabi** | ✅ Hot cloud storage |
|
||||
| **Self-hosted** | ✅ Any S3-compatible server |
|
||||
|
||||
## Supported File Types for Preview
|
||||
|
||||
| Category | Extensions |
|
||||
|----------|------------|
|
||||
| **Images** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` |
|
||||
| **Text** | `.txt`, `.md`, `.log`, `.sh`, `.env` |
|
||||
| **Code** | `.json`, `.js`, `.ts`, `.tsx`, `.jsx`, `.html`, `.css` |
|
||||
| **Data** | `.csv`, `.xml`, `.yaml`, `.yml` |
|
||||
| **Documents** | `.pdf` |
|
||||
| Category | Extensions |
|
||||
| ------------- | ------------------------------------------------------ |
|
||||
| **Images** | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` |
|
||||
| **Text** | `.txt`, `.md`, `.log`, `.sh`, `.env` |
|
||||
| **Code** | `.json`, `.js`, `.ts`, `.tsx`, `.jsx`, `.html`, `.css` |
|
||||
| **Data** | `.csv`, `.xml`, `.yaml`, `.yml` |
|
||||
| **Documents** | `.pdf` |
|
||||
|
||||
## Architecture
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
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'
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
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'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user