50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# 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
|
|
|
|
### TypedRequest Pattern
|
|
```typescript
|
|
// Interface definition
|
|
export interface IReq_ListBuckets extends plugins.typedrequest.implementsTR<
|
|
plugins.typedrequest.ITypedRequest,
|
|
IReq_ListBuckets
|
|
> {
|
|
method: 'listBuckets';
|
|
request: {};
|
|
response: { buckets: string[] };
|
|
}
|
|
|
|
// Handler registration
|
|
typedrouter.addTypedHandler(
|
|
new plugins.typedrequest.TypedHandler<IReq_ListBuckets>(
|
|
'listBuckets',
|
|
async (reqData) => {
|
|
return { buckets: [...] };
|
|
}
|
|
)
|
|
);
|
|
```
|