Skip to main content

The ANO Language

Overview

The ANO language is a Domain Specific Language.

It is designed for the specific purpose of writing anonymization logic as code.

Recommendation

Ano Sections

The ANO language is written in .ano files. The .ano file consists of four distinct sections.

1. Database Schema Information Section

This section contains the translated Database Configuration, and is the result of using the DBano Service. It describes the

  • database table names
  • table column names and types
  • primary keys
  • unique keys
// - - - - Database Schema Information - - - - //

table <table-name>
column <column-type> <name>
size <size>
column <column-type> <name>
size <size>
primary-key <name>
unique-key <name> <name>

table <table-name>
column <column-type> <name>
size <size>
column <column-type> <name>
size <size>
primary-key <name>
unique-key <name> <name>

// - - - - Database Schema Information - - - - //

table Customer
column integer id
column integer customerNo
column text email
size 40
column text name
size 40
column datetime created
primary-key id
unique-key customerNo customerNo

table Address
column integer id
column text homeAddress
size 40
column text postalCode
column integer customerNo // Foreign key
primary-key id

Full Ano File Structure and Example

// - - - - Database Schema Information - - - - //

table ...
column ...
column ...
primary-key ...
unique-key ... ...
table ...

// - - - - Foreign Keys (Optional) - - - - //

foreign-key
<parent> <parent-key>
<child> <foeign-key>

// - - - - User Defined Classes (Optional) - - - - //

conversion <package.path>
transformation <package.path>
distribution <package.path>

// - - - - Tasks and Rules - - - - //

task UpdateTasks
{
update <table>
<rule-logic>
...
update <table2>
<rule-logic>
...

}

task CreateTasks
{ ...
}