datasqill verwendet eine Repositorydatenbank, die sowohl von der GUI, als auch vom datasqill Server verwendet wird. Mit Ausnahme der Laufzeitdaten, werden alle anderen Daten versioniert gespeichert, sodass man immer nachvollziehen kann, wie der Stand des Repositories zu einem beliebigen Zeitpunkt war. In dem Repository werden Konfigurationsdaten, die Transformationen, die geplanten Abläufe und auch die Laufzeitinformationen gespeichert.
Die datasqill kann man für mehrere Umgebungen verwenden. Hierbei gibt es pro Umgebung einen eigenen datasqill Server und die dazugehörige Repositorydatenbank. Pro Produktion (datasqill Lizenz) gibt es eine Entwicklungsumgebung, die die Nutzer berechtigt, neue Transformationen, Arbeitsblätter oder Transformationsverzeichnisse anzulegen. Die von dieser Entwicklung abhängigen Umgebungen erhalten die Transformationen über Deployments. Die datasqill GUI verbindet sich mit einer Masterumgebung, in der alle weiteren Umgebungen eingetragen sind.
Die datasqill-Benutzer werden erfasst. Man kann die einzelnen Berechtigungen bestimmten Berechtigungsrollen zuordnen. Pro Umgebung können nun den Benutzeren Berechtigungsrollen oder Einzelberechtigungen zugeordnet werden.
In der datasqill GUI werden alle verwendeten Verbindungen zu fremden Datenbanken, Systemen, Webservices, usw. erfasst ohne dass sie physikalischen Diensten zugeordnet werden. In den Transformationen verwendet man diese symbolischen Verbindungen und deployed diese Transformationen so auf die nachfolgenden Umgebungen. Auf den Zielsystemen (datasqill-Servern) werden diese Verbindungen mit den Zugangsdaten zu den physikalischen Systemen über eine Datei zugeordnet. Somit kann man die Verbindungung in den unterschiedlichen Umgebungen auf verschiedene Systeme einrichten.
datasqill ermöglicht für bestimmte Funktionalitäten frei definierbare Trigger. Diese werden verwendet, um zu bestimmten Zeitpunkten (z.B. nach Aufbau einer Verbindung, nach dem Schreiben, usw.) bestimmte Aktivitäten in der Datenbank auszulösen, oder aber auch, um nicht standardisierte Funktionalitäten zu ermöglichen (z.B. Truncate Table).