├── log
└── .gitkeep
├── .rspec
├── .ruby-version
├── lib
├── tasks
│ ├── .gitkeep
│ └── cucumber.rake
└── assets
│ └── .gitkeep
├── public
├── favicon.ico
├── robots.txt
├── 500.html
├── 422.html
└── 404.html
├── test
├── unit
│ └── .gitkeep
├── fixtures
│ └── .gitkeep
├── functional
│ ├── .gitkeep
│ └── datasets_controller_test.rb
├── integration
│ └── .gitkeep
├── performance
│ └── browsing_test.rb
└── test_helper.rb
├── app
├── mailers
│ └── .gitkeep
├── models
│ ├── .gitkeep
│ ├── holding.rb
│ ├── token.rb
│ ├── health.rb
│ ├── client_id.rb
│ └── ceos_agency.rb
├── helpers
│ ├── home_helper.rb
│ └── collections_helper.rb
├── assets
│ ├── images
│ │ ├── rails.png
│ │ ├── ui-icons_217bc0_256x240.png
│ │ ├── ui-icons_2e83ff_256x240.png
│ │ ├── ui-icons_469bdd_256x240.png
│ │ ├── ui-icons_6da8d5_256x240.png
│ │ ├── ui-icons_cd0a0a_256x240.png
│ │ ├── ui-icons_d8e7f3_256x240.png
│ │ ├── ui-icons_f9bd01_256x240.png
│ │ ├── cmr-opensearch-logo-small.png
│ │ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ │ ├── ui-bg_flat_55_fbec88_40x100.png
│ │ ├── ui-bg_glass_75_d0e5f5_1x400.png
│ │ ├── ui-bg_glass_85_dfeffc_1x400.png
│ │ ├── ui-bg_glass_95_fef1ec_1x400.png
│ │ ├── cmr-opensearch-logo-small-hover.png
│ │ ├── ui-bg_inset-hard_100_f5f8f9_1x100.png
│ │ ├── ui-bg_inset-hard_100_fcfdfd_1x100.png
│ │ └── ui-bg_gloss-wave_55_5c9ccc_500x100.png
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ └── fontawesome-webfont.woff
│ ├── stylesheets
│ │ ├── images
│ │ │ └── rails.png
│ │ ├── datetimepicker.css
│ │ ├── home.css.scss
│ │ ├── granules.css.scss
│ │ ├── collections.css.scss
│ │ ├── scaffolds.css.scss
│ │ ├── application.css.scss
│ │ ├── results.css.scss
│ │ └── resource.css
│ └── javascripts
│ │ ├── home.js
│ │ ├── collections.js
│ │ ├── results.js
│ │ ├── granules.js
│ │ ├── application.js
│ │ └── jquery-ui-sliderAccess.js
├── controllers
│ ├── home_controller.rb
│ ├── health_controller.rb
│ ├── holdings_controller.rb
│ └── application_controller.rb
├── views
│ ├── granules
│ │ ├── ghrsst.xml.erb
│ │ ├── inpe.xml.erb
│ │ ├── nrscc.xml.erb
│ │ ├── error.xml.erb
│ │ ├── nrsc.xml.erb
│ │ ├── usgslsi.xml.erb
│ │ └── eumetsat.xml.erb
│ ├── shared
│ │ ├── _result_metrics.html.erb
│ │ ├── _errors.html.erb
│ │ ├── _pagination.html.erb
│ │ └── _result.html.erb
│ └── layouts
│ │ └── application.html.erb
├── jobs
│ ├── job_base.rb
│ └── memory_profiler.rb
└── services
│ ├── place_name_to_point.rb
│ ├── well_formed_text.rb
│ └── connection_verifier.rb
├── vendor
├── plugins
│ └── .gitkeep
└── assets
│ ├── javascripts
│ └── .gitkeep
│ └── stylesheets
│ └── .gitkeep
├── .ruby-gemset
├── Procfile
├── config
├── secret_token.yml.template
├── errbit.yml.template
├── environment.rb
├── boot.rb
├── initializers
│ ├── mime_types.rb
│ ├── backtrace_silencers.rb
│ ├── session_store.rb
│ ├── quiet_assets.rb.old
│ ├── wrap_parameters.rb
│ ├── inflections.rb
│ ├── secret_token.rb
│ └── rufus_scheduled_tasks.rb
├── locales
│ └── en.yml
├── cucumber.yml
├── database.yml
├── application.yml.template
├── environments
│ ├── development.rb
│ ├── test.rb
│ ├── sit.rb
│ ├── uat.rb
│ └── production.rb
└── routes.rb
├── .dockerignore
├── docker-compose.yml
├── doc
└── README_FOR_APP
├── config.ru
├── .travis.yml
├── spec
├── controllers
│ ├── home_controller_spec.rb
│ ├── health_controller_spec.rb
│ └── collections_controller_spec.rb
├── models
│ ├── client_id_spec.rb
│ ├── health_spec.rb
│ └── ceos_agency_spec.rb
├── support
│ └── vcr_setup.rb
├── views
│ ├── collections
│ │ ├── invalid_place_name_spec.rb
│ │ ├── ceos_collections_spec.rb
│ │ ├── provider_search_spec.rb
│ │ ├── ceos_bp_1.2_compliance_spec.rb
│ │ ├── geoss_collections_tagging_spec.rb
│ │ └── eosdis_collections_tagging_spec.rb
│ └── granules
│ │ ├── parent_identifier_spec.rb
│ │ ├── data_links_spec.rb
│ │ ├── ceos_bp_1.2_compliance_spec.rb
│ │ ├── required_form_params_spec.rb
│ │ └── esip_bp_up_link_spec.rb
├── services
│ ├── place_name_to_geometry_spec.rb
│ ├── well_formed_text_spec.rb
│ └── eosdis_tagger_spec.rb
├── fixtures
│ ├── models
│ │ └── health
│ │ │ ├── cmr_bad.yml
│ │ │ ├── cmr_good.yml
│ │ │ └── cmr_bad_status.yml
│ ├── views
│ │ ├── granule
│ │ │ ├── navigation_95268_offset.yml
│ │ │ └── navigation_95269_offset.yml
│ │ └── collection
│ │ │ ├── navigation_32287_offset.yml
│ │ │ └── navigation_32288_offset.yml
│ ├── services
│ │ └── place_name_to_geometry.yml
│ └── controllers
│ │ ├── granules_cursor_too_large.yml
│ │ ├── datasets_cursor_too_large.yml
│ │ └── granules
│ │ └── graphql
│ │ ├── invalid.yml
│ │ └── C1220566843-USGS_LTA.yml
├── spec_helper.rb
└── helpers
│ └── granules_helpers_spec.rb
├── script
├── rails
└── cucumber
├── db
├── seeds.rb
└── schema.rb
├── .project
├── Rakefile
├── features
├── home
│ ├── home.feature
│ └── step_definitions
│ │ └── home_steps.rb
├── collections
│ ├── html
│ │ ├── search_by_placename.feature
│ │ ├── search_by_uid.feature
│ │ ├── search_by_granules_only.feature
│ │ ├── search_by_cwic_only.feature
│ │ └── search_by_geoss_only.feature
│ └── atom
│ │ ├── search_to_geoss_dataset.feature
│ │ ├── search_to_collection_specific_granule_osdd_link.feature
│ │ ├── search_by_cwic_only.feature
│ │ ├── search_by_geoss_only.feature
│ │ ├── search_by_placename.feature
│ │ ├── search_by_granules_only.feature
│ │ ├── search_by_uid.feature
│ │ ├── search_to_cwic_dataset.feature
│ │ ├── search_dc_temporal.feature
│ │ └── search_validation.feature
├── granules
│ ├── html
│ │ ├── search_by_placename.feature
│ │ └── search_by_uid.feature
│ └── atom
│ │ ├── search_by_uid.feature
│ │ ├── search_by_dataset_id.feature
│ │ ├── search_by_placename.feature
│ │ ├── search_dc_temporal.feature
│ │ └── search_validation.feature
├── support
│ ├── vcr.rb
│ ├── cuke_env.rb
│ └── env.rb
├── opensearch_descriptor_documents
│ ├── collections.feature
│ └── granules.feature
└── fixtures
│ └── cucumber_tags
│ ├── datasets_search_validation_atom_old.yml
│ └── granules_search_validation_atom_old.yml
├── .gitignore
├── Dockerfile
└── Gemfile
/log/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.rspec:
--------------------------------------------------------------------------------
1 | --color
2 |
--------------------------------------------------------------------------------
/.ruby-version:
--------------------------------------------------------------------------------
1 | 3.1.4
--------------------------------------------------------------------------------
/lib/tasks/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/unit/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/mailers/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/models/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lib/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/fixtures/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/plugins/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/functional/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/integration/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.ruby-gemset:
--------------------------------------------------------------------------------
1 | cmr-opensearch
2 |
--------------------------------------------------------------------------------
/vendor/assets/javascripts/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/vendor/assets/stylesheets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: bundle exec unicorn -p 15400 -E $RAILS_ENV
--------------------------------------------------------------------------------
/app/helpers/home_helper.rb:
--------------------------------------------------------------------------------
1 | module HomeHelper
2 | end
3 |
--------------------------------------------------------------------------------
/config/secret_token.yml.template:
--------------------------------------------------------------------------------
1 | secret_token: @OPEN_SEARCH_SECRET_TOKEN@
2 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | git*
2 | log/*
3 | tmp/*
4 | Dockerfile
5 | README.rdoc
6 | README.md
7 | CONTRIBUTING.md
8 |
--------------------------------------------------------------------------------
/app/assets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/rails.png
--------------------------------------------------------------------------------
/app/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/app/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/app/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/app/assets/stylesheets/images/rails.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/stylesheets/images/rails.png
--------------------------------------------------------------------------------
/app/controllers/home_controller.rb:
--------------------------------------------------------------------------------
1 | class HomeController < ApplicationController
2 | def index; end
3 |
4 | def docs; end
5 | end
6 |
--------------------------------------------------------------------------------
/config/errbit.yml.template:
--------------------------------------------------------------------------------
1 | errbit_host: @ERRBIT_HOST@
2 | errbit_port: @ERRBIT_PORT@
3 | errbit_api_key: @OPENSEARCH_ERRBIT_API_KEY@
4 |
--------------------------------------------------------------------------------
/app/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_217bc0_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_217bc0_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_469bdd_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_469bdd_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_6da8d5_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_6da8d5_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_d8e7f3_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_d8e7f3_256x240.png
--------------------------------------------------------------------------------
/app/assets/images/ui-icons_f9bd01_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-icons_f9bd01_256x240.png
--------------------------------------------------------------------------------
/app/models/holding.rb:
--------------------------------------------------------------------------------
1 | class Holding
2 | def self.find(provider)
3 | Rails.cache.read("holdings-#{provider.downcase}") || {}
4 | end
5 | end
--------------------------------------------------------------------------------
/app/assets/images/cmr-opensearch-logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/cmr-opensearch-logo-small.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_flat_55_fbec88_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_flat_55_fbec88_40x100.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_75_d0e5f5_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_glass_75_d0e5f5_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_85_dfeffc_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_glass_85_dfeffc_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/app/assets/images/cmr-opensearch-logo-small-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/cmr-opensearch-logo-small-hover.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
--------------------------------------------------------------------------------
/app/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nasa/cmr-opensearch/master/app/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
--------------------------------------------------------------------------------
/app/assets/javascripts/home.js:
--------------------------------------------------------------------------------
1 | // Place all the behaviors and hooks related to the matching controller here.
2 | // All this logic will automatically be available in application.js.
3 |
--------------------------------------------------------------------------------
/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the rails application
2 | require File.expand_path('../application', __FILE__)
3 |
4 | # Initialize the rails application
5 | EchoOpensearch::Application.initialize!
6 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | web:
4 | build: .
5 | command: bundle exec rails s -p 3000 -b '0.0.0.0'
6 | volumes:
7 | - .:/cmr-opensearch
8 | ports:
9 | - "3000:3000"
10 |
--------------------------------------------------------------------------------
/doc/README_FOR_APP:
--------------------------------------------------------------------------------
1 | Use this README file to introduce your application and point to useful places in the API for learning more.
2 | Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
3 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2 | #
3 | # To ban all spiders from the entire site uncomment the next two lines:
4 | User-Agent: *
5 | Disallow: /
6 |
--------------------------------------------------------------------------------
/config/boot.rb:
--------------------------------------------------------------------------------
1 | require 'rubygems'
2 | require 'logger'
3 |
4 | # Set up gems listed in the Gemfile.
5 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
6 |
7 | require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
8 |
--------------------------------------------------------------------------------
/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 | # Mime::Type.register_alias "text/html", :iphone
6 |
--------------------------------------------------------------------------------
/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require ::File.expand_path('../config/environment', __FILE__)
4 |
5 | map '/opensearch' do
6 | run EchoOpensearch::Application
7 | end
8 | #run EchoOpensearch::Application
9 |
--------------------------------------------------------------------------------
/test/functional/datasets_controller_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class DatasetsControllerTest < ActionController::TestCase
4 | test "should get descriptor_document" do
5 | get :descriptor_document
6 | assert_response :success
7 | end
8 |
9 | end
10 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: ruby
2 | cache:
3 | bundler: true
4 | sudo: false
5 | script:
6 | - export RAILS_ENV=test
7 | - bundle exec rspec
8 | - bundle exec cucumber
9 | branches:
10 | only: # Only build master. Pull requests to master also get built.
11 | - master
--------------------------------------------------------------------------------
/spec/controllers/home_controller_spec.rb:
--------------------------------------------------------------------------------
1 | require 'spec_helper'
2 |
3 | describe HomeController do
4 |
5 | describe "GET 'index'" do
6 | it "returns http success" do
7 | get 'index'
8 | expect(response.status).to eq(200)
9 | end
10 | end
11 |
12 | end
13 |
--------------------------------------------------------------------------------
/app/helpers/collections_helper.rb:
--------------------------------------------------------------------------------
1 | module CollectionsHelper
2 | def truncate_link(link)
3 | title = link.title ? link.title : 'undefined'
4 | markup = "#{title.truncate(64)}"
5 | markup.html_safe
6 | end
7 | end
8 |
--------------------------------------------------------------------------------
/script/rails:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3 |
4 | APP_PATH = File.expand_path('../../config/application', __FILE__)
5 | require File.expand_path('../../config/boot', __FILE__)
6 | require 'rails/commands'
7 |
--------------------------------------------------------------------------------
/app/assets/javascripts/collections.js:
--------------------------------------------------------------------------------
1 | // Place all the behaviors and hooks related to the matching controller here.
2 | // All this logic will automatically be available in application.js.
3 | //= require jquery-1.7.2.min
4 | //= require jquery-ui-1.8.20.custom.min
5 | //= require jquery-ui-sliderAccess
6 | //= require jquery-ui-timepicker-addon
7 | //= require results
--------------------------------------------------------------------------------
/app/views/granules/ghrsst.xml.erb:
--------------------------------------------------------------------------------
1 |
2 |
Maybe you tried to change something you didn't have access to.
24 |You may have mistyped the address or the page may have moved.
24 |Using the NASA EOSDIS Common Metadata Repository
27 |