Git Product home page Git Product logo

us-digital-registry's Introduction

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 Login.gov. For this integration to work, the domain name of the service must be configured with Login.gov as an external dependency. It also requires configuration of groups in the Environment Variables and a PEM file for integration with login.gov.

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 it with another mechanism using Omniauth.

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.

us-digital-registry's People

Contributors

cmurphyusaid avatar dvito avatar gbinal avatar globalspin avatar isadr avatar jakevose avatar jbjonesjr avatar jeremyzilar avatar justinherman avatar srudra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.