Guides

Get Started Preview Configuring IAM FAQ

Apps

Data Files Functions

SDK

Get Started

Getting Started

To download and install the software, check out this section in our FAQ.

Running Operator Toolbox

If you don't have any AWS credentials on your computer, you will see a screen asking for them.

You can copy your credentials from here.

If you do have credentials on your computer, the list of applications on the left hand side of the screen will be expanded, apps are ready to download, launch and update.

Click on the side-bar headings to expand them, the apps section contains all the apps that you currently have installed or can install with your license.

If you've never launched an app before, it will download. If you have, it will just launch. Updates are downloaded in the background.

Operator early preview.

How to join the preview

Join us in discord! Let us know what you're working on and what you'd like to see in our products. It's also a good venue to discuss feedback & bug reports.

What is the early preview

Operator early preview is an exclusive early preview of Operator Tools. You are provided with an activation key that is associated with your email address and allows you to try Operator tools for free.

Locating your product key

We’ve signed you up with your email and sent you a product key which also includes a link to the download for your operating system.

Please don't share this download link at this stage.

Setting up AWS credentials for operator.

One of the upcoming features is an IAM wizard that will help walk you through setting up the AWS IAM permissions to get the most out of the Operator applications.

In the meanwhile, here's a short guide in how to setup a user and a role to use with the operator applications.

Creating an operator policy

To avoid giving the Operator tools access to your entire AWS account you can create a policy that includes only the permissions that the operator tools need.

Start by going to IAM and clicking on policies and then create policy

Then you want to copy our recommended policy JSON into the JSON editor in the AWS console

You can find our policy here for now

Give the policy a name, I would recommend OperatorToolsAccess and then review/save it.

Creating a CLI user for the Operator apps.

With a IAM policy created you can create a new user with it's AWS access key and AWS secret.

Go to the IAM users section and click add a user.

Then enter a name for your user and enable programattic access.

When setting permissions, go to the attach a policy tab and find the OperatorToolsAccess role that you have created and select it.

You can skip tags and then review the IAM user to be created.

Once the user is created you will see the access key & secret credentials

Using credentials in Operator app.

You can import these credentials into the Operator toolbox under Settings => AWS Profiles

There's a section in the getting started guide about adding credentials.

Frequently Asked Questions

Who uses Operator Tools?

Developers, Creatives, Managers, Founders

Cloud services like AWS are powerful, they provide a lot of utility, but they're also very complex. They have a steep learning curve, and are difficult to work with, even for experienced users.

Operator makes it easier to use the cloud to do things like deploy your code, manage your static assets, and manage your data.

Organizations

Operator isn't a service, it runs entirely within your network and can be administered by your organization. Changes made with Operator tools are sync'd between team members and can be reverted and exported with Operator Time Machine.

Why would anyone use a GUI? Do you even 1337??

Microsoft acquired a UI called Github for 7.5 Billion USD. People like GUIs.

Do you collect telemetry data?

No! Use something like Little Snitch if you want to verify it. But our reasons are that, like you, we have work to do and wouldn't want someone watching over our shoulder as we do it. We collect no data what-so-ever from you or about you, it's not our business.

Do you audit the dependencies you use in your product?

Yes. Almost all of the deps we use, we also contribute to. If not, we read the code. To make this more viable, we use as few dependencies as possible. We also fork Elecron to remove dependencies that are non-essential.

How safe is your product?

Our products read only your data. We make sure your data is escaped and properly contained when loaded. We don't load or execute any arbitrary 3rd party code. All our updates are signed and sent over encrypted channels. Any opeartions that write data can be easily reverted using Operator Time Machine.

I like your UI, what framework did you use?

We are minimalists. We try to ship as little code as possible. We built our own framework called Tonic.

If I find a vulnerability, do you have a bug-bounty program?

Yes. Please email us at infosec at optool dot co.

How can I improve the docs?

If you want to contribute to the docs, the repo is here.

How can I report an issue?

If you have found an issue, please report it on our github beta repository.

Can I share the logs for the operator application ?

Yes, it would be very helpful if you took the local logfile for the operator apps and pasted it to share in the github issue.

You can find our log files on disk for

  • MacOS : ~/Library/Application Support/$APP_NAME/optoolco/logs.nldj
  • Windows : %appdata%\$APP_NAME\optoolco\logs.nldj
  • Linux : ~/.config/$APP_NAME/optoolco/logs.nldj

The $APP_NAME is one of ( Operator, Buckets, Data , Functions )

Can I launch the application from the terminal and get logs on stdout ?

Yes, the applications can be launched from the terminal and will provide you with logging information on stdout

You can use the following commands

  • MacOs : /Applications/Operator.app/Contents/MacOS/Operator --application $APP_NAME
  • Linux : operator --application $APP_NAME

The $APP_NAME would be buckets, data or functions.

To launch the Operator toolbox from the terminal you do not need the --application command line flag and can just run either operator or /Applications/Operator.app/Contents/MacOS/Operator.

How do I install Operator Tools?

How do I download Operator Tools?

To download the software, visit the downloads page.

Does 5 Apps mean 5 copies of electron?

No. We only ship one binary. And we have a fork of electron that is much smaller and optimized for our use cases.

How to install on macOS

  • Download the .dmg file
  • Navigate to your Downloads folder and double-click the .dmg to open
  • When the installer appears, drag the Operator Icon onto the Applications folder to install
  • Navigate to your Applications folder and double-click the Operator App Icon to open
  • Eject the Operator installer

OS 10.9 or later

How to installation on Windows

  • Select Save or Save As to download the .exe file from the downloads page.
  • If you select Save, the program file is in your Downloads folder.
  • If you select Save as, you can choose where to save it.
  • Launch from the Operator icon.

Windows 10 or later

How to install on Linux

The following installers are available for Linux operating systems: .AppImage, .deb, .rpm, and .tar.gz

How to install with .AppImage:

  • Download the .AppImage file from the downloads page.
  • Right click on the downloaded .AppImage file and select Properties.
  • In the Permissions tab, check the box that says Allow executing file as program.
  • Launch the application

64-bit Linux

Can I install Operator on another computer?

With a single developer license, you can install operator on as many computers as you like.

How to do a complete uninstall

You can use your OS to uninstall the application and then you can delete the local files the applications have written

  • MacOS : ~/Library/Application Support/$APP_NAME/optoolco
  • Windows : %appdata%\$APP_NAME\optoolco
  • Linux : ~/.config/$APP_NAME/optoolco

You will have to delete them for Buckets, Data, Functions & Operator

How to get the latest Operator updates.

The Operator Toolbox application checks for updates on a daily basis, if you would like to update to the latest version immediately you can check for updates in the toolbox under the Preferences menu.

Once updates have been downloaded, you need to restart the app to use the newest version of it.

Accounts

How do I change my password?

  • Sign in to the management page.
  • On the Account tab, under Password, enter your old password and new password. Click Save.
  • A code will be emailed to you. Enter it to confirm the change.

I forgotten my password

  • Proceed to the management page. If you are already signed in, click Sign out.
  • On the Sign In page, click Forgot Password and follow the instructions.
  • A code will be sent to your email for password reset.

License

What does my Operator license include?

A license includes access to all Operator applications, including periodic software updates.

Applications

How do I add multiple AWS accounts?

  • Launch the Operator Toolbox application.
  • Under the settings tab, select AWS Profiles.
  • Type the name, key, and secret into the empty inputs and then click the check mark to save.

How do I launch an app?

You can launch a Operator app from the toolbar application by selecting the Launch icon next to the application.

How do I install new Operator apps?

  • Launch the Operator Toolbox application from your menu bar.
  • At the left you will aee the apps, pick the one you want to download.
  • Click the download button.
  • After download, the app will launch.
  • If you cannot select the download button, please check the status of your license.

Functions

The Functions app helps you deploy and manage serverless code.

Create a Function

To create a function, choose Create from the Functions menu.

Git Integration

Enabling git integration will ensure you and your team are always working with the latest version of the code.

New Functions

If you create a new function that points to a directory on your computer and that code is initalized as a git repository, the Functions app can automatically detect your remote. All you have to do is click the toggle labeled Git Integration.

If you create a new function and don't have any code on your computer, you can get it by entering the remote and clicking the Git Integration toggle.

Existing Functions

If you create a new function that points to a directory on your If someone else created the function using the Functions app, you will see the remote already entered into the input and you can click the Git Integration toggle.

Quick Edit

The Functions app will show you the files form your function in the tree. The app isn't inteneded to replace your editor but in some cases it's convenient to quickly view or edit source files.

Configuration

API

Permissions

TODO

Deploying

When you are ready to deploy, go to the main menu and select Code and then Deploy.

Preparing for Production

The total number of concurrent connections for all functions in a particular region is, by default, limited to 100. This limit is a guard-rail that AWS puts in place by default to protect you from run-away costs. If you want to increase the limit, follow the steps found in this guide.

Log output

You can log to stdout or stderr from any function. Logs are piped to CloudWatch and you can tail them immediately using the built-in console. The console shoud correctly highlight JSON and other notable things that you log.

404: Not Found

Dynamo

The Operator Data app is a DymanoDB compatible UI for NoSQL data.

Searching

The input at the top of the app is for searching. There are three different ways to use it. Clicking the input's label will toggle between Scan, Query and PQL modes.

The difference between modes

A scan iterates over all rows in a database. Scans are simple, but the trade-off is that the larger the table gets, the slower the scan will be. A query allows you to be more specific about what you are searching for by only looking at rows within a certain range. PQL has the highest amount of specificity, and its cost varies depending on how complicated and intensive your queries are.

Scanning

Consider a table where a row has a property called app. The following query will show all entries where the app value is equal to buckets. All you need to type is...

app = 'buckets'

You can check for multiple properties by adding more conditions...

app = 'buckets' AND tag = 'beta'

If you want help deciding how to formulate your search, click the up/down arrow inside the input box (right side) and a form will appear. This form will help you add more conditions. From here you can choose how to compare the value you are searching for with the values in the database. This form will also help you discover property names and input the correct value type for your search.

Querying

Tables are rows of related data. All rows of data are just objects with properties. But when you create your table, you pick one or two special properties that are known as the partition and range properties.

Dynamo uses the partition and range properties as the keys to organize your tables. A query will give you faster results because it can focus-in on a single partition of your table and look at only rows that match.

Note: DynamoDB requires your partition property when for queries (your range is optional).

hash = 'release' AND begins_with(range, 'alpha')

In this example, we used a function. You can see a complete list of functions and operators here.

SQL-compatible queries

DynamoDB data can be relational. And sometimes you want to query it that way. PartiQL is a SQL-compatible language that allows you to query dynamodb in the same way you would query a regular relational database.

Query Inspector

A search will generate JSON that cab be used as the parameters to the with the DynamoDB aws-sdk. You can inspect, edit and copy this value with the Query inspector. This can be useful if you are trying to test and develop a query for your app.

Editing

When you select a row, it will open the value editor. Since DynamoDB rows are just objects, a tree is a good way to progressively disclose the value. From here you can change the type of a property, edit, delete and add new properties.

Note: the partition and range properties are only editable on new records.

If you want to edit the DynamoDB value directly, click the code icon at the bottom of the panel.

Create a Table

To create a table, choose Create from the Table menu. Any options you don't see here now you can change later in the properties panel.

404: Not Found