Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI

on:
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- run: npm ci --legacy-peer-deps

- run: npm run build
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,46 @@ A free, public web tool for browsing [Time-Addressable Media Store (TAMS)](https

- **Multi-store management** -- Connect to multiple TAMS endpoints, switch between them instantly
- **Sources & Flows browser** -- Filterable, sortable tables with customisable columns
- **Scoped listings** -- Show only top-level sources or flows, or only the multi-entities that collect others
- **Ingest status** -- See which flows are growing, from the TAMS 8.2 `status` attribute
- **Flow Profiles** -- Browse profiles and the technical metadata they apply
- **Webhooks** -- List, register, update, and delete webhooks; inspect delivery errors
- **Omakase Player** -- Advanced video player with timeline visualisation
- **Diagram View** -- Interactive graph of TAMS entity relationships
- **Zero backend** -- Everything runs in your browser; credentials stay in localStorage

## TAMS version support

Targets **TAMS 8.2**. TAMS 8.0 and 8.1 stores work, with the 8.2-only features
below hidden or degraded -- Flow Profiles are unavailable, scoped listings and
the hierarchy are built in the browser from a full listing, storage backend tag
filtering is hidden, and ingest status comes from the deprecated `flow_status`
tag.

The tool reads `api_version` from the store's `/service` endpoint and gates the
8.2 query parameters listed below on it, so pointing it at an older store
degrades cleanly rather than erroring. The detected version is shown beside
**Manage Stores** in the sidebar and in the store list.

8.2 features used where available:

| Feature | Used for |
|---|---|
| `sort_by` / `reverse_order` | Latest sources and flows in one request, sorted by the store |
| `collected_by_ids` | Top-level and multi-source scopes, collection contents, hierarchy |
| Flow `status` | Ingest/growing state, status column and filter (falls back to the deprecated `flow_status` tag) |
| `editorial_purpose` tag | Identifying collection members now that `role` is optional |
| `/service/profiles`, `profile_id` | Flow Profiles browser and the Profile shown on a Flow |
| `init_segments` | Flow column, from `essence_parameters` (pre-8.2 stores use the `init_segment` tag) |
| `storage_backend_tag.{name}` | Narrowing segment `get_urls` by storage backend |
| `include_object_timerange` | Webhook registration option (also sent on segment listings, which pre-8.2 stores ignore) |

## Quick Start

1. Visit [cuttingroom.github.io/tamstool](https://cuttingroom.github.io/tamstool)
2. Click **Manage Stores**
3. Add your TAMS endpoint URL (and optional Bearer token)
3. Add your TAMS endpoint URL and credentials (OAuth2 client credentials by
default; a Bearer token or no auth are also available)
4. Browse Sources and Flows

## Local Development
Expand Down
Loading
Loading