This commit is contained in:
2026-01-23 22:15:51 +00:00
commit 74d24cf8b9
44 changed files with 15483 additions and 0 deletions

123
readme.md Normal file
View File

@@ -0,0 +1,123 @@
# @git.zone/tsview
A CLI tool for viewing S3 and MongoDB data with a web UI.
## Installation
```bash
npm install -g @git.zone/tsview
# or
pnpm add -g @git.zone/tsview
```
## Usage
### CLI
```bash
# Start viewer (auto-finds free port from 3010+)
tsview
# Force specific port
tsview --port 3000
# S3 viewer only
tsview s3
# MongoDB viewer only
tsview mongo
```
### Configuration
tsview reads configuration from `.nogit/env.json` (the same format used by `gitzone service`):
```json
{
"S3_ENDPOINT": "localhost",
"S3_PORT": "9000",
"S3_ACCESSKEY": "minioadmin",
"S3_SECRETKEY": "minioadmin",
"S3_USESSL": false,
"MONGODB_URL": "mongodb://localhost:27017",
"MONGODB_NAME": "mydb"
}
```
### Programmatic API
```typescript
import { TsView } from '@git.zone/tsview';
const viewer = new TsView();
// Option 1: Load from env.json (gitzone service)
await viewer.loadConfigFromEnv();
// Option 2: Custom local config (MinIO + local MongoDB)
viewer.setS3Config({
endpoint: 'localhost',
port: 9000,
accessKey: 'minioadmin',
accessSecret: 'minioadmin',
useSsl: false
});
// Option 3: Cloud config (AWS S3 + MongoDB Atlas)
viewer.setS3Config({
endpoint: 's3.amazonaws.com',
accessKey: 'AKIAXXXXXXX',
accessSecret: 'secret',
useSsl: true,
region: 'us-east-1'
});
viewer.setMongoConfig({
mongoDbUrl: 'mongodb+srv://user:pass@cluster.mongodb.net',
mongoDbName: 'mydb'
});
// Start on auto-found port
const port = await viewer.start();
console.log(`Viewer running on http://localhost:${port}`);
// Or force specific port
await viewer.start(3500);
// Stop when done
await viewer.stop();
```
## Features
### S3 Browser
- **Column View**: Mac Finder-style navigation with horizontal columns
- **List View**: Flat list of all keys with filtering
- **Preview Panel**: View images, text, and JSON files
- **Operations**: Download, delete files
### MongoDB Browser
- **Database/Collection Navigation**: Hierarchical sidebar
- **Documents Table**: Paginated view with filtering
- **Document Editor**: Edit documents with JSON syntax highlighting
- **Index Management**: View, create, and drop indexes
## Development
```bash
# Install dependencies
pnpm install
# Build (bundles UI + compiles TypeScript)
pnpm build
# Run tests
pnpm test
# Run in development mode
./cli.ts.js
```
## License
MIT License - see [license](./license) for details.