Skip to content

ukmda/cammanager

Repository files navigation

UKMDA User Management

This Windows application is used to add/maintain new cameras to the network. Its use is restricted to members of the UKMON admin team.

Basic Principles

A camera consists of an RMS ID, location and pointing direction.

Location

Each location is assigned a unique AWS user with credentials that grant suitable permissions to the S3 storage. For example, a contributor in Toytown might be assigned a unique AWS user "Toytown".

AWS credentials are not shared between locations. If a location's credentials are compromised, they can be disabled without impacting the rest of the network and new credentials can then be issued. The ukmon-pitools toolset is designed so that new credentials will be picked up the next time refreshTools.sh is run on the impacted Pi (either at reboot or manually).

Camera

Each camera is allocated a unique UKMON user ID created by combining the location and pointing direction eg "toytown_nw" (all lower case). The public ssh key provided by the operator is used to enable ukmon-pitools to login and collect configuration information for the camera. Camera names must be unique across the whole network and SSH keys should not be shared between cameras. If the operator chooses to share keys they do so at their own risk and it means that if the key is compromised, all their cameras will be unable to connect.

User Management tool

Unix and AWS User creation and configuration are managed by stationMaint.exe which is a compiled python programme that uses native AWS and Unix libraries to execute the required commands.

Setup

Reminder: To use the app you will have to be permissioned on our servers by one of the Admin team.

  • Download the latest setup package from here and install it.

When you first run the app you will be prompted to provide the credentials we gave you to connect to our server.

Linux or MacOS Support

In principle the python code should work on Linux-like OSes. You'd need to copy the python file, icon file, sample ini file, requirements file and this README to a folder of your choosing then create a python virtual environment, activate it and install the requirements.

Adding a new camera

To add a new camera the camera operator must supply the following:

  • RMS ID eg UK12345
  • town or village eg Toytown
  • approx pointing direction eg SW
  • the SSH public key generated by ukmon-pitools.
  • Human name and email address of the operator. We require this so we can contact you in case of issues.

RMS ID, pointing direction and SSH key are unique to each camera. Other values will generally be shared by other cameras at the same location.

Once the information has been gathered, select Camera/Add and fill in the boxes. Note that the boxes are part-prepopulated with values from whatever row your cursor was on, so that if you're adding another camera at an existing location, you can save a bit of typing by first selecting the existing camera.

Amending a camera

To change location or pointing direction follow the process to move a camera.
All other values can be amended by selecting the line and updating the values.

Moving a camera

IMPORTANT NOTE: the camera owner should NOT make any changes - the changes will automatically flow down to their station.

To move a camera to a new location, select the row containing the camera then select Camera/Move. After you fill in any new information, a new unix and AWS user will be created and the configuration files for the old user will be updated. Finally, mark the old camera as Disabled as explainedi in the next section.

Disabling and Re-enabling a camera

To disable a camera, change the Active column from 1 to the last active date in YYYYMMDD format eg 20220715. This removes the camera from current reporting and disables the unix user, but retains the details for any historical reporting. A camera can be reactivated by setting the Active column back to 1.

Disabling a location

Disable all cameras at that location, and then update the AWS key. We never remove a location as there would be a risk of losing historic data.

Other Functionality

The tool also provides some other functionality:

  • Owners menu - search for station details and owner details.
  • Camera menu
    • Check camera - this does a quick sanity test to see when the camera last connected to our server.
    • Download the current plateper for a camera and upload a new one. The new plate will be automaticlly installed on the camera the following morning.
    • Update the SSH key - if a user sends a new SSH key, we need to add it to the server.
    • Update the AWS key - force an update of the location's AWS key. Note that keys are autorolled every 60 days so this would only be needed if the key had been compromised.

Copyright

All code Copyright (C) 2018-2023 Mark McIntyre

About

A tool to manage cameras in the UK Meteor Network

Resources

License

Stars

Watchers

Forks

Packages

No packages published