Title | Text | Subjects |
---|---|---|
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:
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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| 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:
| Editable Page Operations |
Add an Image | When editing a styled content block:
| 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:
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:
| Editable Page Operations |
Display Data Using a View | When editing a styled content block:
| Editable Page Operations |
Edit a Block | When editing a page:
| Editable Page Operations |
Edit a Page | When viewing a page:
| Editable Page Operations |
Move a Block | When editing a page:
| 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:
| Editable Page Operations |
Set the Browser Tab Title | When editing a page:
| 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:
| Editable Page Operations |
View a Page Without Editor Icons | Editor icons such as When editing a page, to display the page as an end user would see it, without the editor icons:
| Editable Page Operations |
Log Back In | On the User page, when you were previously logged in, you will see a log back in link.
| Login |
Log In | On the User page:
| 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 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 | Login |
Return to Your Original Page | On the User page:
| Login |
Select Your Access Level | On the User page:
| Login |
About Menus | Menus help users navigate between pages. Often, a set of pages has a common menu that includes all of them so that users can easily move between them. Page designers can put menus on pages using the Horizontal Menu construct in the page templates. If a set of pages have the same template, and it contains a menu, they will have it as a common menu. When you are editing a page, you can set its template. When you are editing a page that has a menu, you can add items, change items, delete items, and move items around to rearrange the menu. You can make the item for the current page look and behave differently from the other items in the menu. | Menus |
Add a Menu Item | When editing a page:
| Menus |
Delete a Menu Item | When editing a page:
| Menus |
Distinguish the Current Page in a Menu | When a page is displayed, you may want the item for the current page to look and behave differently. You can do this by adding an assignment to each page, with name MENU PAGE and value the page legend. The menu item for the current page will then have class sodacurrentpagemenuitemdiv and can be styled differently from the other items, which will have class sodanoncurrentpagemenuitemdiv. (The styling is defined in the CSS files referenced in the page template.) Also, the item will not have a link, so nothing will happen when it is clicked. | Menus |
Edit a Menu Item | When editing a page:
| Menus |
Move a Menu Item | When editing a page:
| Menus |
Change the Access Levels of a Main Workspace | On a source home page:
| Source Operations |
Copy a Main Workspace | On a source home page:
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:
| 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:
| Source Operations |
Navigate to a Main Workspace | On a source home page:
| Source Operations |
Rename a Main Workspace | 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:
| 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:
| 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:
| 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:
| View Definitions |
Delete a Description, Unknown, Constraint, Column or Action | On a view page:
| View Definitions |
Edit a Description, Unknown, Constraint, Column or Action | On a view page:
| View Definitions |
Set Media Gallery Information | On a view page, if media gallery view use is selected, a Media Gallery section will appear. In that section:
| 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:
| 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
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 View | There are several different types of view, that are used to display and input data in different ways. They are: | View 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:
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 | 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:
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:
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:
| 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:
| Workspace Operations |
Create a Page, View, or Sub-Workspace | On a workspace page:
| 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:
| Workspace Operations |
Move or Copy a Page, View, or File | On a workspace page:
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:
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:
| Workspace Operations |
Rename a Page, View, File, or Sub-Workspace | On a workspace page:
| Workspace Operations |
Upload a File | On a workspace page:
| 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 |