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

@@ -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