Alex Dunmow 7615bd92ca feat(cli): multi-account login, private-plugin SDK, publish dirty handling
- ninja login forces account selection (interactive when >1); creds now
  carry ActiveAccountID/Slug. New `ninja account` group.
- ninja plugin list / delete / delete-version split public vs active-account
  @private sections; `publish --private` is sticky in plugin.mod.
- GetPluginRequest gains active_account_id so @private resolution works
  alongside the public (scope, name) path.
- publish auto-commits a dirty plugin.mod (path-scoped, leaves other staged
  paths alone) so the bump→publish loop never trips the dirty check.
  --allow-dirty is replaced with --strict (default now ships dirty trees
  via stash-create).
- bump auto-commits its plugin.mod write with `bump to X.Y.Z`; --no-commit
  opts out.
- Design doc updated to match the new defaults.
2026-06-04 08:49:23 +08:00
2026-04-30 22:25:52 +08:00

BlockNinja Plugin SDK

Types, interfaces, and utilities for building BlockNinja plugins.

Package Structure

Package Purpose
plugin/ PluginRegistration, ServiceDeps, RegisterFunc
blocks/ BlockMeta, BlockFunc, BlockRegistry interface, BlockContext
blocks/builtin/ Reusable block implementations (HTMLBlock)
templates/ TemplateRegistry interface
templates/bn/ Shared templ components (head, engagement, toolbar)
auth/ Claims types, context extractors
content/ Content access interface
settings/ Settings access interface
gating/ Access gating evaluation
crypto/ Encrypt/Decrypt interface
render/ Rich text rendering utilities
video/ Video embed URL parsing
ai/ AI tool registry interface and types
rbac/ Role type definition

Usage

import "git.dev.alexdunmow.com/ninja/core/plugin"
Description
No description provided
Readme 1.1 MiB
Languages
Go 74.9%
templ 23.4%
Makefile 1.6%