Files
ng-eventually-refine-providers/.project/concepts/refine-binding/_overview.md
T
Sylvain Duchesne 259d7fe58d Settle what interchangeability means, and ask for what is missing
Opens the brief that holds this binding to `@activitypods/refine-providers`,
with which it must be interchangeable, and settles its six questions. The
decisive finding of the comparison: the reference asks its server for almost
none of what a Refine resource needs — filters, sorting, pagination and
totals are computed in memory there too — so most of the gap is this
package's own work rather than the polyfill's.

What the engagement is now asked for, in order: a shape-typed write and
removal that can be awaited outside React, a call that closes a session, a
display name, and a write-ownership predicate that would let an interface
hide a control instead of letting it fail.

Two corrections worth their own mention, both found by review rather than
by reading further:

- a non-guarantee about how strongly the upstream authenticates was being
  allowed to dictate the SHAPE of this binding, which had `login` and
  `logout` published as having no surface. Opening a wallet is the act the
  target will have, so the auth provider is wired to it and the missing
  closing call is a request, not an absence of analogue;
- what is internal to the emulation must not be known in this repository at
  all. Restating it here would duplicate a claim this package cannot verify
  and would teach an application a distinction that disappears at migration.
2026-10-01 19:54:45 +02:00

1.9 KiB

type, summary, triggers, vocabulary
type summary triggers vocabulary
overview How a Refine application's resources are bound to NextGraph documents through the eventual SDK — and what that binding may rely on
keywords paths
refine
provider
dataProvider
authProvider
liveProvider
accessControlProvider
resource
getList
getOne
shapeTypes
shape
scope
store
polyfill
eventually
activitypods
interchangeable
equivalence
src/**
package.json
examples/**
term gloss
resource Refine's name for a data type an application declares and lists — bound here to one SHEX shape
term gloss not
binding the translation this package performs between a Refine resource and NextGraph documents
adapter
bridge
glue

refine-binding — Refine's resources over NextGraph's documents

This package binds a Refine application to NextGraph through @ng-eventually/polyfill, which stands in for the NextGraph SDK that has not shipped yet. It is a sibling of @ng-org/refine-providers, which binds the same application to the SDK as it is today; both have a legitimate existence, and an application may move from one to the other.

The distinguishing rule: nothing here compensates for the current state of NextGraph. Capability isolation, identity, inboxes, sharing, the state of any deployed broker — all of that is the polyfill's to carry. What belongs here is only the translation between Refine's model and NextGraph's: what a resource is, what an id is, where a document is placed, and what a listing may legitimately contain.

Read first

  • polyfill-surface/contract_polyfill-surface — the engagement this package consumes (pulled, version-pinned).
  • polyfill-surface/usage_refine-providers-eventually — what this package actually relies on, and what it still needs.
  • brief_2026-10-01_interchangeability-with-activitypods — the bar this binding is held to, and the questions still open on it.