pumice-plugin-immich
A pumice-server publish plugin that resolves
harang-immich's ![immich:profileId/assetId|altText] embed syntax on
published pages: fetches the photo from Immich and inlines it as a base64 data: URI, so a
published page is fully self-contained (no separate request back to Immich needed to see it).
See pumice-server's docs/PLUGIN_DEVELOPMENT.md
for the plugin contract this implements.
Why a separate credential
harang-immich (the Obsidian plugin) authenticates to Immich using a pre-issued API key that
lives only in Obsidian's local secretStorage — it's never synced, so pumice-server has no way
to use it. This plugin is instead configured with its own, separately-issued Immich API key
entered directly on the server (via pumice-server's Publish tab → plugin settings), independent
of whatever the Obsidian client is doing.
Config
Declares CONFIG_FIELDS for pumice-server's generic per-vault plugin config store — one entry
per Immich profile, keyed by the same profileId harang-immich's own data.json uses. This is
a general mechanism: any plugin can declare whatever config keys/types it needs this way, and
pumice-server's Publish tab renders a real labeled form from that schema without knowing
anything about what the fields mean. pumice-plugin-immich declares just two:
server_url— the Immich server's base URLtoken— an Immich API key (Immich has no login endpoint for this; API keys are issued directly in Immich's own account settings and sent as thex-api-keyheader, same as the Obsidian client does)
Autofill
server_url and a stable per-profile id aren't secrets, and harang-immich's own
.obsidian/plugins/harang-immich/data.json already has both (only the real API key lives in
secretStorage, out of reach). Declares AUTOFILL_PATHS/suggest_autofill so pumice-server's
settings modal can read that already-synced file and offer each profile found there as a
one-click fill-in — the vault owner still has to type the token themselves.
Installing into pumice-server
# pumice-server's pyproject.toml
[tool.uv.sources]
pumice-plugin-immich = { path = "../obsidian-plugin/pumice-plugin-immich", editable = true }
uv add pumice-plugin-immich
Development
uv sync
uv run pytest
Metadata
Release files for pumice-plugin-immich 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pumice_plugin_immich-0.1.0.tar.gz | 16.8 kB | Without provenance | Details for pumice_plugin_immich-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pumice_plugin_immich-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for pumice_plugin_immich-0.1.0-py3-none-any.whl |
Total release size: 21.7 kB
Release files / pumice_plugin_immich-0.1.0.tar.gz
| Download URL | pumice_plugin_immich-0.1.0.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3adf318d22421240ecf10f4a1139adb4e4f9295f02fc7ed5d4e2ff510ca6b85e
|
|
BLAKE2b-256 checksum How to use checksums |
3e70e40963d97c475654c24f00beca9a3b6b7be3ced6dc3db8a83d6a686ac2d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pumice_plugin_immich-0.1.0-py3-none-any.whl
| Download URL | pumice_plugin_immich-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
080656806f81c84c7eb950cffe866153bbb2a89e02db228d7ed033e19ed3242f
|
|
BLAKE2b-256 checksum How to use checksums |
6e48cfa1be97a27a3b3d10b56acac37062610bd24beb63e04eab8a64d96a4e48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for pumice-plugin-immich 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.