DVAdminServer class

Studio, at mount, answered by the generated backend.

Studio is not a second application with files of its own. Its screens are routes of the application -- <mount> and <mount>/login -- and a request for one is answered with the application's own shell, rendered for that route by dvRenderRoutePage like every other page of it. Studio itself is the application's deferred Studio library: its parts are studioParts, held in memory and handed out by exact path to a caller the Studio grant admits, and to nobody else. Nothing under the mount is ever a file.

Constructors

DVAdminServer({required DVAdminMount mount, required String root, Future<bool> authenticated(Request request)?, List<DVStudioModelSpec> models = const <DVStudioModelSpec>[], DVDatabaseAdapter? database, Future<String?> caller(Request request)?, DVAccountDirectory? accounts, List<String>? queues, String apiBasePath = '/api', DVStudioDevGrant? devGrant, String? sourceRoot, String? structureRoot, String? webRoot, String title = 'Studio', Map<String, Uint8List> studioParts = const <String, Uint8List>{}})

Properties

api → DVStudioApi
Studio's data, under <mount>/api/: a model's records, the page builder's documents, the project graph and the grants, for exactly the callers Studio's pages are served to.
final
apiBasePath → String
Where the application's own auth endpoints answer, which the first-run screen drives. The application's setting, not a guess: a project that moved its API would otherwise get a setup screen posting into nothing.
final
devGrant → DVStudioDevGrant?
The development grant, on a development server: the mount serves the browser that opened the grant's link, and nobody else.
final
hashCode → int
The hash code for this object.
no setterinherited
models → List<DVStudioModelSpec>
Every data model the backend compiled, which is what Studio's documents name on the Data screen and what its API answers api/models from.
final
mount → DVAdminMount
final
root → String
Where the build put Studio's data: the project graph and each page's captured structure, which Studio reads through its API. Never served as files, and never under the web root a server serves every file of to anybody.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
studioParts → Map<String, Uint8List>
Studio's code: the parts of the application's deferred Studio library, by path from the site root (main.dart.js_7.part.js). Served from memory to a caller who may open Studio, and answered as nothing to anybody else.
final
title → String
The title of Studio's pages: Studio · <application>.
final
webRoot → String?
The application's web root, whose index.html is the shell every page is rendered from -- Studio's included. Null renders no Studio page.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
respond(Request request) → Future<Response?>
Studio's answer to request, or null for the application to answer.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited