44 lines
3.4 KiB
Markdown
44 lines
3.4 KiB
Markdown
|
|
# Dragonflight Premiere Panel — v1.0.1
|
||
|
|
|
||
|
|
Built 2026-05-23 from `feat/premiere-installer`. First release that
|
||
|
|
actually loads under Premiere Pro 2025 (CEP 12) and connects to an
|
||
|
|
auth-enabled mam-api.
|
||
|
|
|
||
|
|
## What changed since v1.0.0
|
||
|
|
|
||
|
|
| Problem | Fix |
|
||
|
|
|---------|-----|
|
||
|
|
| `manifest.xml` had `--` inside an XML comment → CEP 12 refused to parse it | Comment rewritten without double hyphens |
|
||
|
|
| `manifest.xml` lacked a `Version="X.Y"` attribute on the root and used a non-standard `AbstractionLayers`/`ExtensionList` structure → CEP rejected with `Unsupported Manifest version ''` | Rewritten to the standard CSXS 7.0 schema (`ExtensionList` + `DispatchInfoList`), matching the working AMPP panel template |
|
||
|
|
| `main.js` re-declared `const csInterface` at top-level — CSInterface.js already declared the same binding. CEP 12 shares script-realm lexical scope across `<script>` tags, so main.js threw `Identifier 'csInterface' has already been declared` and never ran. The click handler for Connect was never attached → "nothing happens." | Removed the duplicate declaration; main.js now uses the binding set up by CSInterface.js |
|
||
|
|
| No way to authenticate against mam-api when `AUTH_ENABLED=true` (panel only sent `credentials: 'include'`, but it has no session cookie) | Added an "API Token" password field next to Server URL; persists to localStorage; `window.fetch` is monkey-patched to inject `Authorization: Bearer <token>` on every request to the configured server |
|
||
|
|
| Server URL field had a `change`-event listener that only fired on blur — quick "type URL → click Connect" cycles never saved the URL | Switched to `input` event so every keystroke commits. Also normalizes any trailing slash on restore so old saved `http://host/` values stop producing `//api/v1` 404s |
|
||
|
|
| New token input was `type="password"`, but the CSS selector was `input[type="text"].server-url` → unstyled, invisible against the dark theme. The 3-column grid layout also crammed the new row into a button-width slot | Connection bar restructured into a `.connection-controls--stacked` flex column of two `.server-input-row` flex rows; CSS input selector generalized to `input.server-url` |
|
||
|
|
| Build scripts' version-extraction regex only matched the old `<ExtensionBundleVersion>X</...>` element form | Now matches both element and attribute forms |
|
||
|
|
|
||
|
|
## Artifacts
|
||
|
|
|
||
|
|
| File | Size | Install |
|
||
|
|
|------|------|---------|
|
||
|
|
| [dragonflight-premiere-panel-1.0.1-windows-setup.exe](dragonflight-premiere-panel-1.0.1-windows-setup.exe) | 2.0 MB | Windows — double-click |
|
||
|
|
| [dragonflight-premiere-panel-1.0.1.zxp](dragonflight-premiere-panel-1.0.1.zxp) | 35 KB | macOS + Windows — [Anastasiy's ZXP Installer](https://install.anastasiy.com/) |
|
||
|
|
|
||
|
|
## Configuring after install
|
||
|
|
|
||
|
|
1. Open Premiere → **Window → Extensions → Wild Dragon MAM**
|
||
|
|
2. **Server URL**: e.g. `http://10.0.0.25:47434`
|
||
|
|
3. **API token**: generate one via
|
||
|
|
```
|
||
|
|
curl -c cookies.txt -X POST $API/api/v1/auth/login \
|
||
|
|
-H 'Content-Type: application/json' \
|
||
|
|
-d '{"username":"USER","password":"PASS"}'
|
||
|
|
|
||
|
|
curl -b cookies.txt -X POST $API/api/v1/tokens \
|
||
|
|
-H 'Content-Type: application/json' \
|
||
|
|
-d '{"name":"premiere-panel"}'
|
||
|
|
```
|
||
|
|
Paste the returned `token` value (starts with `wd_`) into the panel.
|
||
|
|
4. Click **Connect** — status dot turns green and projects populate the dropdown.
|
||
|
|
|
||
|
|
If your `mam-api` runs with `AUTH_ENABLED` unset/false, the token field can be left empty.
|