For Salesforce Practitioners
This page is an index, not a satellite document. Each row names a Salesforce concept, its Henceforth equivalent, and a short paragraph of orientation – then links to the anchored “Salesforce note” aside that lives inside the Concepts or How-to page where the equivalent is actually explained, plus the concept page itself. The explanatory text has exactly one home (the aside); this table is the index over it, not a copy of it.
Two topics get their own page instead of a table row, because they need an argument rather than a mapping: Rollups and Sharing vs. RLS.
| Salesforce concept | Henceforth equivalent | Notes |
|---|---|---|
| Object | Object | An object defines a type of record, compiled from a *_object.json5 file to a table, a view, and API routes. See the aside and Objects, Records, and Fields. |
| Custom Field | Field metadata (*_field.json5) |
A field is authored as its own JSON5 file and compiles to a column or view expression. See the aside and Objects, Records, and Fields: Fields. |
Audit fields (CreatedDate, LastModifiedDate, CreatedById, LastModifiedById) |
System fields (createdAt, updatedAt, ownerId) |
Henceforth’s system fields cover creation and update timestamps and an owning principal, but track no “last modified by” principal. See the aside and Objects, Records, and Fields: Records. |
| Master-Detail | A relationship with required: true and onTargetDelete: "cascade" |
Henceforth unbundles Master-Detail into independent, composable properties instead of a distinct relationship type. Reparenting lock is not yet available. See the aside and Master-Detail: a Preset, Not a Type. |
| Implicit sharing / sharing rules | Relationship sharing |
Declarative, per-relationship, evaluated live – not gated behind Master-Detail and not backed by a recalculation job. See the aside, Relationships and Lookups: sharing, and the dedicated Sharing vs. RLS page. |
| Roll-Up Summary Fields (and their Master-Detail-only limitation) | Rollup fields | Available on any lookup relationship, not gated behind a relationship type. See the dedicated Rollups page. |
| Validation Rules | Object-level rules: block |
A named boolean expression per rule, evaluated on create and update, enforced as a CHECK constraint where possible. See the aside and Create records through the API: Validation. |
| SOQL | HOQS | A metadata-validated query language for the same read-only job. Traversal is deliberately single-hop. See the aside and Querying Data with HOQS. |
REST API (/services/data/vXX.X/sobjects/...) |
Data API (/data/{moduleKey}/{objectKey}/{id}) |
Same {object}/{id} addressing shape; ships with no version prefix today – API versioning policy is an open design question (#783). See the aside and Create records through the API. |
Rows intentionally omitted
Section titled “Rows intentionally omitted”Two commonly-expected rows are left out rather than mapped to something that doesn’t exist yet:
- Record Types – Henceforth has no per-object record-type / picklist-value-set-per-type construct today. Adding a row here would invent an equivalent that doesn’t exist.
- Flow / Apex – the platform execution engine (
operations.flux_definitions,operations.flux_runs) is the eventual automation surface, but it is not yet documented in the capability roadmap as a Flow/Apex analogue. Per this policy, a roadmap-level mapping is only added once the roadmap documents it – this row will be added when that happens, linking the roadmap rather than promising behavior.