MiCyte

← The wiki

96 — Accounts, hosting and access

DesignedRendered from 96-accounts-and-hosting.md in the public repository. Edits belong there.

This page states what an account is for, the ways an instance is hosted, what a host must provide, and which parts are built.

The model

  • The software needs no account. An instance someone runs holds its own records at its own address. micyte/ registers tools, channels and packages without an identity provider.
  • An account is a person's sign-in to an instance someone else runs: their own instance hosted for them, or the instance of an organization they belong to. An account is free.
  • A hosted instance is what is charged, for the storage, compute and traffic it uses. Prices are stated by the host, not by this wiki or by micyte.com.
  • Services are ports. Mail, website hosting and payments are filled by extensions (92). An instance can be configured to use them or not.
  • The registrar is a parameter. The network is instances that connect directly, plus a registrar that resolves an msn to an instance. micyte/domains/registry/engine.py takes the registrar as authority_msn_id. Anyone can run a registrar. Fruitful Network Development runs the registry micyte.com reads and publishes the package catalogue.

Ways an instance is hosted

HostingWhat it means
LocalThe software on a machine the owner controls. No account. A registrar is needed only to be found by other instances.
A third partySomeone else runs instances for their clients.
Fruitful Network DevelopmentFND runs the instance and provides the three things below.

A host other than the owner must provide:

  1. Accounts and sign-in. The software opens a session against an instance; who may open one is the host's policy.
  2. Port routing. Binding an extension to a port and granting its functions are two separate acts by the host operator (92).
  3. Updates. Someone decides when an instance moves to a new release. The catalogue is pull-only (93).

Access surfaces for a hosted instance

SurfaceState
BrowserBuilt. The portal, signed in through the instance's msn_profile.
Local syncNot built. A local copy of a hosted instance kept in sync, so the records are reachable without the network and without the host.
MobileNot built.

A session is opened against an instance, which is identified by its msn_profile. That is also the document Director opens when a host looks at an instance it hosts.

MiCyte Lite

A free account is a small instance shown through a reduced surface set. SURFACE_SET_LITE in micyte/state_machine/portal_shell/shell_registry.py: build_portal_surface_catalog(surface_set="lite") returns three surfaces: Network, Profile and Utilities.

  • Profile is the client's profile.
  • Utilities is the instance diagram drawn with static=True: no links and nothing focusable (92). There is no Marketplace tab.
  • Network is the map without the icons that open other surfaces.

The host decides which sign-ins get Lite. A request for a surface outside the set is refused, not just hidden from the rail.

Using a host's services from an instance the host does not run

micyte/adapters/hosted/ holds a transport (HostedServiceClient, which authorizes before it sends), a credential file (HostedServiceCredential: base URL, alias and the key the host issued) and two adapters, HostedEmailAdapter and HostedSiteAdapter, that call the host's <base>/<port>/<action> door. The fnd_service package fills email_provider and site_hosting for instances FND hosts (FND Service).

Not built

  • Self-serve account creation. The host's operator establishes each account.
  • The hosted adapters as a catalogue extension. The Ports surface cannot build them yet.
  • A host setting for the registrar. The host uses a constant default; no configuration key names another registrar.
  • Person-level accounts on the network. Network participation is per instance. It depends on discovery and magnet resolution (90).
  • Enforcement of base-plan allowances. The free allowance is enforced by the host; base-plan amounts are displayed, not enforced.
  • Local sync and a mobile app, above.