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/modelsfrom.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.htmlis 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