Concepts

In this section:

Filters

The Filter function displays matched data on record fields without applying any conditions. For example, if you enter a string "Flat" in the filter field, the results display all records that contain the whole string "Flat".

Filters are:

  • case-sensitive
  • applied to the whole string (that is, does not display partial results)
  • only applied to fields displayed in the record (that is, does not include hidden fields)

The filter is not applied to the record ID field. Use the Advanced search option to search for a string within the record ID.

Advanced Search 

The Advanced Search feature enables you to narrow searches for records by applying specific conditions. For advanced search, go to the Dashboard > Records > select a record, and click the search  icon and select the Advanced Search.

The Advanced Search screen displays, where you can create the matcher by selecting a specific Field name from the Record, a Predicate and the Value of the field (the value may contain an integer or text). You can create multiple search conditions and specify the relation between matchers using the all or any options.

  • ALL: the search result displays only the records that satisfy all the defined conditions
  • ANY of the following conditions match: the search result displays the records that satisfy any of the defined conditions 

The search queries are case-sensitive by default for greater accuracy. This means, the word or term must be typed exactly as required in the Value field.

Removing a Condition

Click the Removeicon next to the condition to remove the applied search condition. 

Indexing

You can configure fields in the record definition to automatically extract values from records and store them in indexes that can be searched. Indexing enables the efficient retrieval of data in the database. When you search for a value, each field in the record is scanned to find a match. This can be a time-consuming process as the search looks through thousands of records in the record definition to find relevant matches. Using indexes, Gospel enables you to store a small portion of the data in special data structures, which supports efficient and quick search results. Indexing is used for advanced search and matches. 

Indexing works with the following data input types:

  • Date, Number and Integer
  • String
  • Select one


Field Types

Index Types and Constraints
BucketBasicStemmedUniqueUnique Stemmed
String(tick)(tick)(tick)(tick)(tick)
Integer(tick)



Number(tick)



Date(tick)



Select one
(tick)
(tick)
Index TypeConstraint
BucketFor a date, number and integer field type, the data is saved in buckets and the constraint is applied based on the order of magnitude which is the bucket size measured in powers of 10. For example, a value of 2 means buckets of size 100, -1 means buckets of size 0.1. The aim is to have balanced buckets, so the order depends on the field values.
Basic

With basic indexing, all values of the field are stored, which enables you to perform a search for the complete string in the record. 

For example, if the value "England" is set, the search result displays all records containing the value "England".

Stemmed

In this type of indexing, a stem length for the stemmed word must be provided, and an index is created based on the stem of that word. Stem length is set in the Stemmed length (bytes*) field.

For example, the stem for words "collaboration", "collaborated" and "collaborating" is collab. When a search is performed for the value "collab", the results displayed are "collaboration", "collaborated" and "collaborating". 

UniqueUnique indexing rejects duplicate values, thus preventing users from inserting the same value for more than one field in the record. For example, if the value "johnsmith@email.com" is used in the email field, if you create another field with the value "johnsmith@email.com", a duplicate value error is displayed when saving the record and the save action is rejected.
Unique Stemmed

In this type of indexing, users are prevented from inserting the same stemmed value for more than one field in the record. Stem length is set in the Stemmed length (bytes*) field.

For example, if the value "345-ACCNT-09" is used in a field Employee ID, if you attempt to create another field with a starting value of "345", a duplicate value error is displayed when saving the record and the save action is rejected.

Field Link and Foreign Key

Field linking is enabled only if indexing is enabled for the field. 

Data from one record can be referenced in another record using the field links option. This creates a parent-child relationship between the fields, where one record's value refers to the value in another record (usually a primary key of another record). The foreign key provides a link between data in two records. 

For example, in the following image, we are creating a link between the data that exists in DepartmentID in parent record Department and the DepartmentID field in the Employees record.

To do so, when creating/editing the record definition Employees and defining the properties of the field DepartmentID, select the record name Department and link to the field DepartmentID.

The Enforce Foreign Key option ensures that when you add a record in Employees, the value you enter in the DepartmentID field matches the values available in the Department record > DepartmentID field. If the value of the field does not match, an error is reported. For example, an error is reported when you enter 006 in the Employees record.

  • The child and parent field must have the same data type
  • This option is useful if the data already exists in the parent record
  • If you disable the link, the conditions are not validated for future inserts or updates to the record
  • Enforcing foreign key may cause the performance to deteriorate
  • Performance may be affected if both the fields in the parent and child records are not indexed.

Permissions and Types

Gospel provides various methods to manage permissions for accessing data that exists on the system. Permissions control user's ability to view and modify data that exists in the Gospel Data platform. Permissions to access data can be assigned to either all users in a group or specific users that meet the defined requirements. 

Permissions can be set for the Record Definition, Fields in records and views, Views, Watchers, and Triggers.

The following methods are used for identifying the user: 

  • Group: If set, all users in the group have the same access permission. For example, all users in the Human Resources group can have read and write access to a record Induction, but users in the group Finance can have only read access to the record. The Group setting can be set for Record Definitions, Fields in records and views, Views, Watchers and Triggers.

The following options can be set only for fields in Records and Views.

  • Logged in User: This option can be set for records that include at least one field that contains information to identify the user (for example, username or email). This information of the current (logged on) user is matched with the field in the records to verify if the user exists, and is allowed access only if this requirement is met. 
  • Contextual Owner: The source of context allows the user to map how different record definitions relate to each other, or to the user who owns the record. This can be achieved by specifying a parent definition, which allows the specification of how fields in differing definitions relate. Alternatively, you can set the context to the current user, which allows the specification of which field contains the user's name. This property is set in the Context option, available in the left pane on the Record Definition page.
  • Conditional UsersAllows access to users that are a member of the Group and when the set Field name matches the criteria. For example, users of the group Finance can have access to the record if the value for the field Travel is set to true. Only boolean fields are displayed in the drop-down.
  • Matcher: Allows access only when all the matcher conditions are met. The matchers can be set using the From, Predicate and Value fields. For example, when the City (From) is equal to (predicate) London (To) allow users to access the data. 

The following permissions can be set for identifying what permissions:

  • read this field
  • write to this field 
  • both read from and write to this field 

User Intent 

User intent is the identification of what the user intended or wanted to do in the Gospel platform. The information displayed typically captures, the Action which displays what was accessed, the Key which displays where the transaction occurred in the platform, and Actor displays by which user. 

The following information displays:

OptionDescription
Action

Displays the function called on the chain code.

The following options are available:

  • Insert/ Update: Displayed for update or insert actions. Some of the actions include, insertRecordDefinition or updateRecordDefinition 
  • Query functions: Displayed when you retrieve specific or all data. Some of the actions include, getAllVersionsById or getAll.
  • Delete functions: Displayed when you delete specific or all data. Some of the actions includedelete or deleteAll.
  • Utility functions: Displayed when there are changes to the Gospel configuration. Some of the actions includegetGospelConfig or revokeCertificate.
Key

Displays the location where the transaction occurred. 

Example: /company/employees/Emp003/

Actor

Displays the username from the certificate

Example: user@company.com

Subject key identifier

Displays the SKI from the user certificate.

Example:
18 4a 18 41 fs f4 09 a9 e7 s4 38 00 90 47 e2 a2
c5 59 4e a1