Topics


TitleTextSubjects
Access Level Authorization

A Soda user obtains authorization to work at an access level by logging in and selecting one of the access levels that they are entitled to have. Their entitlements are set by source administrators.

When a Soda user runs a program that uses the Soda API, the API methods execute at the user's access level.

When a program uses the Virtual Data Lake API, it can present a credential with its secret key to execute at the access level associated with the credential. Source administrators can manage credentials.

Access Level Authorization Operations
Access Level Entitlements

A source admin can authorize a user to have an access level in two ways:

  • By giving an entitlement to the user with a specific identity from an identity provider (an identity entitlement)
  • By giving entitlements to all users with an access level assigned by an identity provider, or to all users with identities from a provider (a provider-level entitlement).

A source admin can add, edit or remove an identity entitlement, and can add, edit or remove a provider-level entitlement.

Access Level Authorization Operations
Add a Provider-Level Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Add button in the Implying Provider Levels section
  2. Choose the identity provider that will provide the identity
  3. Enter the name of the provider-assigned level, or * if the entitlement is for all users with levels from the provider
  4. Click Proceed button
Access Level Authorization Operations
Add an Identity Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Add button in the Entitled Entities section
  2. Choose the identity provider that will provide the identity
  3. Enter the provider's unique identifier for the identity
  4. Enter the name by which the user with that identity will be known
  5. Click Proceed button
Access Level Authorization Operations
Create a Credential

On the Access Level page for the access level that the credential will be associated with, when logged in with source admin access level:

  1. Click Add icon in the Credentials section
  2. A confirmation dialog will appear. Click Proceed icon
  3. The identifier of a new credential will appear in the Credentials section, and a message will show the credential's secret key. Make a secure note of the identifier and the key.
  4. The message will disappear when you refresh the page or navigate away from it.
Access Level Authorization Operations
Credentials

A credential is a resource that is associated with an access level and can be used by a program to execute a virtual data lake API method at that access level. It is represented by an item in the same source as the access level that it is associated with. To gain authorization to execute at the access level, the program presents the credential with a secret key. Credentials are managed by source admins.

Access Level Authorization Operations
Credentials Admin

A credential that is associated with an access level provides authorization for a program to execute at that access level.

A source admin can create and delete credentials, and generate their secret keys. The secret keys are displayed to the admin when they are generated, but cannot be retrieved after that. They are not stored in the virtual data lake. Hash digests are stored in the virtual data lake, and are used to validate keys supplied to API calls.

Access Level Authorization Operations
Delete a Credential

On the Access Level page for the access level that the credential is associated with, when logged in with source admin access level:

  • Click Remove icon for the credential that you want to delete
  • A confirmation dialog will appear. Click OK.
  • The credential will be deleted and its identifier will disappear from the Credentials section.
Access Level Authorization Operations
Edit a Provider-Level Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Add button for the entitlement that you want to change
  2. Choose the identity provider that will provide the identity if you want to change it
  3. Enter the name of the provider-assigned level, or * if the entitlement is for all users with levels from the provider, if you want to change it
  4. Click Proceed button
Access Level Authorization Operations
Edit an Identity Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Edit button for the entitlement that you want to change
  2. Choose the identity provider that will provide the identity if you want to change it
  3. Enter the provider's unique identifier for the identity if you want to change it
  4. Enter the name by which the user with that identity will be known if you want to change it
  5. Click Proceed button
Access Level Authorization Operations
Generate a Secret Key

A secret key is generated automatically when a credential is created. You may wish to generate a new key periodically, as a security measure. You may also wish to generate a new key if the previous one is lost. When a new key is generated, it is effective immediately, and the previous one immediately becomes invalid.

To generate a secret key, on the Access Level page for the access level that the credential is associated with, when logged in with source admin access level:

  1. Click Edit icon for the credential for which you want to generate a new key
  2. A confirmation dialog will appear. Click Proceed icon
  3. A message will show the credential's secret key. Make a secure note of it.
  4. The message will disappear when you refresh the page or navigate away from it.


Access Level Authorization Operations
Remove a Provider-Level Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Remove button for the entitlement that you want to remove
  2. A confirmation dialog will appear. Click OK
Access Level Authorization Operations
Remove an Identity Entitlement

On the Access Level page for an access level, when logged in with source admin access level:

  1. Click Remove button for the entitlement that you want to remove
  2. A confirmation dialog will appear. Click OK
Access Level Authorization Operations
Access Levels Admin

A user with the pre-defined source admin access level can create and update other access levels in the source, permit them to be superior or inferior to other access levels, revoke superior permissions, and revoke inferior permissions

You cannot delete an access level once it has been created.

You cannot make one access level superior to another directly. A user with admin access level for the source of the superior level must permit it to be superior to the inferior level, and a user with admin access level for the source of the inferior level must permit it to be inferior to the superior level. When both these permissions have been granted, the superior relationship is set automatically. If one of the permissions is revoked, the superior relationship is automatically removed. This mechanism allows access level relationships to be managed by independent administrators with equal privileges.

Access Level Operations
Create an Access Level

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Add button in the section Access Levels Defined in this Source
  2. Enter a name for the access level
  3. Click Proceed button
  4. The access level will be created. 
  5. Its read access level will be public and its write access level will be set to the source admin level. (You can change them later.)
  6. Your access level will be superior to it. (You can revoke the permissions for this later.)
Access Level Operations
Permit One Access Level to be Inferior to Another

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Add button
  2. Choose the access level that you permit to be the superior
  3. Choose the access level that you permit to be the inferior
  4. Click Proceed button
  5. If the other level is already permitted to be superior to the inferior level, the superior relationship will be set automatically.
Access Level Operations
Permit One Access Level to be Superior to Another

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Add button in the section Superior Permissions
  2. Choose the access level that you permit to be the superior
  3. Choose the access level that you permit to be the inferior
  4. Click Proceed button
  5. If the other level is already permitted to be inferior to the superior level, the superior relationship will be set automatically.
Access Level Operations
Revoke Permission for One Access Level to be Inferior to Another

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Remove button for the permission in the section Inferior Permissions
  2. A confirm dialog will appear. Click OK
  3. If the other level is permitted to be superior, so that the level was inferior to it, the superior relationship will be removed automatically.
Access Level Operations
Revoke Permission for One Access Level to be Superior to Another

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Remove button for the permission in the section Superior Permissions
  2. A confirm dialog will appear. Click OK
  3. If the other level is permitted to be inferior, so that the level was superior to it, the superior relationship will be removed automatically.
Access Level Operations
Update an Access Level

On the Access Levels page of a source, when you are logged in and have the source admin access level:

  1. Click Edit button for the access level in the section Access Levels Defined in this Source
  2. You can change the name of the access level
  3. You can choose its read access level
  4. You can choose its write access level
  5. Click Proceed button
Access Level Operations
Access Level Names

Every access level other than the public level is stored as an item in a data source. It has read and write access levels that control access to it. It has a name that is unique within its source, and is referred to by the name of its source and its unique name in the source, for example: home:admin.

Access Levels
Pre-defined Access Levels

There is a pre-defined access level, the public level, that is inferior to every other access level. There is also a pre-defined admin access level for each source, but it is not necessarily superior to the other access levels in the source. Its name in its source is admin. A user with this level can manage other access levels in the source.

Access Levels
What Access Levels Do

Access levels enable you to control who can read and write your data.

Each item of data has a read access level and a write access level. To read it, a user or program must have an access level superior to its read level. To change or delete it, a user or program must have an access level superior to its write level.

Source administrators can manage access levels and determine how users and programs can get authorization to use them.

Access Levels
Add a Block

When editing a page:

  1. Click Add icon in the section where you want to add the block. (The default template has only one section.)
  2. A dropdown menu will appear. Select the type of block that you want to add: styled content, raw text, or a form.
  3. An editor will appear. Use it to create the content of the block.
  4. Click Proceed icon
Editable Page Operations
Add an Image

When editing a styled content block:

  1. Click Image icon
  2. Select the workspace that contains the image, or to which you want to upload the image
  3. If the workspace contains the image, select it, or
  4. If the workspace does not contain the image, click Image icon and upload the image from your PC
  5. The image will appear with an image editor
  6. You can use the image editor to
    • Give the image a caption
    • Make the image a hyperlink
    • Set alternative text to be displayed if the image cannot be displayed
    • Remove the image
    • Display the image inline or to break the text
    • Align the image to the left or right of neighboring text, or display it where you put it with no alighment
    • Set the size of the image, in pixels or as a percentage of the size of the block that contains it
  7. With the image in place, you can resize it by dragging its sides or click it to display the image editor.
Editable Page Operations
Blocks

Blocks contain content that is displayed on pages. A page has one or more sections. Each block is in a section of a page.

A block can contain:

  • styled content, including text, images, and displayed views of data, or
  • a form for input of data, or
  • raw text.

You can add blocks to sections, edit blocks in sections, delete blocks from sections, or move blocks around within sections.

Editable Page Operations
Delete a Block

When editing a page:

  1. Click Remove icon on the block that you want to delete.
  2. A confirmation dialog will appear. Click OK
Editable Page Operations
Display Data Using a View

When editing a styled content block: 

  1. Specifications are shown of the views by which data is displayed in the block. These views may also be used to change data.
  2. To add a view:
    • Click View icon
    • Select the workspace that contains the view
    • Select the view
    • A view specification will appear, showing which view you have selected and the write level, which is the access level that a user must have to use the view to change data
    • The write level will be None
  3. To enable users to change data using a view:
    • Click the write level (or None)
    • Select the write level that users changing data must have
  4. To change the view that is used to display the data:
    • Click the view name
    • Select the workspace containing the view that you want to use
    • Select the view.
Editable Page Operations
Edit a Block

When editing a page:

  1. Click Edit icon on the block that you want to edit.
  2. An editor will appear. Use it to change the content of the block.
  3. Click Proceed icon
Editable Page Operations
Edit a Page

When viewing a page:

  1. ClickEdit icon at the top of the page.
  2. The Edit icon will change to Display icon and editor icons will appear.


Editable Page Operations
Move a Block

When editing a page:

  1. Click and hold Drag handle on the block that you want to move
  2. Drag the block to where you want it to go
  3. You can only move a block within its section. You cannot move blocks between sections.
Editable Page Operations
Pages

You can create and edit HTML pages.

You can view a page as an end user would see it, without editor icons.

A page has one or more sections containing blocks of content. The number of sections and their arrangement on the page is set in the page template. You can add, edit, and remove blocks, and move blocks within their sections.

You can set a page title that is displayed in the browser tab. The title may also be displayed on the page; this depends on the page template.

You can set a page template, which defines the style and layout of the page. 

You can set page assignments, which affect what data is displayed in views on the page.

If the page contains a menu, you can add, edit, delete, and move menu items.

Editable Page Operations
Set Page Assignments

Page assignments affect the data that is displayed in views on the page. For example, by assigning the value of Country, one page might display the cities of India and another might display the cities of France, using the same view.

To set page assignments, when editing a page:

  1. The page assignments are displayed in the area headed Assignments
  2. To add an assignment, click Add icon in that area, or
  3. To edit an assignmnent, click Edit icon next to it
  4. A confirm dialog will appear because, if you are editing a block or something else on the page, your work could be lost. If you are not editing anything on the page, click OK
  5. Enter the name (e.g. Country) to which you want to assign a value
  6. Select the type of value that you want to assign
  7. Enter the value that you want to assign
  8. Click Proceed icon
Editable Page Operations
Set the Browser Tab Title

When editing a page:

  1. If there is no browser tab title, click in the area headed Browser-Tab Title or
  2. If a title has already been set, click in the area headed Browser-Tab Title
  3. A confirm dialog will appear because, if you are editing a block or something else on the page, your work could be lost. If you are not editing anything on the page, click OK
  4. Enter the title that you want to appear in the browser tab.
  5. Click Proceed icon
Editable Page Operations
Set the Page Template

Templates are files that determine the layout and styling of a page. They are created by designers. There is a default template that comes with the system. Your system administrator will tell you if there are other templates that you can use, and where to find them.

To set a page template, when editing the page:

  1. If there is no template set, click Add icon in the area headed Template, or
  2. If a template has already been set, click Edit icon in the area headed Template
  3. A confirm dialog will appear because, if you are editing a block or something else on the page, your work could be lost. If you are not editing anything on the page, click OK
  4. A template form will appear
    • Select the workspace containing the file that you want to set as the template
    • Select the file
    • Click Proceed icon
  5. If you want to revert to the default template for the page:
    • Click Remove icon in the area headed Template
    • Click OK in the confirm dialog.
Editable Page Operations
View a Page Without Editor Icons

Editor icons such as Add icon and Edit icon are displayed so that you can edit a page.

When editing a page, to display the page as an end user would see it, without the editor icons:

  1. Click Display icon at the top of the page
  2. The editor icons will disapear and the Display icon will change to Edit icon
  3. To display the page with the editor icons again, click Edit icon at the top of the page.
Editable Page Operations
Log Back In

On the User page, when you were previously logged in, you will see a log back in link.

  1. Click the log back in link.
  2. You will go to your identity provider's website to establish your identity. How this is done depends on the provider.
  3. Once you have established your identity, you will return to the User page. If you are already logged in to your provider, you may return to the user page immediately, without having to do anything.
  4. You will have the access level that you had previously.
Login
Log In

On the User page:

  1. In the Log In section, click Command button for your identity provider.
  2. You will go to your identity provider's website to establish your identity. How this is done depends on the provider. 
  3. Once you have established your identity, you will return to the User page. If you are already logged in to your provider, you may return to the user page immediately, without having to do anything.
  4. The Welcome message will change to show your established identity.
Login
Logging In

You can log in to the system and set or change your access level.

You do this on the User page. You can go to the User page by clicking User button on another page. You will be taken to the User page automatically if you try to go to a page but your access level is not sufficient to read it.

When you have logged in, you can read more information, depending on your access level. You may also be able to write information.

To log in, you establish your access level using an external identity provider such as Google or LinkedIn.  Which identity providers you can use depends on how your system is set up.

If you were previously logged in but your session has expired, you can log back in.

Once you have logged in, you can select your access level. Which access levels are available depends on how your system is set up.

If you were taken to the User page automatically, and your access level is now sufficient to read the page you originally wanted, you will be taken to it automatically.

If you reached the User page by clicking User button on another page, you can return to your original page, or navigate to another page.

Login
Return to Your Original Page

On the User page:

  1. Click the return to your original page link in the Welcome section.
Login
Select Your Access Level

On the User page:

  1. Click Command button for the access level that you want in the Choose your role section.
  2. Your access level will now be shown with Selected command button
  3. The Welcome message will change to show your access level.
Login
Change the Access Levels of a Main Workspace

On a source home page:

  1. Click Edit icon for the workspace that you want to change
  2. Select the read access level
  3. Select the write access level
  4. Click Proceed icon
Source Operations
Copy a Main Workspace

On a source home page:

  1. Click Move or copy icon for the workspace that you want to copy
  2. Select as Target Parent the source or workspace to which you want to copy it
  3. Select as Target Name the name that you want its copy to have
  4. Select the operation to perform: COPY preserving write levels or COPY at session write level
  5. Click Proceed icon
  6. A dialog will appear indicating whether the copy succeeded
  7. Click OK.

Note that you cannot move a main workspace.

With COPY preserving write levels, the copied items will have the same read and write access levels as the originals. The operation will fail if you would not then have write access to them. This can be inconvenient if, for example, you want to copy a workspace that you don't have write access to. You can use the COPY at session write level operation in this case. The write access levels of the copied items will then be your current access level. The read access levels will be unchanged.


Source Operations
Create a Main Workspace

On a source home page:

  1. Click Add icon
  2. Enter the name of the workspace
  3. Select the read access level
  4. Select the write access level
  5. Click Proceed icon
Source Operations
Delete a Main Workspace

Note that you cannot delete a main workspace that has sub-workspaces: you must delete them first.

On a source home page:

  1. Click Remove icon for the page, view, file, or sub-workspace that you want to delete.
  2. Click OK in the confirm dialog.
Source Operations
Navigate to a Main Workspace

On a source home page:

  1. Click the name of a main workspace
  2. You will go to the main workspace whose name you clicked.
Source Operations
Rename a Main Workspace

On a source home page:

  1. Click Edit icon for the workspace that you want to rename
  2. Change the Name field
  3. Click Proceed icon


Source Operations
Source Home Page

Each source has a source home page located at rooturl/sourcename, where rooturl is the URL of the Soda installation and sourcename is the name of the source. For example, the home source of the installation at https://www.lacibus.net is at https://www.lacibus.net/home. On this page, you can:

Source Operations
About Sources

Sources are where data is stored in the system. The stored data can include pages, files, views, workspaces, and other data of any kind. Pages, files, views and workspaces can be created, read, updated and deleted in sources and workspaces. Other kinds of data can be created, read, updated and deleted using views on pages.

Each Soda installation has two special sources: the system source and the home source. The system source is named sys and contains data needed for the operation of the system. The home source is named home and contains data that defines the system configuration.

Each source has an admin access level. A user working at this level can perform administration operations on the source.

The system source and the home source, are always connected to the system. A user working at the home source admin access level can connect other sources to the system and disconnect them from it.

Each source has a source home page.

Sources
Create a Description, Unknown, Constraint, Column or Action

On a view page:

  1. Click Add icon in the Description, Unknowns, Constraints, Columns or Actions section
  2. Enter the information for a description, unknown, constraint, column or action, as appropriate
  3. Click Proceed icon
View Definitions
Define a Key

On a view page, if the selected view use is a type of view that can have keys, a Key section will appear. In that section:

  1. If there is not yet a key definition, click Add icon
  2. If there is a key definition already, click Edit icon
  3. Select the key unknowns from the drop-down list. (You can select multiple unknowns).
  4. Click Proceed icon


View Definitions
Define a Type of Single Item Description

On a view page, if single item description view use is selected, a Single Item Description section will appear. In that section:

  1. If there is not yet a single item description, click Add icon
  2. If there is a single item description already, click Edit icon
  3. Select the described item unknown from the drop-down list
  4. Enter a description of the type of information described by the view. It will be used within sentences in dialogs, and should start with a lowercase letter.
  5. Select the display type from the drop-down list
  6. The value of use default access levels is not used, and can be set to either true or false.
  7. Click Proceed icon
View Definitions
Define a Type of User Information

On a view page, if user information view use is selected, a User Information section will appear. In that section:

  1. If there is not yet a user information attribute, click Add icon
  2. If there is a user information attribute already, click Edit icon
  3. Select the user information unknown from the drop-down list
  4. Enter a description of the type of user information displayed by the view. It will be used within sentences in dialogs, and should start with a lowercase letter.
  5. Select the display type from the drop-down list
  6. Select whether items should be created with default access levels. The default read level is the read level of the page on which the view is displayed. The default write level is the access level of the user creating the item. If use default access levels is set to false, the user creating an item will be asked to specify its access levels.
  7. Click Proceed icon
View Definitions
Delete a Description, Unknown, Constraint, Column or Action

On a view page:

  1. Click Remove icon for the description, unknown, constraint, column or action that you want to delete
  2. A confirmation dialog will appear. Click OK
View Definitions
Edit a Description, Unknown, Constraint, Column or Action

On a view page:

  1. Click Edit icon for the description, unknown, constraint, column or action that you want to change
  2. Edit the information for a description, unknown, constraint, column or action, as appropriate
  3. Click Proceed icon
View Definitions
Set a (Ranked) Item Definition

On a view page, if item definition view use is selected, an Item Definition section will appear, or if ranked item definition view use is selected, a Ranked Item Definition section will appear. In that section:

  1. If there is not yet an item definition, click Add icon
  2. If there is an item definition already, click Edit icon
  3. Select the item definition unknown from the drop-down list
  4. Enter a description of the type of item described by the view. It will be used within sentences in dialogs, and should start with a lowercase letter.
  5. Select the display type from the drop-down list
  6. Select whether items should be created with default access levels. The default read level is the read level of the page on which the view is displayed. The default write level is the access level of the user creating the item. If use default access levels is set to false, the user creating an item will be asked to specify its access levels.
  7. Click Proceed icon


View Definitions
View Pages

Each view has a view page, located at parenturl/viewname, where parenturl is the location of the workspace that contains the view, and viewname is the name of the view. For example, The view named libraries in the views workspace of the help source at https://www.lacibus.com is at https://lacibus.com/help/views/libraries

On a view page, you can define a view or edit a view definition. To do this, you:

Depending on the type of view, you may need to set more information.

View Definitions
Item Definition Views

An item definition view displays data about a particular type of item, and enables users to input and change data. Users can create new items, delete items, and change the data associated with an item. Users can request actions, and actions can be performed automatically when data is changed.

When an item definition view displays data, each row contains the data values relating to a particular item. The unknown that is the name of this item is the item definition unknown.

For example, an item definition view of people's names might have item definition unknown Person, other unknowns N, M and L, and constraints Person Has first name N, Person Has middle name M, and Person Has last name L. Each row then contains a person's first, middle and last names.

The view can have tabular or linear display type. With tabular display type, the rows are displayed vertically, underneath each other. With linear display type, they are displayed horizontally, side by side.

The rows of data are sorted by their values in accordance with the sort priorities and sort directions of the view's unknowns.

An item definition view can have a key.

An item definition view with a key defines an item type that can be used as the type of an unknown of another view.

When an item definition view has a key, each row has a value for each of the key unknowns, but need not have values for the other unknowns, For example, in a view of people whose key unknowns are first name, last name, and nickname, some rows might include a middle name, but in other rows it could be blank.

View Types
Media Galleries

A media gallery view lets you display images or YouTube videos  with associated information such as titles and descriptions. The images are all scaled to the same size so that the display is neat and attractive. Users can 

  • Add or delete media and associated information
  • Change the media and edit their associated information
  • Drag and drop media to rearrange the display.

A media gallery is a kind of ranked item definition view. It has a gallery exhibit unknown, which is its item definition unknown. Its values are items that represent gallery exhibits. It also has a media unknown, whose values are the images or references to YouTube videos. The view's constraints link the gallery exhibit unknown to the media unknown and to unknowns whose values are associated information such as titles and descriptions.

There are two types of media gallery: column and rows

In the column type of gallery, the gallery exhibits are in a single column. Each exhibit has the media at its left side, with the associated information to the right of it.

In the rows type of gallery, the images or videos are arranged in rows. Each is stacked vertically with its associated information, in the order of their columns in the view definition. You can, for example, put the title above or below the image or video by changing this order.

These arrangements are set by the CSS files referenced in the default template. You can change them by using a custom template and a custom CSS file.

View Types
Ranked Item Definition Views

A ranked item definition view is like an item definition view. The difference is that its rows are not sorted by the values of its unknowns; their order is determined by users, who can use drag-and-drop to move them around.

The view is given an automatically assigned unknown, its rank unknown, that determines the row order. Its values are adjusted automatically when a user drags and drops a row.

Some views used by the system are ranked item definition views. They include the view used to display page assignments when a page is edited, and the views used to display view unknowns, constraints and columns on a view page.

View Types
Single Item Description Views

A single item description view gives information about a particular item in the system. It allows that information to be created, changed or deleted, but does not allow the described item to be created or deleted.

The system uses an item definition view when a page is edited to enable the user to set or change the browser bar title. The user can add, change or delete a title. Deleting the title does not delete the page.

A single item description view has an unknown that represents the described item. This is the described item unknown.

When a single item description view is displayed, there will be at most one row. If there is no row, the user can add one. If there is a row, the user can change its values or delete it. This means that, for example, a page can only have one title.

A single item description view can have a key. If it does, then only the key unknowns need have values.

View Types
Types of ViewView Types
User Information Views

A user information view gives information about the logged-in user who is displaying it, and enables the logged-in user to enter information about themself. Different users viewing the same user information view will see different data. It is a kind of item definition view. The user can add, edit and delete user-related items of information.

The rows of data are sorted by their values according to the sort priorities and sort directions of the view's unknowns.

A user information view has an unknown that names the user-related items. This is the user information unknown.

A user information view can have a key. If it does, then only the key unknowns need have values.

User information views are a good way to enable users to view and change their personal information.

View Types
View Keys

A view key is a set of unknowns whose combined values identify a row. 

For example, in a view of people, first name, last name and nickname might be the key. First name and last name only would be a bad choice because occasionally two people have the same first name and the same last name. Nicknames can then be used to distinguish them.

If a view has a key, it is an error to add a row with the same key values as an existing row. When a keyed view is displayed, any rows with duplicated key values are highlighted.

View Types
Views That Just Display Data

Views that just display data simply display the rows of data values that satisfy their constraints in a table, with the rows underneath each other. They cannot be used to edit the data values or input new ones, or to request actions.

The rows of data are sorted by their values according to the sort priorities and sort directions of the view's unknowns.

Each row has a value for each of the view's unknowns. For example, in a view of people's first names, last names, and middle names, if a person has a first name and last name but no middle name, no data for that person is displayed.

View Types
About Views

You can save a query as a view. This way, you can explore your data without having to run the same queries over and over again. You can define how those results should be displayed in order to make them easier for people to read. You can also use views to input and edit data, and to perform actions.

There are different types of view, that display data in different ways.

You can display data using views on pages.

You can define views in workspaces.

Views
Actions

An action is an operation on the data that is performed when a user clicks a button, or automatically when data is changed. Each action has a name, a trigger, an app, and a command.

The name is a string that identifies the action and is displayed on its button if it can be requested by users.

The trigger is the circumstance that causes the action to be performed. It is one of:

  • Button - the action is performed when a user clicks its button
  • Before Update - the action is performed when data is changed, before the change is made
  • After Update - the action is performed when data is changed, after the change is made.

The app is the application that performs the action. These applications are system-defined, but include the remote application that sends a request to an external service.

The command is an application-dependant command that the application executes to perform the action. For the remote application, it is the URL of the remote service that will be requested to perform the action, and can be any URL. This allows the system to be extended by arbitrary custom remote services.



Views
Columns

A view column either displays the value of an unknown or contains buttons that the user can click to invoke actions.

A column can have a header that is displayed at the top, before the data or buttons.

Views
Constraints

A view's constraints determine what data is retrieved. Each constraint has a subject, a verb, and an object, for example Person Has First name N, and Person Has Last name L. Each row of retrieved data has a value for each of the unknowns, and the combination of values fits all of the constraints. These two constraints would produce a list of rows, each of which had a person's first name and last name.

A view with those constraints would produce a list of all the people in the system. Using more specific constraints can produce more targeted lists. For example, the last name constraint could be changed to Person Has last name "Smith". This would result in a list of all the people whose last name is Smith.

The subject of a constraint must be an unknown of item type or a specific item. (An unknown of item type has values that are items.)

The verb of a constraint must be an unknown of item type or a specific item.

The object of a constraint can be an unknown of any type or any specific value.

A constraint can be set as being unique valued. This determines whether multiple values are allowed when data is input, but does not affect display of the data.

Views
How Views Display Data

Views have:

  • Unknowns, which are names for the data values to retrieve
  • Constraints, which determine the values to retrieve
  • Columns, in which the retrieved values are displayed

A view is a saved query for data values that satisfy its constraints. The query retrieves combinations of data values. Each combination has a value for each of the unknowns, and is displayed as a row. The displayed values of each unknown form a column.

For example, a view to display a list of people might have:

  • Unknowns Person, N, and L
  • Constraints Person Has first name N and Person Has last name L 
  • Columns in which the values of N and L are displayed, with a row for each person in the list.

Usually, the rows are displayed beneath each other, so that the columns form vertical lines in a table. Sometimes, the rows are displayed side-by-side; the values of an unknown are then still called a column even though they are not in a vertical line.

Views
How Views Enable Data Input and Edit

Some views just display rows of data. With other views, you can change rows and add new ones.

If a view allows user input, each row will be displayed with an edit button that the user can click to change the data in the row, and a delete button that the user can use to delete the row. The view will have an add button that the user can click to add a new row.

Views
Unknowns

View unknowns are names for data values to be retrieved. As well as being a name to identify the data values, an unknown also has a type, a sort priority, a sort direction, and an indication of whether it is editable

The type of an unknown determines how its data values are displayed, but does not affect what data values are retrieved. For example, an unknown might have integer type, but there might be a string value for it that fits the constraints. Perhaps a house number was entered as "three" instead of "3". The mis-typed value is still retrieved and displayed.

The type also determines how input data is treated, for example whether the character '3' is treated as the number three or as a text string.

In some views, the data is sorted for display. For example, a list of people might be displayed in alphabetical order of their last names, with people that have the same last name in alphabetical order of their first names. This would be achieved by giving the first name and last name unknowns sort priorities, with last name having a higher priority than first name. If first name was given a higher priority than last name, then the people would be displayed in alphabetical order of their first names.

The sort direction of an unknown can be set to reverse, so that its values are sorted from high to low instead of from low to high. For example, an Age unknown might be given reverse direction so that the older people are displayed first. 

Whether an unknown is editable determines whether its values can be set and changed when data is input, but does not affect how it is displayed.

The value of an unkown can be set for a page by a page assignment. This lets you use the same view to display different information on different pages. For example, you could have a view that can display people who are either business contacts or personal contacts. You could display the business contacts on one page and the personal contacts on another by assigning different values to a Contact Type unknown. 

Views
View Descriptions

It is a good idea to give each view a description that explains what it does and how it is used. 

View descriptions are useful to the people that create and edit views, and to the people that use views when creating and editing pages. They are not normally seen by end users. 

Views
Change the Access Levels of a Page, View, File, or Sub-Workspace

On a workspace page:

  1. Click Edit icon for the page, view, file or sub-workspace that you want to change
  2. Select the read access level
  3. Select the write access level
  4. Click Proceed icon
Workspace Operations
Change the Type of a Page, View, or Sub-Workspace

If you mistakenly create a page instead of a view or sub-workspace, you can change its type so long as it does not have any content. Similarly, you can change the type of an empty view or sub-workspace. You cannot change the type of a file that has been uploaded.

On a workspace page:

  1. Click Edit icon for the page, view or workspace that you want to change
  2. Select the type that you want it to have
  3. Click Proceed icon
Workspace Operations
Create a Page, View, or Sub-Workspace

On a workspace page:

  1. Click Add icon
  2. Enter the name of the page, view, or sub-workspace
  3. Select the type as Page, View, or Workspace
  4. Select the read access level
  5. Select the write access level
  6. Click Proceed icon
Workspace Operations
Delete a Page, View, File, or Sub-Workspace

Note that you cannot delete a sub-workspace that has sub-workspaces: you must delete them first.

On a workspace page:

  1. Click Remove icon for the page, view, file, or sub-workspace that you want to delete.
  2. Click OK in the confirm dialog.
Workspace Operations
Move or Copy a Page, View, or File

On a workspace page:

  1. Click Move or copy icon for the page, view, or file that you want to move or copy
  2. Select as Target Parent the workspace to which you want to move or copy it.
  3. Select as Target Name the name that you want it to have when moved or that you want its copy to have
  4. Select the operation to perform: COPY preserving write levels, COPY at session write level, or MOVE preserving write levels
  5. Click Proceed icon
  6. A dialog will appear indicating whether the move or copy succeeded
  7. Click OK

Note that you cannot move a page, view or file to a workspace in another source.

With COPY preserving write levels and MOVE preserving write levels, the copied or moved items will have the same read and write access levels as the originals. The operation will fail if you would not then have write access to them. This can be inconvenient if, for example, you want to copy something that you don't have write access to. You can use the COPY at session write level operation in this case. The write access levels of the copied items will then be your current access level. The read access levels will be unchanged.

Workspace Operations
Move or Copy a Sub-Workspace

On a workspace page:

  1. Click Move or copy icon for the sub-workspace that you want to move or copy
  2. Select as Target Parent the workspace to which you want to move or copy it, or the source to which you want to copy it
  3. Select as Target Name the name that you want it to have when moved, or that you want its copy to have
  4. Select the operation to perform: COPY preserving write levels, COPY at session write level, or MOVE preserving write levels
  5. Click Proceed icon
  6. A dialog will appear indicating whether the move or copy succeeded
  7. Click OK

Note that you cannot move a sub-workspace to a workspace in another source or to be a main workspace.

With COPY preserving write levels and MOVE preserving write levels, the copied or moved items will have the same read and write access levels as the originals. The operation will fail if you would not then have write access to them. This can be inconvenient if, for example, you want to copy something that you don't have write access to. You can use the COPY at session write level operation in this case. The write access levels of the copied items will then be your current access level. The read access levels will be unchanged.

Workspace Operations
Navigate to a Page, File, View, or Sub-workspace

On a workspace page:

  1. Click the name of a page, file, view, or sub-workspace
  2. You will go to the page, file, view, or sub-workspace whose name you clicked.
Workspace Operations
Rename a Page, View, File, or Sub-Workspace

On a workspace page:

  1. Click Edit icon for the page, view, file or sub-workspace that you want to rename
  2. Change the Name field
  3. ClickProceed icon
Workspace Operations
Upload a File

On a workspace page:

  1. Click Add icon
  2. Enter the name of the file. If you want it to display correctly when you click its name in the workspace, you should end the name with the right filename extension: .txt for text files, .jpeg for JPEG images, and so on
  3. Select the type as File
  4. Select the read access level
  5. Select the write access level
  6. Click Choose file and select the file you want to upload from your PC
  7. Click Proceed icon
Workspace Operations
Workspace Pages

Each workspace has a workspace page, located at parenturl/workspacename, where parenturl is the location of the workspace's parent, and workspacename is the name of the workspace. For example, The workspace named articles in the info source at https://www.lacibus.net is at https://www.lacibus.net/info/articles and its sub-workspace named 2022 is at https://www.lacibus.net/info/articles/2022.

On a workspace page, you can: 

Workspace Operations
About Workspaces

Workspaces are like folders or directories on other systems. They are where you manage pages, views, files, and sub-workspaces.

A workspace is either a main workspace or a sub-workspace. A main workspace is a member of a source. A sub-workspace is a member of another workspace. Sub-workspaces can themselves have members that are sub-workspaces.

Each workspace has a workspace page.

Workspaces