diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a4e783c83..27fe2f34c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ # See https://help.github.com/articles/about-codeowners/ -# An IBI Group OTP/Data Tools member is required to approve PR merges +# An Arcadis OTP/TRANSIT-data-tools member is required to approve PR merges * @ibi-group/otp-data-tools diff --git a/docs/dev/deployment.md b/docs/dev/deployment.md index e65844e94..7a2376a16 100644 --- a/docs/dev/deployment.md +++ b/docs/dev/deployment.md @@ -143,7 +143,7 @@ AUTH0_CLIENT_ID: your-auth0-client-id Update the following properties in `datatools-server` and `env.yml` to reflect the secure Auth0 application settings. -**Note:** For older Auth0 accounts or tenants, utilizing the Auth0 secret token with the HS256 algorithm is possible. However, newer Auth0 tenants will need to specify the absolute path of their `.pem` file in the `AUTH0_PUBLIC_KEY` property. This public key only needs to be downloaded one time for your Auth0 tenant at `https://[your_domain].auth0.com/pem`. +**Note:** For older Auth0 accounts or tenants, it is possible to use the Auth0 secret token with the HS256 algorithm is possible. However, newer Auth0 tenants will need to specify the absolute path of their `.pem` file in the `AUTH0_PUBLIC_KEY` property. This public key only needs to be downloaded one time for your Auth0 tenant at `https://[your_domain].auth0.com/pem`. ```yaml AUTH0_SECRET: your-auth0-client-secret # used for pre-September 2017 Auth0 accounts @@ -166,7 +166,7 @@ To allow for the creation, deletion and editing of users you must generate a tok If using OIDC-conformant clients/APIs (which appears to be mandatory for new Auth0 tenants), you must set up a custom Auth0 action to add `app_metadata` and `user_metadata` to the user's id token (Note: this is not the default for older, "legacy" Auth0 accounts). -To set up the action, go to Actions > Flows > Login, then under Add action > Custom, click on `Create Action`. Fill in the action name and pick a recommended runtime, and click on `Create`. Modify the function `onExecutePostLogin` as follows, then click Save Draft: +To set up the action, go to Actions > Flows > Login, then under Add action > Custom, click `Create Action`. Fill in the action name and pick a recommended runtime, and click `Create`. Modify the function `onExecutePostLogin` as follows, then click `Save Draft`: ```js exports.onExecutePostLogin = async (event, api) => { @@ -178,10 +178,10 @@ exports.onExecutePostLogin = async (event, api) => { }; ``` If you want the rule to apply only to specific clients, you can retain the conditional block that checks the `context.clientID` value. Otherwise, you can remove this conditional block if it's not needed. -This rule will ensure that app_metadata and user_metadata are included in the user's token, as required for OIDC-conformant clients/APIs in new Auth0 tenants. +This rule will ensure that `app_metadata` and `user_metadata` are included in the user's token, as required for OIDC-conformant clients/APIs in new Auth0 tenants. -You can test the action with mock token data using the Test tab. Once ready, click Deploy, then click Back to Flow. -In the diagram, drag the action between the Start and Complete steps, then click Apply. +You can test the action with mock token data using the Test tab. Once ready, click `Deploy`, then click `Back to Flow`. +In the diagram, drag the action between the Start and Complete steps, then click `Apply`. You can test that the action is correctly executed by logging-in to datatools with an admin user and checking that the Admin functionality is available. diff --git a/docs/dev/development.md b/docs/dev/development.md index 7a9dec6b3..d124e9722 100644 --- a/docs/dev/development.md +++ b/docs/dev/development.md @@ -1,5 +1,5 @@ # Development -These instructions should allow you to get Data Tools / Editor / Catalogue up and running within an integrated development environment, allowing you to work on the code and debug it. We all use IntelliJ so instructions will currently be only for that environment. +These instructions should allow you to get TRANSIT-data-tools / Editor / Catalogue up and running within an integrated development environment, allowing you to work on the code and debug it. We all use IntelliJ so instructions will currently be only for that environment. ## Components The system is made up of two different projects: diff --git a/docs/index.md b/docs/index.md index a50a45e35..1ae3866a8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ -# IBI Transit Data Tools (TRANSIT-data-tools) +# Arcadis TRANSIT-data-tools -The IBI Transit Data Tools suite provides web-based tools for creating, managing, evaluating, and publishing transit data, specifically data stored in the General Transit Feed Specification (GTFS) format. +The Arcadis TRANSIT-data-tools suite provides web-based tools for creating, managing, evaluating, and publishing transit data, specifically data stored in the General Transit Feed Specification (GTFS) format. ![feed-profile](https://datatools-builds.s3.amazonaws.com/docs/intro/feed-profile.png) -To get started, click on a topic from the table of contents on the left pane. +To get started, select a topic from the table of contents on the left pane. diff --git a/docs/user/add-deployment-server.md b/docs/user/add-deployment-server.md index bf89519ca..8e6bbfe8a 100644 --- a/docs/user/add-deployment-server.md +++ b/docs/user/add-deployment-server.md @@ -1,29 +1,29 @@ -# Adding an OTP Deployment Server in Data Tools +# Adding an OTP Deployment Server in TRANSIT-data-tools Assumptions: -* [X] You are an admin for Data Tools. +* [X] You are an admin for TRANSIT-data-tools. * [X] You have [set up OTP UI and backend servers on AWS](./setting-up-aws-servers.md). * [X] You have a private key file (usually ends in `.pem`) to connect to that AWS environment and EC2 servers via ssh. -From `Administration > Deployment servers`, click on `+ Add Server`. +From `Administration > Deployment servers`, click `+ Add Server`. ## General Server Properties | Property | Description | |----------|-------------| | Name | A descriptive display name for the server. | -| Public URL | The URL where the public can access the Data Tools UI, e.g. `https://otp-mod-ui.ibi-transit.com`. It is typically the CNAME of the CloudFront mirror of the AWS S3 bucket you created or picked for this deployment. | +| Public URL | The URL where the public can access the TRANSIT-data-tools UI, e.g. `https://otp-mod-ui.ibi-transit.com`. It is typically the CNAME of the CloudFront mirror of the AWS S3 bucket you created or picked for this deployment. | | Internal URLs (Optional) | The URL(s) based on the UI server IP address(es). | -| S3 bucket name | The name of the AWS S3 bucket you created or picked for this deployment, where Data Tools will share files with the OTP servers. | +| S3 bucket name | The name of the AWS S3 bucket you created or picked for this deployment, where TRANSIT-data-tools will share files with the OTP servers. | | Admin access only? | Check this option to only allow logins from Data Tool admins. | | Project specific? (Optional) | Select a project to only allow the GTFS feeds of that project (e.g. within a region) to be deployed to this server. Leave blank to remove the project restriction. | -|AWS Role|The IAM role that the Data Tools application must assume in order to access AWS resources (e.g., writing to S3 buckets or starting EC2 machines). See [Delegate Third Party Access](../setting-up-aws-servers#delegate-third-party-account-access) for more info.| +|AWS Role|The IAM role that the TRANSIT-data-tools application must assume in order to access AWS resources (e.g., writing to S3 buckets or starting EC2 machines). See [Delegate Third Party Access](../setting-up-aws-servers#delegate-third-party-account-access) for more info.| | Use elastic load balancer (ELB) | **We recommend using an elastic load balancer (ELB)**. Behind the scenes, a new server is initialized and added to the load balancer, and old servers are removed and destroyed without interruption to the user.

The load balancer also allows instantiating multiple OTP servers on large deployments. (You can start, add, or remove more than one OTP server to the load balancer.) ## Load Balancer Properties -(Applies to Data Tools versions prior to October 2019.) +(Applies to TRANSIT-data-tools versions prior to October 2019.) | Property | Description | |----------|-------------| diff --git a/docs/user/deploying-feeds.md b/docs/user/deploying-feeds.md index 8c176710c..4b51976a5 100644 --- a/docs/user/deploying-feeds.md +++ b/docs/user/deploying-feeds.md @@ -4,7 +4,7 @@ Assumptions: * [X] You have [loaded a GTFS feed into a project](./managing-projects-feeds.md). * [X] You have a deployment server available [(example: AWS)](./add-deployment-server.md). -* [X] [An osm-lib server has been set up](https://github.com/conveyal/osm-lib) for Data Tools to fetch Open Streets Map (OSM) data. +* [X] [An osm-lib server has been set up](https://github.com/conveyal/osm-lib) for TRANSIT-data-tools to fetch Open Streets Map (OSM) data. ## Executing a deployment @@ -32,7 +32,7 @@ The pane also has an option to upload Custom POI CSV files. These files contain ## Watching deployments take place -After you click on `Deploy`, you can watch the deployment progress from the right-hand panel: +After you click `Deploy`, you can watch the deployment progress from the right-hand panel: 1. The data bundle is uploaded to S3. 2. One EC2 server is commissioned. diff --git a/docs/user/editor/patterns.md b/docs/user/editor/patterns.md index 2eae50029..712a082d6 100644 --- a/docs/user/editor/patterns.md +++ b/docs/user/editor/patterns.md @@ -1,21 +1,21 @@ # Trip Patterns -### Patterns +## Patterns Patterns refer to the recurring schedules and frequencies of transit trips. They can be thought of as a template for a particular route, indicating the days of the week and times of day that trips will be available, as well as the frequency of service during those periods. ## Editing/Creating Trip Patterns -To begin editing trip patterns, first click the `Routes` tab (outlined in red). Then, select or create a route Click the `Trip patterns` tab, and start editing any relevant fields including: +To begin editing trip patterns, first click the `Routes` tab (outlined in red). Then, click or create a route Click the `Trip patterns` tab, and start editing any relevant fields including: -- **Name:** the name of the pattern within the route, for example: "27 stops from Willowridge Rd at Richgrove Dr to Kipling Station (268 trips)" -- **Type:** specify whether the pattern uses timetables or schedules. For more information on the differences between schedules and timetables, consult [Schedules](schedules.md) -- **Direction:** specify whether the pattern is inbound or outbound. This corresponds to the `direction_id` field in GTFS. All trips associated with this pattern will be assigned the direction provided here. +- **Name:** The name of the pattern within the route is initially set by default to a designation like "27 stops from Willowridge Rd at Richgrove Dr to Kipling Station (13 trips)." However, it can be customized to a more meaningful label if desired. +- **Type:** Specifies whether the pattern uses timetables or schedules. For more information on the differences between schedules and timetables, consult [Schedules](schedules.md). +- **Direction:** Specifies whether the pattern is inbound or outbound. This corresponds to the `direction_id` field in GTFS. All trips associated with this pattern will be assigned the direction provided here. - **Editing schedules:** Click `Edit schedules` to begin creating or editing trips/frequencies for a trip pattern. You will be redirected to the Schedule Editor. For more information on creating schedules for a pattern, see [Trips](schedules). -To add a pattern, select the `+ New pattern` button (highlighted in yellow). +To add a pattern, click the `+ New pattern` button (highlighted in yellow). ![edit-pattern](https://datatools-builds.s3.amazonaws.com/docs/patterns/edit-pattern.png) @@ -27,7 +27,7 @@ The pattern toolbar contains several helpful buttons to help with the pattern ed - **Zoom to pattern extents:** Clicking the search (🔍) button (in the top toolbar) with a pattern selected adjusts the map view to show the entire pattern you are editing. - **Duplicating pattern:** -Used to create a similar, but different trip pattern. When duplicating of the active pattern, it's name becomes `[Pattern name] copy`. +Used to create a similar, but different trip pattern. When duplicating of the active pattern, its name becomes `[Pattern name] copy`. - **Reverse pattern:** To reverse the sequence of stops for a pattern, click the button with opposing arrows. Note: this is a destructive action and should usually only be used after duplicating a pattern. - **Delete pattern:** Deletes the active pattern. Note: deleted patterns cannot be recovered. @@ -35,9 +35,9 @@ To reverse the sequence of stops for a pattern, click the button with opposing a ## Stop sequence ### Adding stops -To start creating a pattern, click on the `+ Add stop` button. From here, zoom in on the map and add stops by clicking on them and clicking the green plus symbol: `+`. +To start creating a pattern, click the `+ Add stop` button. From here, zoom in on the map and add stops by clicking on them and clicking the green plus symbol: `+`. -Alternatively, scroll to the end of the stop sequence and select `+ Add stop by name` which will provide a dropdown of options to select from. From there, you'll have the option to add the stop to the end or to the beginning of the pattern. +Alternatively, scroll to the end of the stop sequence and click `+ Add stop by name` which will provide a dropdown of options to click from. From there, you'll have the option to add the stop to the end or to the beginning of the pattern. @@ -135,7 +135,7 @@ There are a few different editing modes that allow for the quick and easy creati - **Add stop at interval:** At each click on the map, stops are generated along the auto-generated pattern extended to the map click at the user-defined spacing interval from 100 to 2000 meters. - **Add stop at intersection:** (experimental, not available in all regions) - at each click on the map, stops are generated along the auto-generated pattern extended to the map click according to the user-defined parameters: - **Offset from intersection:** Distance the stop should be placed from the intersection - - **Before/after:** Whether stop should be placed before or after intersection + - **Before/after:** Whether the stop should be placed before or after intersection - **Every *n* intersections:** The number of intersections at which each new stop should be placed **Note**: the last three advanced editing modes should only be used when creating routes in new areas where stops don't already exist. diff --git a/docs/user/editor/schedules.md b/docs/user/editor/schedules.md index dd03ea954..d48aa1e70 100644 --- a/docs/user/editor/schedules.md +++ b/docs/user/editor/schedules.md @@ -17,7 +17,7 @@ Timetable-based routes follow a fixed schedule in which the start time, end time Unlike the fixed nature of timetable-based trips, frequency-based trips run at regular intervals, with a fixed amount of time between consecutive trips. Frequency-based service offers more flexibility and easier adjustment to changing demand. Visit [GTFS specification frequency reference](https://gtfs.org/schedule/reference/#frequenciestxt) for more information. ## Editing/Creating Calendars -To start editing a calendar, click on `+ Create first calendar` if this is the first calendar being added or click on an existing calendar to begin adding/editing its properties which include: +To start editing a calendar, click `+ Create first calendar` if this is the first calendar being added or click an existing calendar to begin adding/editing its properties which include: - **Service ID:** Unique ID for the calendar - **Description:** Optional description for calendar (defaults to initial days of week specified) @@ -38,7 +38,7 @@ To start editing a calendar, click on `+ Create first calendar` if this is the f
## Editing/Creating Exceptions -To start editing an exception, select any existing exception (if applicable) on the left pane. You will be able to edit properties such as exception name, customize the exception type, select calendars to add, remove or swap and the time range the exception is applied to. To make a new exception, click on `New exception` on the top left of the pane (highlighted in yellow). +To start editing an exception, click any existing exception (if applicable) on the left pane. You will be able to edit properties such as exception name, customize the exception type, click calendars to add, remove or swap and the time range the exception is applied to. To make a new exception, click `New exception` on the top left of the pane (highlighted in yellow). @@ -72,7 +72,7 @@ There are a number of built-in exception types (or available schedules to run) t ## Editing/Creating Timetables To begin editing a timetable, click the `Edit schedules` button in the top left corner of the screen (highlighed in yellow). -(Alternatively, if you are in the `Routes` tab (see [Routes](/user/editor/routes/)), select an existing route or route click the `New route` button --> select the `Trip patterns` tab --> select a pattern --> select `Use timetables` in the `Type:` dropdown --> select the `Edit schedules` button) +(Alternatively, if you are in the `Routes` tab (see [Routes](/user/editor/routes/)), click an existing route or route click the `New route` button --> click the `Trip patterns` tab --> select a pattern --> click `Use timetables` in the `Type:` dropdown --> click the `Edit schedules` button) @@ -146,7 +146,7 @@ The following video demonstrates the creation and editing of timetables describe
## Editing/Creating Frequencies -To edit/create frequencies, navigate to the `Routes` tab (see [Routes](/user/editor/routes/)), select an existing route or route click the `New route` button --> select the `Trip patterns` tab --> select a pattern --> select `Use frequencies` in the 'Type:` dropdown --> select the `Edit schedules` button +To edit/create frequencies, navigate to the `Routes` tab (see [Routes](/user/editor/routes/)), click an existing route or route click the `New route` button --> click the `Trip patterns` tab --> click a pattern --> click `Use frequencies` in the 'Type:` dropdown --> click the `Edit schedules` button Frequency details include: diff --git a/docs/user/managing-projects-feeds.md b/docs/user/managing-projects-feeds.md index 515e01c39..415af579f 100644 --- a/docs/user/managing-projects-feeds.md +++ b/docs/user/managing-projects-feeds.md @@ -20,7 +20,7 @@ To the left of the Project Settings panel is the **Feed Sources** panel. Feed So ![create-project](https://datatools-builds.s3.amazonaws.com/docs/intro/project-feed-sources.png) -Feed Sources are created from a Project's main profile page. Click the `+New` button from the `Actions` dropdown to create a new feed; Specify a name and optional feed source URL and click on `Save`. You may also adjust whether to automatically fetch the feed from the source URL and to make the feed deployable. +Feed Sources are created from a Project's main profile page. Click the `+New` button from the `Actions` dropdown to create a new feed; Specify a name and optional feed source URL and click `Save`. You may also adjust whether to automatically fetch the feed from the source URL and to make the feed deployable. ![create-project](https://datatools-builds.s3.amazonaws.com/docs/intro/create-feed-source.png) @@ -28,7 +28,7 @@ Feed Sources are created from a Project's main profile page. Click the `+New` bu After a Feed Source has been created, it will appear in the Project's table of Feed Sources. From this table, a basic summary of information for the feed is presented (including if the latest version has expired and how many validation issues it has). -To access the Feed Source Profile for this feed, click on its name. +To access the Feed Source Profile for this feed, click its name. ![create-project](https://datatools-builds.s3.amazonaws.com/docs/intro/feed-profile.png) @@ -50,21 +50,21 @@ At the top of the page is a set of tabs, which include: Feed Versions are created from the main Feed Source profile page. There are three methods for creating new versions: -1. **Manually Upload a File**: Select `Upload` from the `+ Create new version` dropdown to select a GTFS file from your local machine. +1. **Manually Upload a File**: Click `Upload` from the `+ Create new version` dropdown to click a GTFS file from your local machine. -2. **Fetch From A Remote URL**: Select `Fetch` from the `+ Create new version` dropdown. **Note:** to fetch a new version, the "Feed source fetch URL" property must be set to a valid GTFS URL under `Feed Source > Settings`. +2. **Fetch From A Remote URL**: Click `Fetch` from the `+ Create new version` dropdown. **Note:** to fetch a new version, the "Feed source fetch URL" property must be set to a valid GTFS URL under `Feed Source > Settings`. -3. **Import From the GTFS Editor**: Select `From snapshot` from the `+ Create new version` dropdown. The list of snapshots should now be visible showing any available snapshots of the feed in the Editor. Select the desired snapshot by clicking the "Publish" button to publish the snapshot as a new version. +3. **Import From the GTFS Editor**: Click `From snapshot` from the `+ Create new version` dropdown. The list of snapshots should now be visible showing any available snapshots of the feed in the Editor. Select the desired snapshot by clicking the "Publish" button to publish the snapshot as a new version. -4. **Service Period Merge** (certain Data Tools configurations only): If a Feed Source has two or more Feed Versions, a new Feed Version can be created by merging two versions representing a transit agency's service over different time periods. While viewing a particular Feed Version, click on `Merge with version` (underneath the map view) to select which past version you would like to merge with. +4. **Service Period Merge** (certain TRANSIT-data-tools configurations only): If a Feed Source has two or more Feed Versions, a new Feed Version can be created by merging two versions representing a transit agency's service over different time periods. While viewing a particular Feed Version, click `Merge with version` (underneath the map view) to click which past version you would like to merge with. -5. **Regional Merge**: For Projects that contain multiple Feed Sources across a region, it can be useful to merge multiple transit agencies together into a combined GTFS feed for the entire region. While viewing a Project's list of Feed Sources, click on `Actions > Merge all` to produce a combined GTFS file for all Feed Sources. +5. **Regional Merge**: For Projects that contain multiple Feed Sources across a region, it can be useful to merge multiple transit agencies together into a combined GTFS feed for the entire region. While viewing a Project's list of Feed Sources, click `Actions > Merge all` to produce a combined GTFS file for all Feed Sources. **Note**: when uploading or fetching a feed, and the file being uploaded or fetched is not different from the latest version, no new Feed Version will be created. ## Feed Transformations -Data Tools now support **Feed Transformations**, which can automatically apply a set of changes to each new GTFS feed loaded into the system. This feature is especially useful for applying repeatable changes to, or inserting supplementary files into, GTFS feeds that require enhancement. It serves as a critical stopgap for improving GTFS data from systems that cannot be modified, such as scheduling software with a rigid export format. The currently supported transformation types are: +TRANSIT-data-tools now supports **Feed Transformations**, which can automatically apply a set of changes to each new GTFS feed loaded into the system. This feature is especially useful for applying repeatable changes to, or inserting supplementary files into, GTFS feeds that require enhancement. It serves as a critical stopgap for improving GTFS data from systems that cannot be modified, such as scheduling software with a rigid export format. The currently supported transformation types are: 1. **Replace File From Version** - any file in an incoming GTFS (e.g., `feed_info.txt`) can be overwritten or inserted with a file extracted from a previously loaded feed version. @@ -80,9 +80,9 @@ Data Tools now support **Feed Transformations**, which can automatically apply a Follow the steps below to configure Feed Transformations for an existing Feed Source: -1. Select a Feed Source and click on `Settings > Feed Transformations`. -2. From here, click on `Add transformation` to begin creating a new set of rules for incoming GTFS feeds. Your first ruleset will automatically apply to GTFS that is fetched automatically and manually uploaded, but this can be changed for each ruleset to apply to any of the retrieval methods listed in [Creating Feed Versions](#creating-feed-versions). -3. Click on `Add step to transformation` to select a transformation type and fill in the required fields for each type. Multiple transformations can be specified and each will be applied to the incoming GTFS file in the order in which they are defined. +1. Select a Feed Source and click `Settings > Feed Transformations`. +2. From here, click `Add transformation` to begin creating a new set of rules for incoming GTFS feeds. Your first ruleset will automatically apply to GTFS that is fetched automatically and manually uploaded, but this can be changed for each ruleset to apply to any of the retrieval methods listed in [Creating Feed Versions](#creating-feed-versions). +3. Click `Add step to transformation` to click a transformation type and fill in the required fields for each type. Multiple transformations can be specified and each will be applied to the incoming GTFS file in the order in which they are defined. ![create-project](https://datatools-builds.s3.amazonaws.com/docs/intro/configure-feed-transformations.png) diff --git a/docs/user/managing-users.md b/docs/user/managing-users.md index b4a1a822c..02bea2670 100644 --- a/docs/user/managing-users.md +++ b/docs/user/managing-users.md @@ -2,18 +2,18 @@ ## Overview -User accounts in the Transit Data Tools suite are managed via Auth0, a third-party authentication service. (For details on setting up Auth0 for use with this application, please refer to the Deployment documentation.) +User accounts in the TRANSIT-data-tools suite are managed via Auth0, a third-party authentication service. (For details on setting up Auth0 for use with this application, please refer to the Deployment documentation.) Auth0 allows for access via internally defined user accounts as well as third-party identity providers (e.g. social networking sites); however, this documentation only addresses internal accounts. Internal accounts employ username-password authentication, with a user's email address serving as the unique username. ## User Permissions -The Data Tools suite uses a system of user permissions to control access to various functions within the application. +The TRANSIT-data-tools suite uses a system of user permissions to control access to various functions within the application. ### Admin users Three types of administrator-level users exist: -- **Application-level administrator**: has full access to the Data Tools suite, including access to all projects and feed sources, the ability to create new projects, and the ability to create and manage users. +- **Application-level administrator**: has full access to the TRANSIT-data-tools suite, including access to all projects and feed sources, the ability to create new projects, and the ability to create and manage users. - **Organization-level administrator**: has full access to all projects and feed sources for an organization. **Note:** this user type is only for users of non-enterprise implementations (i.e., https://gtfs.ibi-transit.com). - **Project-level administrator**: holds full access to a single project, including all project-level permissions. Is not able to create new projects or administer users. @@ -21,12 +21,12 @@ Three types of administrator-level users exist: For non-administrative users, permissions may be assigned on an individual basis by choosing `Custom`. A non-administrative user's permissions can also be set to only apply to particular feeds within a project. By default, all users with project access have read-only access for all project feeds. #### User permissions examples -1. A user may need edit privileges to only one feed source. In this case, the `Edit GTFS feeds` and the specific feed (e.g., Agency X) would be checked. +1. A user may need edit privileges to only one feed source. In this case, click `Edit GTFS feeds` and the specific feed (e.g., Agency X) would be checked. 2. Agencies may wish to grant access to users that can view basic reporting info, but should not have the ability to modify or manage anything in the application. Here, `Custom` should be selected, but no other permissions or feeds should be checked. ## Managing Users -To create or manage users, you must be logged in as either an application-level or organization-level administrator. To do so, navigate to the `Home` page and click on the `Admin` button located in the top right-hand corner. This action will grant you access to the user management console, where you will find a comprehensive list of all users within the system: +To create or manage users, you must be logged in as either an application-level or organization-level administrator. To do so, navigate to the `Home` page and click the `Admin` button located in the top right-hand corner. This action will grant you access to the user management console, where you will find a comprehensive list of all users within the system: diff --git a/docs/user/otp-deployment.md b/docs/user/otp-deployment.md index 2a255bf04..5bba202c6 100644 --- a/docs/user/otp-deployment.md +++ b/docs/user/otp-deployment.md @@ -2,19 +2,19 @@ ## Overview -This guide describes how to configure and deploy OTP servers using OTP Data Tools, and is for intermediate to advanced OTP Data Tools administrators. +This guide describes how to configure and deploy OTP servers using OTP TRANSIT-data-tools, and is for intermediate to advanced OTP TRANSIT-data-tools administrators. -The following steps outline the process for performing an OTP deployment, covering the setup and linking of OTP servers to load balancers, S3 servers to CloudFront, and the integration of these various AWS resources within Data Tools. Administrators will also find instructions on how to configure optional subdomains (i.e., public URLs) for OTP servers. +The following steps outline the process for performing an OTP deployment, covering the setup and linking of OTP servers to load balancers, S3 servers to CloudFront, and the integration of these various AWS resources within TRANSIT-data-tools. Administrators will also find instructions on how to configure optional subdomains (i.e., public URLs) for OTP servers. ## OTP Deployment Architecture -The deployment architecture diagram below depicts how OTP servers are managed by Data Tools and can be used with elastic load balancers. The user interface is deployed on Amazon S3 servers and optionally mirrored by CloudFront, a high-bandwidth content delivery mechanism. Data Tools prepares and sends a data bundle and configuration properties to initialize OTP servers. The data bundle includes a set of GTFS feeds and OpenStreetMap data. DataTools makes the request to the osm-lib server and then creates a bundle of the resulting OSM and GTFS data. Data Tools does not manage UI deployments at this time. +The deployment architecture diagram below depicts how OTP servers are managed by TRANSIT-data-tools and can be used with elastic load balancers. The user interface is deployed on Amazon S3 servers and optionally mirrored by CloudFront, a high-bandwidth content delivery mechanism. TRANSIT-data-tools prepares and sends a data bundle and configuration properties to initialize OTP servers. The data bundle includes a set of GTFS feeds and OpenStreetMap data. DataTools makes the request to the osm-lib server and then creates a bundle of the resulting OSM and GTFS data. TRANSIT-data-tools does not manage UI deployments at this time. ## Resources for Performing an OTP Deployment 1. [Setting up OTP UI and backend servers on AWS](./setting-up-aws-servers.md) -2. [Adding a deployment server from Data Tools](./add-deployment-server.md) +2. [Adding a deployment server from TRANSIT-data-tools](./add-deployment-server.md) 3. [Deploying GTFS feeds to OTP](./deploying-feeds.md) diff --git a/docs/user/setting-up-aws-servers.md b/docs/user/setting-up-aws-servers.md index 44fde8f59..e8e8a4eb0 100644 --- a/docs/user/setting-up-aws-servers.md +++ b/docs/user/setting-up-aws-servers.md @@ -4,7 +4,7 @@ This document describes how to: 1. [Create an OTP UI server (AWS S3 and CloudFront)](#ui-server-s3-bucket-and-cloudfront) 2. [Create an OTP backend load balancer (AWS EC2)](#backend-server-load-balancer) -3. [Delegate access to Data Tools for resources in a third party AWS account via an IAM role](#delegate-third-party-account-access) +3. [Delegate access to TRANSIT-data-tools for resources in a third party AWS account via an IAM role](#delegate-third-party-account-access) Assumptions for IBI-hosted deployments: @@ -19,19 +19,19 @@ The OTP user interface is delivered using a plain HTTP file server that does not ### Create an S3 Bucket 1. From [AWS S3](https://console.aws.amazon.com/s3/home), click `Create Bucket`. Each deployment uses its own bucket. -2. Specify a name (write down the name for use in Data Tools later). +2. Specify a name (write down the name for use in TRANSIT-data-tools later). 3. When specifying options, uncheck `Block All Public Access`. Do not grant additional access from the bucket's `Permissions` tab. ### Create a CloudFront instance 1. From [AWS CloudFront Home](https://console.aws.amazon.com/cloudfront/home), click `Create Distribution` [(direct link)](https://console.aws.amazon.com/cloudfront/home?#create-distribution:). -2. Select `Web Distribution`, then click `Next`. -3. Under `Origin Settings > Origin Domain Name`, select the `DNS name` of the S3 bucket you created above. +2. Click `Web Distribution`, then click `Next`. +3. Under `Origin Settings > Origin Domain Name`, click the `DNS name` of the S3 bucket you created above. 4. Under `Default Cache Behavior Settings`: - 1. Select `Redirect HTTP to HTTPS`. - 2. Select `Yes` to `Compress Objects Automatically` (this reduces download sizes by up to 60-70%). -5. Under `Distribution Settings`, select `Custom SSL certificate`, and select the `*.ibi-transit.com` certificate. + 1. Click `Redirect HTTP to HTTPS`. + 2. Click `Yes` to `Compress Objects Automatically` (this reduces download sizes by up to 60-70%). +5. Under `Distribution Settings`, click `Custom SSL certificate`, and click the `*.ibi-transit.com` certificate. 6. Under `Distribution Settings`, set the `Default Root Object` value to be `index.html`. 7. (Optional) Enter a comment to make the distribution easy to search. Leave other parameters as is, and click `Create Distribution`. 8. Open the properties of this CloudFront instance, and copy the `Domain Name` value (e.g. `abcdef0123456789.cloudfront.net`). @@ -40,7 +40,7 @@ Do not grant additional access from the bucket's `Permissions` tab. 1. Go to the [AWS hosted zone for ibi-transit.com](https://console.aws.amazon.com/route53/home#resource-record-sets:Z37ATQUY9Y96RY). (It should be under [AWS Route 53](https://console.aws.amazon.com/route53/home), [Hosted Zones](https://console.aws.amazon.com/route53/home#hosted-zones:).) -2. Select `Create Record Set`. Fill in the subdmain (e.g. `otp-mod-ui.ibi-transit.com`). The OTP UI will be available at this URL. Set the `Record Type` to `CNAME`. +2. Click `Create Record Set`. Fill in the subdmain (e.g. `otp-mod-ui.ibi-transit.com`). The OTP UI will be available at this URL. Set the `Record Type` to `CNAME`. 3. In the value field, paste the `Domain Name` value of the CloudFront instance above. 4. Click `Create`. 5. Return to [AWS CloudFront Home](https://console.aws.amazon.com/cloudfront/home). @@ -64,12 +64,12 @@ The load balancer also allows instantiating multiple OTP servers on large deploy 1. Go to [Create Application Load Balancer](https://console.aws.amazon.com/ec2/home#V2CreateELBWizard:type=application:) (Under [AWS EC2 Load Balancers view](https://console.aws.amazon.com/ec2/home#LoadBalancers:), click `Create Load Balancer` then `Application Load Balancer`.) -2. Enter a name, add a listener for HTTPS (443), pick a VPC with two subnets/availability zones available, and select two of the subnets. (Leave other params as is, the HTTP(80) listener should be there by default). Click `Next`. +2. Enter a name, add a listener for HTTPS (443), pick a VPC with two subnets/availability zones available, and click two of the subnets. (Leave other params as is, the HTTP(80) listener should be there by default). Click `Next`. 3. Choose a certificate in ACM, pick the IBI Group certificate. (Leave other params as is). Click `Next`. 4. Create a new security group, or use an existing one that supports HTTP, HTTPS, SSH. (Leave other params as is). Click `Next`. 5. Create a new target group (pick a name). Click `Next`. 6. Do not register any targets. Click `Finish`. -7. From the [Load Balancer view](https://console.aws.amazon.com/ec2/home?#LoadBalancers:), select the row corresponding to your new load balancer. +7. From the [Load Balancer view](https://console.aws.amazon.com/ec2/home?#LoadBalancers:), click the row corresponding to your new load balancer. 8. Under the `Listeners` tab, there should be two listeners, one for HTTP and one for HTTPS. Add the HTTPS listener if it is not there. 9. Open the load balancer properties, and, under the `Description` tab, copy the load balancer's `DNS name` (e.g. `ibi-dev-otp-1234567890.us-east-1.elb.amazonaws.com`). @@ -77,24 +77,24 @@ The load balancer also allows instantiating multiple OTP servers on large deploy 1. Go to the [AWS hosted zone for ibi-transit.com](https://console.aws.amazon.com/route53/home#resource-record-sets:Z37ATQUY9Y96RY).\ (It should be under [AWS Route 53](https://console.aws.amazon.com/route53/home), [Hosted Zones](https://console.aws.amazon.com/route53/home#hosted-zones:).) -2. Select `Create Record Set`. Fill in the subdmain (e.g. `otp-mod-dev.ibi-transit.com`). Set the `Record Type` to `CNAME`. +2. Click `Create Record Set`. Fill in the subdmain (e.g. `otp-mod-dev.ibi-transit.com`). Set the `Record Type` to `CNAME`. 3. In the value field, paste the `DNS Name` of the load balancer instance above. 4. Click `Create`. -## Delegate access to Data Tools for resources in a third party AWS account via an IAM role -For Data Tools to access AWS resources (e.g., S3 and EC2) in third party AWS accounts, additional setup is required. The steps provided in [this AWS tutorial](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) detail the process to delegate access across AWS accounts. A more tailored, shorthand version of this process is provided below, but if more background information is needed about, please follow the tutorial link above. +## Delegate access to TRANSIT-data-tools for resources in a third party AWS account via an IAM role +For TRANSIT-data-tools to access AWS resources (e.g., S3 and EC2) in third party AWS accounts, additional setup is required. The steps provided in [this AWS tutorial](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) detail the process to delegate access across AWS accounts. A more tailored, shorthand version of this process is provided below, but if more background information is needed about, please follow the tutorial link above. -### Steps to Give Data Tools Access to Third Party Account +### Steps to Give TRANSIT-data-tools Access to Third Party Account 1. Log into third party (i.e., other organization's) AWS account. 2. Open the [Roles view](https://console.aws.amazon.com/iam/home#/roles) in the IAM dashboard and create a new role for `Another AWS Account` ([direct link](https://console.aws.amazon.com/iam/home#/roles$new?step=type&roleType=crossAccount)). -3. Enter IBI Group account ID (or whichever account Data Tools is running in) and click `Next: Permissions`. Note: the additional security options (e.g., MFA) can be left unchecked. -4. Select the appropriate permissions needed by Data Tools for OTP deployment ([see below](#sample-permissions-for-third-party-aws-role) for full sample JSON). These should include: +3. Enter an Arcadis/IBI Group account ID (or whichever account TRANSIT-data-tools is running in) and click `Next: Permissions`. Note: the additional security options (e.g., MFA) can be left unchecked. +4. Click the appropriate permissions needed by TRANSIT-data-tools for OTP deployment ([see below](#sample-permissions-for-third-party-aws-role) for full sample JSON). These should include: - read/write/list permissions to any S3 buckets needed, - full permissions to EC2, and - IAM permissions in order to read and pass IAM roles to EC2 instances. 5. Finish creating the role. 6. Log out of the third party account and into the IBI Group account. -7. Find the role under which the Data Tools application is running and add the following permission to allow Data Tools to assume the new role (be sure to replace the full ARN with your new role ARN, including the third party account ID): +7. Find the role under which the TRANSIT-data-tools application is running and add the following permission to allow TRANSIT-data-tools to assume the new role (be sure to replace the full ARN with your new role ARN, including the third party account ID): { "Version": "2012-10-17", @@ -107,7 +107,7 @@ For Data Tools to access AWS resources (e.g., S3 and EC2) in third party AWS acc 8. You should be ready to deploy OTP servers in the third party AWS account! ### Sample Permissions for Third Party AWS Role -A sample JSON string with the permissions needed for the role created in the third party account is reproduced below. Note: this is also the base default permissions needed by any Data Tools instance application running on AWS. +A sample JSON string with the permissions needed for the role created in the third party account is reproduced below. Note: this is also the base default permissions needed by any TRANSIT-data-tools instance application running on AWS. ```json { diff --git a/i18n/english.yml b/i18n/english.yml index bed509560..df801c819 100644 --- a/i18n/english.yml +++ b/i18n/english.yml @@ -53,7 +53,7 @@ components: sortBy: Sort By url: 'Feed download URL' Brand: - dataTools: Data Tools + dataTools: TRANSIT-data-tools Breadcrumbs: deployments: Deployments projects: Projects @@ -791,7 +791,7 @@ components: changelog: Changelog contact: Contact copyright: Copyright - datatools: Data Tools + datatools: TRANSIT-data-tools guide: Guide home: Home MapModal: @@ -1138,7 +1138,7 @@ components: copyright: Copyright existingUsers: Existing users here: here - learnMore: Learn more about Data Tools + learnMore: Learn more about TRANSIT-data-tools signInHere: sign in here viewDashboard: View dashboard RegionSearch: diff --git a/lib/admin/components/UserRow.js b/lib/admin/components/UserRow.js index 507d4fc5b..4bc2c904b 100644 --- a/lib/admin/components/UserRow.js +++ b/lib/admin/components/UserRow.js @@ -83,7 +83,7 @@ class UserRow extends Component { const project = projects.find(p => p.id === id) // Use name of project for label (or track missing project with uuid). // A missing project can occur when the same Auth0 tenant is used for - // multiple instances of Data Tools or if a project is deleted (but + // multiple instances of TRANSIT-data-tools or if a project is deleted (but // the permission is still attached to the user). if (project) return project.name missingProjectCount++ diff --git a/lib/alerts/reducers/alerts.js b/lib/alerts/reducers/alerts.js index bb5d4af72..5dc046ed3 100644 --- a/lib/alerts/reducers/alerts.js +++ b/lib/alerts/reducers/alerts.js @@ -5,7 +5,6 @@ import update from 'react-addons-update' import mergeable from 'redux-merge-reducers' import { FILTERS, filterAlertsByCategory, mapRtdAlert } from '../util' - import type {Alert} from '../../types' import type {Action} from '../../types/actions' import type {AlertsReducerState} from '../../types/reducers' @@ -101,7 +100,7 @@ const alerts = ( : [] filteredAlerts // Grab the stop and route entities for later fetching from - // the Data Tools GraphQL endpoint. + // the TRANSIT-data-tools GraphQL endpoint. .forEach(alert => { if (alert && alert.ServiceAlertEntities && alert.ServiceAlertEntities.length > 0) { for (var j = 0; j < alert.ServiceAlertEntities.length; j++) { diff --git a/lib/public/components/PublicLandingPage.js b/lib/public/components/PublicLandingPage.js index f9a10b92f..e3f8928e0 100644 --- a/lib/public/components/PublicLandingPage.js +++ b/lib/public/components/PublicLandingPage.js @@ -48,7 +48,7 @@ export default class PublicLandingPage extends Component {

{!isModuleEnabled('enterprise') &&

{this.messages('learnMore')}{' '} - {this.messages('here')}. + {this.messages('here')}.

}

{!this.props.user.profile @@ -65,7 +65,7 @@ export default class PublicLandingPage extends Component { © {' '} - IBI Group + Arcadis

diff --git a/mkdocs.yml b/mkdocs.yml index 87ee85f78..af8375062 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: Transit Data Tools Docs +site_name: TRANSIT-data-tools Docs site_url: http://conveyal-data-tools.readthedocs.io repo_url: https://github.com/conveyal/datatools-manager docs_dir: docs