| Institution | ingest | ingest.Institution | A broker, bank or registry that holds assets: IBKR, XTB, the treasury bond registry. | broker (for the registry) |
| Account | ledger | ledger.Account | One account at an institution, such as one IBKR linked account. Belongs to one sleeve. | portfolio |
| Ledger account | ledger | ledger.Book | A double-entry account inside an account: cash per currency, a holding per instrument, fees, withholding tax, FX, and equity: the counterpart of what enters or leaves the account from outside (deposits, withdrawals, opening lots). The Go name avoids the ledger.LedgerAccount stutter that lint rejects. | “account” alone |
| Transaction | ledger | ledger.Transaction | One economic event from a source. Append-only and versioned; keyed by source plus the institution’s own ID. | trade, activity, operation |
| Posting | ledger | ledger.Posting | One leg of a transaction. A transaction’s postings sum to zero per currency. | entry, leg |
| Instrument | ledger | ledger.Instrument | Something that can be held, identified by ISIN plus a venue symbol. A bond series is an instrument. | security, ticker, asset |
| Holding | ledger | ledger.Holding | The quantity of one instrument in one account on a date, derived from postings. | position (allowed only inside connector adapters, as the broker’s word) |
| Lot | ledger | ledger.Lot | A quantity acquired on a date at a cost; consumed FIFO. An opening lot is seeded from a broker’s current positions instead of full history. | |
| Opening cash | ledger | ledger.NewOpeningCash | The cash an account holds at go-live, seeded as a deposit, or a withdrawal for a negative balance, against the equity ledger account, keyed opening-cash:<currency>:<date>. | opening balance |
| Seeding | ledger | app.Ledger.Seed | Bringing an account into the ledger at go-live from its institution’s current state: its opening lots and opening cash (D-23). An account whose current transactions include either is seeded, and seeding it again is refused unless nothing would change. | bootstrap, initial import |
| Balance assertion | ledger | ledger.BalanceAssertion | A broker-reported balance on a date that the derived balance must match; a mismatch is an error. | snapshot |
| Assertion check | ledger | app.AssertionCheck | A balance assertion with the result of its latest check: matched, or flagged with the derived balance when they differ. A flagged check is an error for the owner to resolve; the import that found it is kept. | reconciliation |
| Model portfolio | portfolio | portfolio.Model | An optional weighted basket of targets for the whole portfolio, which the real portfolio is compared with. Entered by the owner in M0; GR-4’s maintainer agent adjusts it from M2. | strategy, benchmark |
| Target | portfolio | portfolio.Target | One instrument or index in the model portfolio, with its weight. The weights sum to 100%. | allocation |
| Backtest | portfolio | portfolio.Backtest | The model portfolio’s value series computed from end-of-day history, rebalanced to the target weights once a year. | simulation |
| Max drawdown | portfolio | portfolio.MaxDrawdown | The worst fall from a peak to a later trough in a value series, with both dates. | max loss |
| Sleeve | portfolio | portfolio.Sleeve | A part of the portfolio with one sleeve kind and one role, which defaults to the kind’s. Defensive: not available to agents. Offensive: the part fiefs are leased from. A sleeve is offensive in a defensive kind only when the owner explicitly overrides it. | bucket |
| Sleeve kind | portfolio | portfolio.Kind | A named category of sleeve with a default role, such as core, bonds, retirement or agent-pool. Built-in kinds come with OpenFief; the owner can add and rename kinds, but a kind’s default role never changes. | sleeve type |
| Jurisdiction pack | jurisdiction | jurisdiction.Pack | The pluggable rules for one country (GR-13): bond terms, tax rules, and the default reporting currency. Poland first. | locale, country plugin |
| Import batch | ingest | ingest.Batch | One run of a connector’s ingest path. | sync |
| Statement | ingest | app.StatementFetcher | What an institution reports about an account, as a file or a pulled document, such as an IBKR Flex Query or an xStation export. A connector maps it. | report, export (alone) |
| Ingest mode | ingest | ingest.Mode | What an import batch takes from a statement: opening seeds an account at go-live with opening lots and its opening cash (D-23); transactions imports transactions from go-live on. Both import balance assertions. | |
| Mapping | ingest | ingest.Mapping | What a connector makes of one statement: transactions, balance assertions and ingest problems. | |
| Ingest problem | ingest | ingest.Problem | A statement row the mapping left out of the ledger, with its reason: unsupported (can’t be booked yet, such as an option trade) or skipped (left out on purpose, such as a summary row). Not an error. | warning |
| Import summary | ingest | ingest.ImportSummary | What the ledger did with a batch’s mapping: new transactions, new versions, unchanged ones, and failed balance assertions. | |
| Connector contract | ingest | openfief.connector.v1.ConnectorService | The protobuf service over Connect RPC that a connector plugin serves and the core calls (D-11, D-49): Sync pulls what the institution reported since a watermark, ImportFile maps a statement file. Each call is one import batch, with a batch ID the core generates and reuses on a retry. Not the public read API. | ingest API |
| Delivery | ingest | app.Delivery | What a connector returns for one import batch: its mapping, plus any prices, FX rates and index readings, and for a sync the next watermark. The core scopes its transaction keys to the connector instance. | push, upload (for plugins) |
| Watermark | ingest | app.Delivery.Watermark | Where a connector’s next sync continues from. The connector returns it, the core stores it after importing the delivery and hands it back on the next sync; only the connector understands it. | cursor, checkpoint |
| Connector binding | ingest | app.ConnectorBindings | Permission for one connector instance to write to one account. The owner adds it with core connector bind; the core refuses, whole, a delivery that names an account its instance is not bound to. | account mapping |
| Sync policy | ingest | ingest.SyncPolicy | When the core syncs each connector instance (D-49): every interval after a success, with jitter, and after a failure again with a doubling backoff. | cron, schedule (alone) |
| Index reading | ingest | ingest.IndexReading | One published value of an index that sets treasury bond interest, as a yearly fraction: CPI year on year for a month (GUS), or the NBP reference rate from the day it takes effect. Period indices are picked from them. | rate (alone) |
| Price | valuation | valuation.Price | An end-of-day price of an instrument from a market-data source. | quote |
| Index | valuation | valuation.Index | A market index, such as WIG20 or MSCI World, with an end-of-day level series from the market-data connector. It can be a target, but it can’t be held. | benchmark |
| FX rate | valuation | valuation.FXRate | The value in PLN of one unit of a currency on a date, from a source; NBP table A in M0. The rate for a date is the latest one dated on or before it. | |
| Reporting currency | valuation | valuation.ReportingCurrency | The currency totals, charts and the model comparison are shown in. A setting whose default comes from the jurisdiction pack: PLN for the Polish pack. | base currency, home currency |
| Valuation | valuation | valuation.Valuation | The value of a holding on a date, with its basis and source. | |
| Valuation basis | valuation | valuation.Basis | market, gross_accrued or net_if_redeemed. | |
| Holding valuation | valuation | valuation.HoldingValuation | The stored valuation of one holding on one day, keyed by account, instrument, date and valuation basis: its value in the instrument’s own currency and in PLN, with the source and dates of its inputs, or the missing input that stopped it. | |
| Revaluation | valuation | valuation.Revaluation, app.Revaluer | Rebuilding an account’s holding valuations from a date to today, from the transaction log, prices, FX rates and index readings. Any change to those inputs enqueues one in the same database transaction, and pending ones coalesce per account from the earliest date. | recalculation, refresh |
| Missing input | valuation | valuation.MissingReason | A price, FX rate or index reading that a holding valuation needed and did not have. The holding valuation records the gap instead of failing the revaluation. | |
| Valued-through date | valuation | app.ValuationStatus.ValuedThrough | The last day up to which every holding of an account has a valuation: the day before its first missing input, or today. | |
| Index reading | valuation | valuation.IndexReading | One published reading of a period index for one month: CPI year on year for the month it measures, or the NBP reference rate for the month whose interest periods it sets. | |
| Bond series | jurisdiction/pl | pl.Series | A Polish retail treasury bond series code, such as EDO0536 (EDO maturing in May 2036). Valuation uses it through jurisdiction/pl’s rules. | bond (ambiguous) |
| Bond type | jurisdiction/pl | pl.BondType | The product a bond series belongs to, named by the code’s first three letters: OTS, ROR, DOR, TOS, COI, EDO, ROS, ROD. Fixes the term, interest period, indexation and payout. | series (for the type) |
| Series terms | jurisdiction/pl | pl.Terms | What one series’ issue letter fixes: first-period rate, margin and early-redemption fee. Data supplied per series, never hard-coded. | |
| Interest period | jurisdiction/pl | pl.PeriodStart | One period of a bond’s interest, counted from its own purchase date: a month (ROR, DOR), three months (OTS) or a year. | coupon period (for capitalized types) |
| Period index | jurisdiction/pl | pl.Indices | The published reading that sets an interest period’s rate after the first: CPI year on year for inflation-indexed types, the NBP reference rate for ROR and DOR. | |
| Margin | jurisdiction/pl | pl.Terms.Margin | The fixed rate a series adds to its period index. | spread |
| Early-redemption fee | jurisdiction/pl | pl.Terms.EarlyRedemptionFee | The per-bond fee for redeeming before maturity, capped at the bond’s accrued interest except for coupon types after their first interest period, and not charged on a withdrawal from IKE or IKZE. OTS has none: redeemed early, it earns no interest. | penalty |
| Exchange price | jurisdiction/pl | pl.Purchase.Price | The price per bond of a series bought by exchanging (zamiana) maturing bonds, set in its issue letter: usually 99.90 PLN, 100 PLN for OTS. The discount below the nominal is taxed with the interest. | rollover price |
| Tax wrapper | jurisdiction/pl | pl.TaxWrapper | The tax regime of the account a lot is held in: taxable, IKE or IKZE. | account type |
| Lot value | jurisdiction/pl | pl.LotValue | A bond lot’s statutory value on a date: gross accrued value, and net-if-redeemed value after the early-redemption fee and Belka tax on interest minus the fee plus any purchase discount. | |
| Connector | ingest | ingest.Connector | A plugin that brings data in through an ingest path. | integration |
| View | views | views.View | A plugin that presents the canonical record elsewhere and never writes back. | sync, export |
| Read API | views | views + connectapi | The public, read-only API: the openfief.views.v1.ReadService protobuf service, served as Connect and transcoded to REST under /v1 (D-50). | |
| Allocation | views | views.Allocation | The portfolio’s value in the reporting currency on a date, split into groups by asset class, currency, institution or sleeve (D-30). | breakdown |
| Allocation item | views | views.AllocationItem | One valued holding or cash balance of an account on a date: what an allocation groups. | position |
| Asset class | views | views.AssetClass | The kind of asset an allocation item is: cash, treasury_bond (a bond series) or listed (any other instrument: a stock or ETF in M0). | asset type |
| Date total | views | views.DateTotal | The sum of the stored valuations dated on one date, in the reporting currency and per original currency. | |
| Plugin | plugins | plugins.Plugin | The custom resource for one installed, named instance of a plugin image: the image and its manifest (the vendor’s) and the instance’s name and config (the owner’s). Its status says whether the image is verified. | extension, addon |
| Grant | plugins | plugins.Grant | The custom resource holding what the owner approved for a plugin. | permission set |
| Catalog | plugins | plugins.Catalog | The file in the OpenFief repository that lists first-party and verified plugins, with pinned image digests and signer identities. | marketplace, registry |
| Verified plugin | plugins | plugins.Verified | A plugin whose catalog entry pins a version the author reviewed. Anything installed by image reference alone is unverified. | official, trusted |
| Trusted signer | plugins | plugins.Signer | An identity whose image signatures the operator accepts: OpenFief’s CI, a catalog publisher, or one the owner added. | |
| Signer identity | plugins | plugins.SignerIdentity | Who made a signature: for a keyless signature, the OIDC issuer and subject in its Fulcio certificate (such as a GitHub Actions workflow at a ref); otherwise a public key. | key ID |
| Trust policy | plugins | plugins.TrustPolicy | Every trusted signer plus the catalog. It decides whether a signed image is a verified plugin, unverified but signed by a trusted signer, or refused. Nothing overrides a refusal. | allow-list (that is egress) |
| Manifest | plugins | plugins.Manifest | A plugin’s declared capabilities, egress hosts, secrets, data tiers and config schema. | |
| Egress allow-list | plugins | plugins.EgressAllowList | The hostnames a plugin may reach through the egress proxy. | whitelist |
| Capability | plugins | plugins.Capability | What a plugin may act as: connector or view in M0. Declared in its manifest and approved in its grant. | kind, role |
| Egress host | plugins | plugins.EgressHost | One hostname and port in a manifest, grant or egress allow-list. Never an IP address or a wildcard. | domain, URL |
| Egress decision | plugins | app.EgressDecision | The egress proxy’s answer to one plugin’s HTTP CONNECT: the plugin, the destination, whether its egress allow-list allows it, and why. Resolved addresses are checked separately, before dialing. | ACL verdict |
| Data tier | plugins | plugins.DataTier | A named class of data a plugin asks to see. Only a name in M0; what each tier holds is undecided (P-33). | |
| Image reference | plugins | plugins.ImageRef | A plugin’s container image, pinned by digest (repository@sha256:...), never by tag. | image tag |
| Effective permissions | plugins | plugins.EffectivePermissions | What OpenFief enforces for a plugin: only what its Plugin requests and its Grant approves. | |
| Workload | plugins | plugins.Workload | What the operator creates for one plugin, compiled from its effective permissions: identity, token, Secret mounts, environment, NetworkPolicy and egress allow-list. | deployment (the Kubernetes object is one part) |
| Rollout | plugins | plugins.Rollout | Which version of a plugin runs under its grant: the current one, the previously deployed one while an upgrade waits for approval, or none. | deployment (the Kubernetes object) |
| Pending approval | plugins | plugins.Rollout.Pending | What a plugin’s current version requests that its grant does not approve. The owner approves it by adding it to the grant. | diff |
| Plugin identity | identity | plugins.ServiceAccountName | The ServiceAccount plugin-<name> in the openfief namespace, proven to the core by its projected token with audience openfief-core, and to the egress proxy by a second one with audience openfief-egress. | |
| Signing keys | plugins | plugins.SigningKeys | The cluster’s ServiceAccount token issuer and the public keys that verify its tokens. The operator publishes them in the ConfigMap openfief-sa-jwks, which every plugin mounts, so a plugin can check the core’s token without reaching the Kubernetes API (D-59). | JWKS (that is their file format) |
| Owner | identity | identity.Owner | The person who runs an installation: one individual investor. | user, customer |
| Script token | identity | identity.ScriptToken | A scoped, expiring, read-only personal API token. | API key |
| Script token secret | identity | identity.FormatSecret | What a script presents as its bearer token: ofs_, the script token’s ID, _ and a random key. Shown once when the token is issued; only the SHA-256 hash of the key is stored. | API key, password |
| Currency | kernel | kernel.Currency | An ISO 4217 alphabetic code, such as PLN or USD. | |
| Money | kernel | kernel.Money | An exact decimal amount in one currency. It keeps its original currency; arithmetic across currencies is an error, and conversion is an explicit FX step in valuation. | |
| Quantity | kernel | kernel.Quantity | An exact, possibly fractional number of units of an instrument. | |
| Date | kernel | kernel.Date | A calendar date with no time of day or time zone, written YYYY-MM-DD. | timestamp |
| Demo dataset | demo (not a context: tooling) | demo.Dataset | A synthetic portfolio with about a year of history and its valuation inputs, generated from a seed and a date, for showing OpenFief on a demo database. Its instruments have synthetic ISINs; only public data is real: bond series terms, GUS CPI and NBP rates. Loaded by cmd/demo-seed, which refuses any database without its demo marker that already holds data. | sample data, test portfolio |
| Demo marker | demo (not a context: tooling) | demo.DatabaseState | The row demo = true in the demo schema that marks a database as a demo database. Only the demo loader writes it, and only a marked database may be reset. | |