Skip to content

agrc/api-client

Repository files navigation

UGRC API Client

deploy

The Utah Geospatial Resource Center (UGRC) is the State of Utah’s map technology coordination office. The UGRC creates, maintains, and stores geospatial data in the State Geographic Information Database (SGID), a one-stop shop to hundreds of data layers developed, aggregated, or acquired by state government. UGRC’s Web API is an http-enabled service for accessing this valuable geospatial data.

From querying any data layer in the SGID to geocoding addresses against the most accurate statewide roads dataset, the application of the API is endless. The API also powers UGRC’s widgets, toolboxes, and add-ins, which can help you navigate the sea of data in the SGID.

The UGRC API Client is an app to help make geocoding addresses simple. This app allows the user to use the UGRC API without any licensed software or programming knowledge; Drag and drop a file and then click start.

Check out our introductory blog post and our getting started video.

Development Specifics

Certificates

An apple developer certificate is required to sign the application for distribution.

  1. Using keychain's certificate assistant, request a certificate from a certificate authority.
    • Leave CA Email address empty
    • Request is Saved to disk
  2. Provide the certificate request to Certificates, Identifiers & Profiles to create a Developer ID Certificate
    • Only the account holder of the Developer Group can create this type of certificate.
  3. Import the certificate to keychain and then export it as a p12 file for the deployment pipeline.
    • Store the password required for exporting for the GitHub Actions secrets.

Deployment pipeline set up

  1. Create a prod and dev GitHub repo environment.

  2. Store the password and the p12 certificate as GitHub Action secrets in the environment:

    • gh secret set APPLE_CERTIFICATE -b$(base64 -i ~/certificate.p12) --env=prod
    • gh secret set APPLE_CERTIFICATE_PASSWORD -b<password> --env=prod
    • gh secret set WINDOWS_CERTIFICATE_PASSWORD -b<password> --env=prod
  3. Add the rest of the environment variables as secrets:

    • APPLE_IDENTITY: the name of the developer id certificate name as it appears in keychain
    • APPLE_TEAM_ID: the team id to notarize under
    • APPLE_USER_ID: the username of your apple developer account
    • APPLE_PASSWORD: the app-specific password (not your Apple ID password)

Deploying a new version

GitHub Actions will create and update a draft release with every merged pull request. When a release is desired, publish the draft release. Another GitHub action will sign the binaries and upload them to the release assets. The API Clients will silently download the update and the installation will occur on the next restart of the app.

Uploading Debug Symbols to Sentry

Each time Electron is upgraded, new debug symbols need to be uploaded to the Sentry servers. This can be done by creating a sentry.properties file and then running: npm run upload-debug-symbols.