Skip to content

v3xlabs/v3x-property

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

v3x-property

Repo Dev

Prerequisites

  • Docker docker
  • Docker Buildx docker-buildx

Brainrot

Every hosted instance has a FQDN url, for example v3x.property or property.example.com. Instances do not have to be accessible from the internet, they can be local or on a private network (behind VPN or firewall).

An instance consists of a deployment of the engine container. An instance keeps track of the state of all entities within it.

Authentication

To avoid having to maintain "yet another authentication system", we support OpenID Connect OAuth 2.0. This means you can use any OpenID Connect provider, such as Keycloak, Okta, Auth0, etc. Identity therefore is dis-coupled from the engine and can be ported cross instances.

Entity Identity

An entity is a user, a group or an organization. Entities are referenced by their path within the INSTANCE_URL of an engine.

v3x.property/items/1234
v3x.property/groups/1234
v3x.property/template/1234

entities at these urls have ld+json blobs that contain the entity's data. IMPORTANT; these blobs may be customized based on the viewer's permissions. This means that some data may be hidden from the viewer. If you are running into trouble double check if you are making your request with the correct authorization header.

An example of a tracked item could be:

{
    "@context": "https://v3x.property/definitions/item.json",
    "@type": "Item",
    "id": "https://v3x.property/items/1234",
    "data": {
        "name": "My Cool Item",
        "description": "This is a cool item",
        "color": "red"
    },
    "owner": "https://v3x.property/users/1234",
    "created": "2023-06-01T00:00:00Z",
    "modified": "2023-06-01T00:00:00Z"
}