Skip to content
JavaScript Ruby HTML CSS Shell Dockerfile
Branch: master
Clone or download
Pull request Compare This branch is 906 commits ahead, 43 commits behind measuredvoice:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
db update the requirements for agencies/users based on going forward wit… Jul 24, 2019
doc updates to the API docs Jun 25, 2019
lib/tasks remove draft ids Jul 7, 2019
log Added basic application structure. Nov 8, 2011
public
script adding in some really basic use cases for admin versus limited users Feb 7, 2015
spec
vendor
.codeinventory.yml adding code inventory Dec 12, 2016
.dockerignore .dockerignore, log tagging, and better directory creation behaviors Jun 30, 2016
.env updating status branch with changes for mobile galleries Oct 10, 2017
.gitignore fixing REGISTRY_HOSTNAME Jul 9, 2016
.hound.yml adding files for hount ci/digitalgovtheme Feb 18, 2015
.rubocop.yml cleans up digitalgov theme and does some changes to how counts work t… Feb 18, 2015
.rubocop_todo.yml push current changes for rubocop Feb 19, 2015
.ruby-gemset remove draft ids Jul 7, 2019
.ruby-version
.travis.yml
Dockerfile
Gemfile update the versions of social gems Jun 24, 2019
Gemfile.lock
LICENSE Added MIT license and basic readme info. Jan 27, 2012
README.md update links in the readme Oct 20, 2016
RELEASE_NOTES.md update to swagger docs method Feb 20, 2015
Rakefile Added basic application structure. Nov 8, 2011
config.ru Added basic application structure. Nov 8, 2011
db_script_dev.sh update the front page to point to the new api documentation Aug 19, 2019
development.sh adding build time swagger dependency Jun 30, 2016
docker-compose.yml fix admin impersonation Jul 14, 2016
openapi.yml update the front page to point to the new api documentation Aug 19, 2019
production.sh-docker_compose_testing_only
switch_dev_user.sh
wait-for-it.sh development Docker Compose file complete (+4 squashed commits) Jun 15, 2016

README.md

U.S. Digital Registry (program information)

Build Status Coverage Status

Ringsail (the underlying software)

Ringsail is a registry built in Ruby on Rails to gather, organize, and make available information about social media accounts and mobile applications run by large organizations.

Purpose

The U.S. General Services Administration created Ringsail as a registry of all social media accounts managed by U.S. federal government agencies and programs. We hope that any large organization that manages disparate social media accounts will be able to use it.

As built, it allows anyone with a .gov or .mil email address to register a social media account as an official government account. The information gathered about these social media accounts is then made available via an API.

Development

Ringsail is currently being developed. This document should be considered a living document, and will grow over time. Organization is always appreciated.

Requirements

Ringsail is built on Ruby 2.1.5 and Rails 4.1.1, backed by a MySQL 5 database (or greater).

Setup

Commands:

rake db:create db:migrate db:seed
rake services:load
rails s

Information on specific features

Single Sign On

For the purposes of Single Sign-On (SSO), Ringsail integrates with OMB.MAX. For this integration to work, the domain name of the service must be configured with OMB MAX as an external dependency. It also requires configuration of groups in the secrets.yml file (the user and administrator groups to check against). Leaving these blanks will cause every user account to have either user level or administrator level access.

In development mode, users from the db:seeds file will be created with each level of access available in the system. There should be no need to integrate with a CAS provider for development purposes.

If you are looking to run your own version of the application, either modify the authentication mechanism or integrate with a CAS provider.

Social Media Accounts

Social media accounts are stored as Outlets internally. This is for the purposes of naming as having "accounts" as a name is particularly useful, and more closely matches with terminiology of the web communication divisions of various government agencies.

The major goals of social media accounts is to be able to search, sort, and verify their authenticity.

Social Media Services

Social media services change rapidly, so Ringsail allows new services to be added to the database through admin interface using a flexible mechanism.

Under Admin -> Services List, social media services may be created, edited, and un/archived. Regular expressions and string templating can be used in the definition and updating of social media services. A brief primer in the customizable fields follows.

Service host match regexp: A regular expression used to determine the social media service being provided by the user when the user pastes a canonical url. Checks against the host portion of the URI.

Display name template: A string representation of how the Outlet's binding to a social media account should appear, e.g. "John Smith on Facebook". The placeholder <account> is replaced with the account's primary identifier.

Service url canonical template: A string representation of how the Outlet's binding to a social media account should appear, e.g. "http://username.tumblr.com". The placeholder <account> is replaced with the account id.

Account id regex matchers: These are evaluated in the following order. The first to match determines the account id, or else has the stated effect. All require the <id> capture token to be included in the regular expression.

1. Reject All regexp: Ceases trying to determine the social media service if the URI path matches this regular expression.

2. Host match regexp: Tries to match on the URI host. Most useful for subdomain-based accounts, e.g. http://username.tumblr.com

3. Path match regexp: Tries to match on the URI path. Useful for most social media services, e.g. http://linkedin.com/username

4. Fragment match regexp: Tries to match on the URI fragment if it exists; if it does not, tries to match on the URI path. The Twitter service uses this regular expression.

5. Conditional regexps: When the "If" expression matches the URI path, try to match against the "Then" expression. Otherwise, try to match against the "Else" expression.

6. Stop words array: Specified as a commma-delimited list, this can be used to ensure that a dashboard or aggregate landing page is not registered as a social media Outlet, e.g. /newsfeed. If the account id matched by some method above is included in the stop list, it is blocked.

Mobile Applications

Mobile applications are stored as MobileApps internally. This name much more closely reflects their purpose than social media accounts.

The major goals of mobile applications is to be able to search, sort, and verify their authenticity.

Mobile Application Plugins

Mobile application apis change less rapidly than services, but we've deigned to treat them in a fashion similar to social media plugins, to allow easy expansion and development. We will be abl adding clases for the handling of mobile application apis to /lib/mobile/

Workflow

Current workflow consists of regular users submitting social media and mobile applications into a "Pending" status. Administrators can review these and place them in an 'Published' state. After 6 months without being modified, records will be placed in an "under review" status and contacts for their related agency and record will be notified. These "under review" items will be completely viewable by the public, but administrative users may archive them if they are not attended to.

You can’t perform that action at this time.