mirror of
https://github.com/Heretek-AI/Asset-Manager.git
synced 2026-11-07 10:45:57 -10:00
v0.3.0: remote library docs, API reference, version bump
This commit is contained in:
1 parent
e44f3f4c65
commit
cc75252047
5 files changed
+61
-3
No files matched your search
@@ -32,6 +32,13 @@ and a **Python automation API**.
|
||||
|  |  |
|
||||
| Run tab, discovery + one-click actions | Scan of the demo Godot project: import badges, params, live thumbnail |
|
||||
|
||||
## Remote library (self-hosted)
|
||||
|
||||
Publish once, download on demand: the `library` compose service hosts the
|
||||
team catalog (content-addressed blobs + token-auth API), and the
|
||||
`godot-plugin/` editor dock browses and pulls assets straight into
|
||||
`res://` — see [docs/REMOTE_LIBRARY.md](docs/REMOTE_LIBRARY.md).
|
||||
|
||||
## Quick start (Python host)
|
||||
|
||||
```bash
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
"""Asset-Manager core package."""
|
||||
|
||||
__version__ = "0.2.0"
|
||||
__version__ = "0.3.0"
|
||||
+5
-1
@@ -71,4 +71,8 @@ curl -X POST localhost:8080/api/thumbnail \
|
||||
`assetmgr actions [--root] [--scope file]` · `validate` · `info` ·
|
||||
`project-init DIR --name N [--force]` · `run <action-id> [--path P]` ·
|
||||
`status [--path P]` (offline `git status`) · `project-scan <root>` (Godot
|
||||
asset inventory) · `thumbnail SRC [--out PNG]` (exit 3 = no engine).
|
||||
asset inventory) · `thumbnail SRC [--out PNG]` (exit 3 = no engine) ·
|
||||
`library-init DIR` · `library-push FILE --server URL --token T [--name N]
|
||||
[--kind K] [--importer I] [--params JSON] [--tags a,b]` ·
|
||||
`library-pull ID --out PATH --server URL --token T`
|
||||
(server/token also via `ASSETMGR_LIBRARY_URL` / `ASSETMGR_LIBRARY_TOKEN`).
|
||||
@@ -0,0 +1,47 @@
|
||||
# Remote asset library (self-hosted)
|
||||
|
||||
One team library, many thin Godot checkouts. Artists publish finished
|
||||
assets once; developers browse the catalog from inside the editor and
|
||||
download only what they need — no terabyte clones, no vendor cloud.
|
||||
|
||||
## Run it
|
||||
|
||||
```bash
|
||||
cp .env.example .env # then set a real ASSETMGR_LIBRARY_TOKEN
|
||||
docker compose up -d --build library
|
||||
curl localhost:8081/health # -> {"ok": true}
|
||||
```
|
||||
|
||||
Data lives in the `library-data` volume (`store/` blobs + `library.db`).
|
||||
The API is token-authenticated (`Authorization: Bearer <token>`):
|
||||
|
||||
- `GET /api/v1/assets?q=&tag=&kind=` — search the catalog
|
||||
- `POST /api/v1/assets?name=&kind=&importer=¶ms={}&tags=` (raw body)
|
||||
— publish; replies `{"id", "blob_sha256"}` (dedupe is by content hash)
|
||||
- `GET /api/v1/assets/<id>/blob` — download bytes
|
||||
|
||||
The same operations exist offline-first on the CLI:
|
||||
`assetmgr library-init|library-push|library-pull` (see `docs/API.md`).
|
||||
Uploads are capped at 2 GiB (`MAX_UPLOAD_BYTES`); no chunked upload yet.
|
||||
|
||||
## Connect Godot
|
||||
|
||||
1. Copy `godot-plugin/addons/asset_library/` into your project's `addons/`.
|
||||
2. Project → Project Settings → Plugins → enable **Asset Library**.
|
||||
3. Open the dock (left), enter server URL + token, Search, select, Download.
|
||||
Files land in `res://<name>` and the editor filesystem rescans, so
|
||||
`.import` sidecars generate on the spot.
|
||||
|
||||
Publish the other way with the `godot::publish-to-library` action
|
||||
(importer + params travel in the upload), or plain
|
||||
`assetmgr library-push`.
|
||||
|
||||
## Security notes (read before exposing this)
|
||||
|
||||
- Token auth only, **no TLS, no users, no rate limiting**. Safe on a LAN /
|
||||
VPN or behind a reverse proxy that adds TLS — do not put 8081 directly
|
||||
on the internet.
|
||||
- Tokens live in `.env` (git-ignored; see `.env.example`). Rotate by
|
||||
changing the value and recreating the container.
|
||||
- The server trusts its operator: anyone with the token can read and
|
||||
write every asset.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "asset-manager"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
description = "OSS asset manager: action-plugin host, git-first version control, Python automation API"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
Reference in new issue
Block a user