Rename Castle Accounting extension to Libra

Full identifier rename: module path lnbits.extensions.castle →
lnbits.extensions.libra, DB ext_castle → ext_libra, URL prefix
/castle/ → /libra/, manifest id castle → libra, fava ledger slug
default castle-ledger → libra-ledger, Beancount source metadata
castle-api → libra-api and link prefixes castle-{entry,tx}- →
libra-{entry,tx}-, column castle_wallet_id → libra_wallet_id, all
Python/JS/HTML identifiers (castle_ext, CastleSettings,
castle_reference, castleWalletConfigured, etc.).

Display name "Castle Accounting" → "Libra" (the scales/balance
metaphor — fits double-entry bookkeeping).

No backward compat: production hosts will be force-updated. Old
castle-prefixed Beancount metadata in existing Fava ledgers is
historical; new entries use libra-* prefixes going forward.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-05-05 10:24:46 +02:00
commit c174cda48d
44 changed files with 953 additions and 953 deletions

View file

@ -206,7 +206,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/admin/permissions',
'/libra/api/v1/admin/permissions',
this.g.user.wallets[0].adminkey
)
this.permissions = response.data
@ -228,7 +228,7 @@ window.app = Vue.createApp({
// Admin permissions UI needs to see virtual accounts to grant permissions on them
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/accounts?exclude_virtual=false',
'/libra/api/v1/accounts?exclude_virtual=false',
this.g.user.wallets[0].inkey
)
this.accounts = response.data
@ -251,7 +251,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/admin/castle-users',
'/libra/api/v1/admin/libra-users',
this.g.user.wallets[0].adminkey
)
this.users = response.data || []
@ -318,7 +318,7 @@ window.app = Vue.createApp({
await LNbits.api.request(
'POST',
'/castle/api/v1/admin/permissions',
'/libra/api/v1/admin/permissions',
this.g.user.wallets[0].adminkey,
payload
)
@ -357,7 +357,7 @@ window.app = Vue.createApp({
try {
await LNbits.api.request(
'DELETE',
`/castle/api/v1/admin/permissions/${this.permissionToRevoke.id}`,
`/libra/api/v1/admin/permissions/${this.permissionToRevoke.id}`,
this.g.user.wallets[0].adminkey
)
@ -428,7 +428,7 @@ window.app = Vue.createApp({
const response = await LNbits.api.request(
'POST',
'/castle/api/v1/admin/permissions/bulk-grant',
'/libra/api/v1/admin/permissions/bulk-grant',
this.g.user.wallets[0].adminkey,
payload
)
@ -535,7 +535,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/admin/equity-eligibility',
'/libra/api/v1/admin/equity-eligibility',
this.g.user.wallets[0].adminkey
)
this.equityEligibleUsers = response.data || []
@ -573,7 +573,7 @@ window.app = Vue.createApp({
await LNbits.api.request(
'POST',
'/castle/api/v1/admin/equity-eligibility',
'/libra/api/v1/admin/equity-eligibility',
this.g.user.wallets[0].adminkey,
payload
)
@ -612,7 +612,7 @@ window.app = Vue.createApp({
try {
await LNbits.api.request(
'DELETE',
`/castle/api/v1/admin/equity-eligibility/${this.equityToRevoke.user_id}`,
`/libra/api/v1/admin/equity-eligibility/${this.equityToRevoke.user_id}`,
this.g.user.wallets[0].adminkey
)
@ -655,7 +655,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/admin/roles',
'/libra/api/v1/admin/roles',
this.g.user.wallets[0].adminkey
)
this.roles = response.data || []
@ -678,7 +678,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
`/castle/api/v1/admin/roles/${role.id}`,
`/libra/api/v1/admin/roles/${role.id}`,
this.g.user.wallets[0].adminkey
)
@ -733,7 +733,7 @@ window.app = Vue.createApp({
// Update existing role
await LNbits.api.request(
'PUT',
`/castle/api/v1/admin/roles/${this.selectedRole.id}`,
`/libra/api/v1/admin/roles/${this.selectedRole.id}`,
this.g.user.wallets[0].adminkey,
payload
)
@ -747,7 +747,7 @@ window.app = Vue.createApp({
// Create new role
await LNbits.api.request(
'POST',
'/castle/api/v1/admin/roles',
'/libra/api/v1/admin/roles',
this.g.user.wallets[0].adminkey,
payload
)
@ -786,7 +786,7 @@ window.app = Vue.createApp({
try {
await LNbits.api.request(
'DELETE',
`/castle/api/v1/admin/roles/${this.roleToDelete.id}`,
`/libra/api/v1/admin/roles/${this.roleToDelete.id}`,
this.g.user.wallets[0].adminkey
)
@ -862,7 +862,7 @@ window.app = Vue.createApp({
await LNbits.api.request(
'POST',
'/castle/api/v1/admin/user-roles',
'/libra/api/v1/admin/user-roles',
this.g.user.wallets[0].adminkey,
payload
)
@ -920,7 +920,7 @@ window.app = Vue.createApp({
try {
const response = await LNbits.api.request(
'GET',
'/castle/api/v1/admin/users/roles',
'/libra/api/v1/admin/users/roles',
this.g.user.wallets[0].adminkey
)
@ -984,7 +984,7 @@ window.app = Vue.createApp({
try {
await LNbits.api.request(
'DELETE',
`/castle/api/v1/admin/user-roles/${this.userRoleToRevoke.id}`,
`/libra/api/v1/admin/user-roles/${this.userRoleToRevoke.id}`,
this.g.user.wallets[0].adminkey
)
@ -1033,7 +1033,7 @@ window.app = Vue.createApp({
}
await LNbits.api.request(
'POST',
`/castle/api/v1/admin/roles/${this.selectedRole.id}/permissions`,
`/libra/api/v1/admin/roles/${this.selectedRole.id}/permissions`,
this.g.user.wallets[0].adminkey,
payload
)
@ -1067,7 +1067,7 @@ window.app = Vue.createApp({
try {
await LNbits.api.request(
'DELETE',
`/castle/api/v1/admin/roles/${this.selectedRole.id}/permissions/${permissionId}`,
`/libra/api/v1/admin/roles/${this.selectedRole.id}/permissions/${permissionId}`,
this.g.user.wallets[0].adminkey
)
// Reload role permissions