Welcome to documentation for Luna by ArkSigma!

Luna is the static data manager built for SQL Server. It can be configured with your current SQL Server installation and provides a simple interface to allow your users to manage both versioned and unversioned data tables.

https://www.arksigma.com/

Contents:

Getting Started

Installation

After download, run the MSI installer. You may need Administrative permissions to do so.

_images/install-dialog.jpg

By default, Luna installs in your ‘Program Files’ directory, usually on your ‘C’ drive, although this may be different depending on your setup. From here on, we’ll assume your installation directory is ‘C:\Program Files\ArkSigma\’

_images/install-dir.jpg

Once the installation is complete, the installer will install and start the service and make it accessible at the following address in your browser:

http://localhost:50001

Luna will also be accessible if you replace the ‘localhost’ with the machine name. E.g. http://<MACHINE_NAME>:50001

Logging in for the first time

_images/login-screen.jpg

When you first launch Luna, you will be presented with a login screen, requesting you use your Windows credentials.

Luna will automatically authenticate with your Domain Controller and fallback to your machine if you are not a member of a domain.

This first login is crucial to Luna as this user will be setup as the first Luna administrator.

Once login is successful, you will be taken to the main Luna page.

Changing the HTTP port

Securing your Luna instance with SSL

Types of tables supported by Luna

Luna supports multiple types of table-versioning schema out of the box.Luna

Dated Tables

These are tables that are versioned through the use of a pair of DATE or DATETIME fields indicating the validity of a record. In this example, these columns are called ‘ValidFrom’ and ‘ValidTo’, but these are configurable within Luna.

Customers
FirstName LastName SalesRank ValidFrom ValidTo
Kerry Scott 1 1 Jan 2016 31 Dec 9999
John Smith 2 1 Jan 2016 31 Dec 9999
Mark Cavendish 2 1 Jan 2016 1 Jul 2016
Mark Cavendish 3 1 Jul 2016 31 Dec 9999
Christine Gumble 4 11 Jul 2016 31 Dec 9999

Inserting a record into a Dated table will result in the ‘ValidFrom/To’ columns being set with the current date/time and the MAX date/time: ‘31 Dec 9999 23:59:59’.

Deleting a record will set the ‘ValidTo’ field to the current date.

Amending a record will expire the current record and insert a new one with the updated values and new ‘ValidFrom/To’ values.

BitFlagged Tables

These are tales that are versioned through the use of a BIT field. Old/invalid records are set to disabled instead of being deleted. In this example, the BIT column is called IsActive, and again, this is configurable in Luna.

Customers
FirstName LastName SalesRank IsActive
Kerry Scott 1 True
John Smith 2 True
Mark Cavendish 2 False
Mark Cavendish 3 True
Christine Gumble 4 True

Inserting a record into a BitFlagged table will result in the ‘IsActive’ flag being set to TRUE (1).

Deleting a record while set the flag to FALSE (0), while amending a record will set the flag on the current record to FALSE and create a copy with the new values and the flag set to TRUE.

Unflagged Tables

These are unversioned tables. I.e. there is no special mechanism for maintaining validity of the data. Operations on these tables update and delete in place, so no history is preserved.

Customers
FirstName LastName SalesRank
Kerry Scott 1
John Smith 2
Mark Cavendish 3
Christine Gumble 4

Operations on an Unflagged table will directly manipulate the data in the table. Amends will change the row in place, while deletions will remove the record from the table.

For this reason, it is advised to carefully consider your usage of Unflagged tables.

Configuring Luna for initial use

After you login for the first time, you will be presented with the main Luna interface. There’s not alot to see here, so click on the gears in the top-right corner, and hit ‘Configure’ to be taken to the configuration screen.

_images/home-screen.jpg

Creating your first Environment

The first thing to do is to create an Environment. Click on the ‘+’ symbol on environment pane to open the new environment dialog.The

_images/environment-screen.jpg

Enter a name for the environment and select a colour. This will define how the environment is displayed on the main Luna screen.Enter

Hit ‘Save’ when you’re happy with your environment.

Configuring a Server

Once you have an environment, you can configure a Server by clicking the ‘+’ symbol on the Server pane.

Luna supports two types of authentication on the server, outlined below. Once you have entered the details, you can click ‘Test Connection’ to verify the details and initiate a connection to the database. Once this is successful, hit ‘Save’ to save your settings and close the dialog.

Integrated Authentication

When configured in this mode, Luna will authenticate against the server using the integrated user, i.e. the account the Luna service is running as in Windows. This is also known as ‘Windows Authentication’ in SQL Server.

Server Authentication

When using server authentication, Luna allows you to enter a Username/Password combo to authenticate with. This is also known as ‘SQL Server Authentication’.

Adding a Table

Now we can configure our first table in Luna. Hit the ‘+’ symbol on the Tables pane to bring up the new table dialog. The ‘Database’ dropdown should automatically populate based on the server, so proceed to fill out the details requested.Now

The form will ask for the Primary Key field on the table to support key-based operations on the table.

_images/table-dialog.jpg

Once you have filled out the table information, proceed to select the type of table. Valid options are Dated, BitFlagged or Unflagged. These are explained in the section Types of tables supported by Luna.

Selection of the table type will enable selection of additional fields relevant to your selection.

The final part of configuring a table is the option to add it to a Luna Group. This will enable quick visibility in Luna as a table will not be visible to anyone without being a member of a Group. Select an existing Group from the list or choos <Add to new Group> to create a new one.The

Hit ‘Save’ to save your changes and close the dialog.

Adding Linked Tables

After you have configured multiple tables, you can proceed to defining relationships between them. In SQL Server, this is also known as ‘Foreign Key Relationships’. With the table highlighted in the tables pane, hit the ‘+’ symbol on the Linked Tables pane to bring up the dialog. The form requires you to define which table to link the currently selected one to, and which fields to use as joining keys.

Once you have defined your linked tables, you can add some ‘Linked Table Columns’. This defines which columns are visible from the linked table when viewing the primary table in Luna. You can create Linked Tables in either direction to support your needs.

Glossary

Here you’ll find an explanation of common terms used in Luna.

Environment

The Luna Interface