Accounts Setup
Overview
This guide covers all required credentials and configurations needed for development. These credentials enable access to:
-
VA Nexus Repository (dependencies)
-
BitBucket Repository (code)
-
Docker Trust Registry (container images)
-
Maven builds and deployments
Early Onboarding Accounts
-
Access your Apothesource Gmail account (the initial invite is sent to your personal email).
-
Complete all required onboarding documents. These are sent via email prior to your start date. For any questions, reference the VA Document Process Details Document (attached to the email). Once submitted, processing generally takes about a week.
-
Contact Amy Calvert with any questions, unless otherwise specified below.
Once your Gmail account is active, you will be granted access to the following tools:
- Slack
-
Slack is used for general communication. A description of the channels you have been invited to will be sent to you once you have joined.
- Quickbooks Time / TSheets
-
Quickbooks Time / TSheets hosts time-tracking. Log actual hours and ask for pre-approval for more than 40 hours a week.
Do not place any comments in the notes section, as these have to be manually deleted when turned into accounting.
- Google Calendar
-
You will receive an invite during onboarding for:
-
Apothesource Leave Calendar: tracks PTO (vacation, appointments, etc.)
-
Leave calendar (for CKM: NGSS/CKM Calendar)
-
- Google Drive
-
-
Your personal folder will be shared with you prior to your first day. This is where you store any onboarding documents required during the process.
-
Miscellaneous folders (e.g., Employee Resources, etc.).
-
Later Onboarding Accounts
These accounts take time to set up because they depend on having a PIV and having the necessary tickets completed.
- VA Nexus DTR
-
VA Nexus DTR (see wiki page) hosts the sandbox environment and DTR (Docker Trusted Registry). The password for this site is used in your
settings.xmlfile and is your sandbox Jenkins credentials.For account issues, contact Jonathan Williams.
- MAE (Mobile Application Environment)
-
The MAE on the VA network hosts:
-
Staging (aka SQA) environments
-
Production environments
-
Mobile Apps Wiki, including the NGSS/CKM wiki space
-
VA access requires a valid PIV card and background check. To change the displayed name or email for any of these services, use the MAE Crowd Console link.
-
Sandbox
The Sandbox Jenkins server builds images from the code in MAE Stash and pushes the images to the VA Nexus DTR (dtr.mapsandbox.net). The Sandbox Kubernetes cluster also hosts test environments. Sandbox is an ephemeral environment used only for building images — no services are left running and no integration happens in this environment.
You can access the dashboard using the kubeconfig file or using the URLs below. kubectl can also be
used with a kubeconfig. The example below grants developer-level access with the
public and
private keys. Admin-level access
is also available.
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURvRENDQW9pZ0F3SUJBZ0lVUkt3OWFrOHNlZVJXRlBRMkR4MlcrbnFwRHV3d0RRWUpLb1pJaHZjTkFRRUwKQlFBd2FERUxNQWtHQTFVRUJoTUNWVk14RHpBTkJnTlZCQWdUQms5eVpXZHZiakVSTUE4R0ExVUVCeE1JVUc5eQpkR3hoYm1ReEV6QVJCZ05WQkFvVENrdDFZbVZ5Ym1WMFpYTXhDekFKQmdOVkJBc1RBa05CTVJNd0VRWURWUVFECkV3cExkV0psY201bGRHVnpNQjRYRFRFNE1USXhOREUzTWpnd01Gb1hEVEl6TVRJeE16RTNNamd3TUZvd2FERUwKTUFrR0ExVUVCaE1DVlZNeER6QU5CZ05WQkFnVEJrOXlaV2R2YmpFUk1BOEdBMVVFQnhNSVVHOXlkR3hoYm1ReApFekFSQmdOVkJBb1RDa3QxWW1WeWJtVjBaWE14Q3pBSkJnTlZCQXNUQWtOQk1STXdFUVlEVlFRREV3cExkV0psCmNtNWxkR1Z6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4YUFPRUlMUld4Y2wKTk9XWXBNTkoydzZLb293cEtiWjhsc3ZDSXFtZ3FXVUZkRHY0cWZDMTJTYTZUck52ZU5FSHlza1h1OExSUjdjTAprbFhQdnFUWW1RQlFFMWwwcGhicHhnLy9jMkk4SUU1OUlkUjRhN3ZHOWtmakRMeCswK3Axc0xQblBZcVNYVUNxCk14cnJBdzNHK0dQTGV2T1pKV2szM3VEZm9nQk52bEZqd2FQZjNlWEFZWjl2V3R6VC9jc1c2WTVSdzkxbCtFL0cKQU1VK0RWaWkvUlE3VjZSVXhpSG1kOVc5TFNjNnhaNFRrUWNUZnlJaEJHbHpSbUlhT3lpWm9xNy9FRWlSaFpZNwp0L0tkN2lnUklReXhneGFQU0s3ckNoTlc0bDByYk4rNXM0YldvR2JlZ1RtdjFzdjBhM01GZ0VvL0dUZS9hRVR2CmVhU2ltSG5WQVFJREFRQUJvMEl3UURBT0JnTlZIUThCQWY4RUJBTUNBUVl3RHdZRFZSMFRBUUgvQkFVd0F3RUIKL3pBZEJnTlZIUTRFRmdRVU5HdHRkNlhSUGJoQnM0TXZPU0twNjI3RzNrMHdEUVlKS29aSWh2Y05BUUVMQlFBRApnZ0VCQUFwQWpjRXprUFhUNkx5NDlwNU5BZGhGM2hnc1R1UnBlTW9Ka0NRRXdhR3d2dHVuK3F2NkdYTmVIa3E2CjBhVGFLRjJpQ0g2alFtZXpSc2ovQVppSFJJWGUwb2Jhb2RINVpzcnlvOTBvNGtZUEFzOUlzUEwxOWxaNUpwOC8KRE5EMnFrKzRRRk1McU8yZ0QrVlU5U3dhWmJQbFdaN2ZmaFNGQk1ieDhLWHR4SVBTVHh5MjJ5ZVRCUFZoeW1DOQpmb2lxcUpxQnJMUytVNEtKeFpSK3RsZEpHMko5aUdDVkZEK09pRG5qSzg4bmU2ZXdwSHZNMXZYeS9Zc2gzMlJCCmxjcTdzZ0ZxU2xWazltME9zUmg2RXlWam8vVkIrTDRFOG00U1A1eHF2Mm14M0s2SzdNMVFEMFlRSWsxbzZYMUwKRzI1QkNQb2FOVkk5dGRTK0NhRGY2bW15TUxnPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
#server: https://sandbox-2-kube-api-588901878.us-gov-west-1.elb.amazonaws.com:6443
server: https://sandbox-kube-api-1804029434.us-gov-west-1.elb.amazonaws.com:6443
name: map-sandbox
contexts:
- context:
cluster: map-sandbox
user: map-sandbox
name: map-sandbox
current-context: map-sandbox
kind: Config
preferences: {}
users:
- name: map-sandbox
user:
client-certificate: /path/to/.ssh/developer.pem
client-key: /path/to/.ssh/developer-key.pem
kubectl --kubeconfig=sandboxcfg proxy --port=8801 & sleep 1;
open 'http://localhost:8801/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/#!/workload?namespace=ckm';
|
Sandbox, like all environments, switches in blue-green deployments. The API endpoint switches between the two listed servers, depending on the blue-green state. |
If using admin-idp, the test user is mockuser01 / pass.
The Consul changes to sandbox are managed using git2consul.
Sandbox URLs
-
Admin IDP Web: https://kubernetes.mapsandbox.net/admin-idp-web/v3/
Once logged in, the Admin Sites page currently has links to the following:
-
Kubernetes Dashboard: https://kubernetes.mapsandbox.net/dashboard/
-
Sandbox Jenkins: https://jenkins.mapsandbox.net/
-
Nexus Repository: https://nexus.mapsandbox.net/ — the Nexus UI for dtr.mapsandbox.net
-
SonarQube: https://sonarqube.mapsandbox.net/sonarqube/
-
If you are using the latest version of the settings.xml template, you should be able to run
mvn -Psonar sonar:sonar -DskipTeststo run a Sonar scan locally against the Sandbox Sonar instance.
-
-
-
For more information, see using admin-idp-web
VA Network Remote Access
You must use a valid PIV Card to access the VA network for SQA and PROD environments. Any
.med.va.gov or .apps.va.gov sites are behind the firewall. Temporary PIV exemptions may also
be granted.
You can access the VA network two ways — via Citrix Access Gateway (CAG) or Azure Virtual Desktop (AVD):
Once you have configured your network access, keep a copy of the SRE bookmarks file in your shared drive. This will never be deleted, whereas every other setting you change may disappear due to the nature of the remote desktop environment. This file contains links to the SRE tools, accessed through AdminIDP for both the SQA and PROD environments. It also has a link to the VA PPG Slack; logging into this can be useful to copy/paste long stack traces so you can see them on your local machine.
SQA / Staging
The Staging Jenkins server is accessible only on the VA network. This environment is where developers for other teams often start integrating with our services.
The admin-idp URLs in SQA can be used with test
accounts or your MAP AD Credentials. MAP AD credentials are usually in the format VACO<name>.
AppDynamics in SQA: our SQA goes to AppD Preprod. If you are accessing AppD, you need to complete the SSOi process in PreProd to create your account. This gives your PIV access to PreProd, where AppD lives.
|
Be sure to select the correct PIV cert when logging into AppD. Google Chrome may not display an option to select your cert. |
SQA URLs:
-
Admin IDP Web: https://staff.apps-staging.va.gov/admin-idp-web/v3/
Logging in here automatically redirects to an Admin Sites page with most or all of the links below.
-
https://staff.apps-staging.va.gov/admin-idp-web/v3/?redirect_uri=/kibana/
-
https://staff.apps-staging.va.gov/admin-idp-web/v3/?redirect_uri=/k8/
-
https://staff.apps-staging.va.gov/admin-idp-web/v3/?redirect_uri=/sba/v1/
-
https://staff.apps-staging.va.gov/admin-idp-web/v3/?redirect_uri=/kiali
-
https://utility.apps.va.gov/jenkins/login?from=%2Fjenkins%2F
-
URL for initiating user login in SQA: https://veteran.apps-staging.va.gov/var/v4/
-
JWT Decoder: https://jwt.va.gov/
PROD / Production
The production environment is more restrictive than staging, but some dev tools are visible:
If you cannot access these URLs, create an ECCB ticket to request them.
CodeRepo, JIRA, and Wiki
Configuring Macbook Pro and Touch ID as a Two-Factor Hardware Device
Currently, this only works with Google Chrome or Mozilla Firefox. It should also work with other Chromium-based browsers, although it has only been tested with Brave. Unfortunately, this does not work with Safari.
The following steps must be done separately for CodeRepo, JIRA, and the Wiki. These steps also assume you have set up Touch ID on your laptop with your fingerprint.
Setup steps (this example is for CodeRepo):
-
Log in to CodeRepo with your username and password: https://coderepo.mobilehealth.va.gov/login
-
Click on your profile at the top right and select "2FA Configuration", or go to https://coderepo.mobilehealth.va.gov/plugins/servlet/authplugin/tfaconfiguration
-
Under "Register U2F Hardware Security Keys", click "Add U2F Device".
-
Enter a device name, e.g. Apothesource MBPro.
-
When prompted to enter a passkey for coderepo.mobilehealth.va.gov, click "Continue".
-
At the "Use Password" (your laptop password) or Touch ID prompt, place your finger on Touch ID.
-
Your laptop should now be added as a hardware device.
|
You may instead use a hardware security key, such as a Thetis Pro FIDO2 Security Key, that you push a button on to authenticate. Follow similar steps as above but push the button on the key. This works well for anyone who keeps their laptop closed/docked. |
Test it out:
-
The next time you log in (and after the 2-hour expiration), you’ll be prompted for Two-Factor Authentication.
-
Click "Remember Me" and hit submit.
-
You’ll be prompted again by your browser to "Use Password" or use Touch ID. Place your finger on Touch ID.
-
You should now be logged in using your laptop + Touch ID as your Two-Factor Authentication method.
Repeat these steps for your accounts with JIRA and the Wiki.
Accounts Used for Development
| Amy Calvert will request access for your VA Crowd Account once you have received your PIV. |
A minimum of two accounts are required for a working local development environment.
| Account | URL | Description | ENV Variable | POC |
|---|---|---|---|---|
VA Crowd Account |
https://crowd.mobilehealth.va.gov/crowd/console/login.action |
Account for VA MAE internal resources |
|
Ryan or Michael (need PIV first) |
VA Nexus DTR |
dtr.mapsandbox.net |
Sandbox DTR (Docker Trusted Registry) |
|
Amy (check your spam folder) |
The VA now requires Bitbucket, Confluence, and JIRA access to have two-factor authentication (2FA) enabled.
-
Follow the instructions here to set it up, and follow the Bitbucket-specific instructions to generate a personal access token used for Git or other tools: https://wiki.mobilehealth.va.gov/display/MACMCPO/2+Factor+Authentication+-+Bitbucket+Personal+Access+Token+Use.
-
The personal access token for Bitbucket must be set as an environment variable in addition to the Crowd user password. The convention for this variable name is
VA_BITBT_PWD, to align with the Jenkins CI environment variable name for Bitbucket credentials. -
If you are a new hire without credentials of your own, use the tokens provided by the onboarding team.
-
Follow the guide for setting up Token and Environment Configuration (should be done after Development Environment Setup).
-
Copy the Maven configuration to your
~/.m2/settings.xmland either open a new terminal window or re-source your shell configuration usingsource ~/.zshrcto refresh the environment variables.
Encrypting Passwords
|
Password encryption is not necessary if you generate and use tokens for all of your development accounts. |
If you decide to use your account password values, then each account password environment variable must be properly encrypted.
|
If you need to determine escape characters for your password, use the
|