Terminology
An overview of the novem terminology
AI-assisted, human-approvednovem uses AI to review and keep our documentation up to date.
Overview
Novem is a fairly complicated platform and to make sure we're all talking about the same thing we've created a set of technical terms with explicit meaning.
This page provides a list and definition of the important technical terms and their definition.
Terminology
FQNP (Fully Qualified Novem Path)
The fully qualified novem path is how we refer to objects and entities within the novem platform. The FQNP gives a 100% unique string representation of all resources on the novem platform.
FQNPs are designed to be typeable, URL friendly, hierarchical and intuitive.
Novem resources are owned by either users or organisations, as such there are
two root nodes in FQNP, either /u/ or /o/.
By convention all partial FQNPs should alternate between a general and a
specific part with the general part listing the available options
(conditioned on access).
As such /u/ should list all users and /u/username/ should list all resources
available for username.
Below we use the example of a plot variable as a fairly complex FQNP, but other visualisations, jobs and repos exhibit similar patterns.
For example, to reference a variable published on a novem plot you could reference it as follows:
Shortname
Every visualisation, repo, and job also gets a shortname: a compact,
globally unique id (unlike an FQNP, it doesn't need the owner prefix). You'll
find it at each resource's shortname path, and it's what the public share
links and the /i alias below are keyed on.
Public read aliases
Alongside the /v1/... management tree, novem exposes a set of read-oriented
aliases. They serve JSON and pre-rendered output directly, without the
filesystem-style navigation, and honour the same access rules. Public
resources work without a token. Everything else needs one with read access.
| Path | Description |
|---|---|
/v1/u/:user | A user's public info, plus the visuals (vis) and the repos, jobs and spaces (code) you can see. See the profile response |
/v1/u/:user/img | The user's avatar — what embeds and link previews point at |
/v1/u/:user/card | The user's profile card |
/v1/u/:user/banner | The user's profile banner |
/v1/u/:user/f | The user's activity feed |
/v1/o/:org | The organisation equivalent — card, banner, img and the org's visuals under p / g / m / d / v |
/v1/i/:shortname | Any visualisation by its shortname — renders (img, pdf, pptx, csv, xlsx, txt, ansi, mhtml), assets and vars (v), without needing to know its type or owner |
/v1/t | Your tags, expanded |
/v1/t/:tag | A category tag's public listing — the discoverable =-prefixed categories |
The profile response
/v1/u/:user returns the user's name, username, description, type,
joined, avatar, social counts and your relationship to them. name
and description are null unless the user has chosen to show them. The
content you can see comes in two objects:
visholds the visualisations, keyed by type:plots,grids,docs,mailsandviews. A type appears only when it has an entry you can see. Each list is also served on its own at the one-letter path (/v1/u/:user/p,/g,/m,/d,/v). When there is nothing to show,visis an empty list,[], and not an object. That includes a user whose only content is code.codeholds the user'srepos,jobsandspaces, the same collections as under/v1/users/:user/code/. All three keys are always present, and each is[]when empty.
Every entry carries id, shortname, name, summary, created,
updated, social, shared and tags. Entries in vis also carry
vis_type, type and uri.
The top-level repos field is a deprecated alias of code.repos, kept for
existing clients. Read code.repos instead.
Reporting abuse
| Verb | Path | Description |
|---|---|---|
POST | /v1/abuse | Report a user or piece of content for abuse |