Docs / API / SpacesDB

SpacesDB

com.s8.meta.api.flow.space

A space is a shell around an object graph: logical unit, synchronization unit, storage unit, version unit, encapsulation. Unpinned leaves are transient; nodes that extend SpaceS8Object are the graph the runtime tracks.

Instance methods

createSpace(request)
Create with an id and an exposure array. CreateSpaceS8Response createSpace(CreateSpaceS8Request)
exposeSpace(request)
Change what a space exposes. ExposeSpaceS8Response exposeSpace(ExposeSpaceS8Request)
accessSpace(request)
Open a space; on OK, objects is the exposure. AccessSpaceS8Response accessSpace(AccessSpaceS8Request)

SpaceS8Object / SpaceS8Vertex

Base space object holds S8_vertex. Report field updates with reportFieldUpdate / reportChange(fieldName) so the graph can dirty-track.

Example

space.java
SpacesDB spaces = flow.spaces();
spaces.createSpace(new CreateSpaceS8Request(
    "space/ada", new SpaceS8Object[]{ root }));
AccessSpaceS8Response res =
    spaces.accessSpace(new AccessSpaceS8Request("space/ada", true));
if (res.status == AccessSpaceS8Response.Status.OK) {
  Object[] exposed = res.objects;
}
Intent One space ≈ one project, one user workspace, one document. Keep the graph together; do not explode it into unrelated tables.