the next version of atlas
Switch branches/tags
Broadcast-scoring Dockerfile-sanitize MBST-13148_configure-cassandra-connection-timeouts MBST-13222-adding-separate-score-reasons MBST-13263-adding-priority-reasons MBST-13286-bugfix-for-priority-reasons MBST-13299-adding-priority-reasons-annotation MBST-13348_cassandra-performance-measure MBST-13893_logging_update MBST-15422-adding-masterbrands MBST-15872-Kubernetes-atlas-docker-k8 Port-generic-description-flag Segment-query-support add-blackout-flag add-count-parameter-to-schedules add-countries-to-content add-filtering-by-genre add-request-data-to-response adding-advertiseFrom-to-be-output-on-front-end adding-genetic-enum-to-Image-and-update-Image-List-Writer adding-new-fields-to-location adding-reporting-for-content-migration advertiseFromChannel alternativeTitles app_revoked application-image-precedence auth_fix avoid-NPE-when-data-column-is-null-in-equivalent-content-store bootstrap-all-the-channels bootstrap-schedule-equivalents bootstrap-source brand-episode-filter bug/scheduleBootstrapperNpe bugfix/fix-npe-for-graph-index-rows cache-headers-on-oauth-login-uris cache_headers cassandra-byte-logging cassandra-host-state-logging cassandra-upgrade cassandra_annotations channel-group-merger channel-grouping-endpoints channel-programme-filtering channel_groups_summary-annotation code-review-fixes content-group-updates content_hasher continue-bootstrap-when-missing-legacy-channel deactivateEndpoint decomission_eventv1 delete-stale-broadcasts-only-from-update-interval display-future-channels dont-fail-when-content-is-stored-incorrectly dont-mark-broadcasts-with-changed-content-as-stale dont-merge-segment-events dont-remove-too-many-stale-broadcasts elasticsearch-upgrade enable-querying-for-non-letter-titles equivalent-es-index equivalent-stores-improvements es-cleanup eventV2 events-endpoint-basic-data explicit-equiv feature/cassandra-prepared-statements feature/enforcer-plugin feature/locationAliases feature/neo4j feature/neo4jDsl feature/neo4jRebased feature/pa-repeat-flag feature/rt-model-changes fix-auth-user fix-broken-test fix-duplicate-channel-numbers fix-registering-graphite-metrics-reporter fix-rt-api-call fix-schedule-overlap-bug fix-schedule-update-bug force-equiv-update-endpoint forwarding_schedule_bootstrap graphite-docker-dummy-variables handle-google-401-auth-response headerApiKey ignore-schedule-with-missing-broadcast-data image-merging-no-precedence improve-channel-group-api investigate-bootstrap-NPE investigate-search-issue jackson-ID-serilaization-issue jdk8 k8 master-before-reset-2016-01-31 master mbst-7810-block-api-keys mbst-8420-hook-in-stripe mbst-8422-stripe-customer-creation mbst-8448-subscribe-to-source mbst-8746-stripe-integration mbst-9986-scrubbables mbst-10456-add-channels-endpoint mbst-11643-ingest-priority-add-to-model-and-search-index mbst-11674-title-searching-on-content-endpoint mbst-11691-ingest-bt-images-model-changes mbst-11697-filter-to-only-output-available-locations mbst-11698-port-annotation-to-Deer-upcoming-broadcasts-on-items mbst-11799-current-and-upcoming-broadcasts merge-CQL-branch-again merge-aliases-on-output merge-blackout-flag-for-items merge-series-on-output merge-source-onto-image-at-output merge-victim-is-requested-id metaapi-improvements metrics more-tests-and-clean-up-for-json-writer most-precedent-broadcasts-not-chosen move-locations-to-content move-logging new_user_endpoint non_aouth_endpoints non_merged_annotation_schedules nonEquivalated nonMerged nonMergedAnnotations order-content-in-multi-id-queries output-all-descriptions overwriting-locations owl-model-sync perf-inc port-pricing-model-from-v3 recover-from-incorrect-graphs refactor-deer-resolution refactor-deer-violations release-year-and-certificates-on-summaries remaining-model-changes-for-BT remove-lagacy-channels remove-references-to-not-actively-published-series remove-stale-content-references-from-containers remove-unpublished-content-from-idx rename-topic-related-query-params rename-topic-to-tags resolve-from-Owl-if-content-not-present-in-deer restartable-bootstrap result-counts-from-elasticsearch revert-194-alternativeTitles revert-238-headerApiKey revert-239-revert-238-headerApiKey revert-240-revert-239-revert-238-headerApiKey revert-252-alternativeTitles revert-254-alternativeTitles revert-255-adding-advertiseFrom-to-be-output-on-front-end revert-256-revert-254-alternativeTitles revert-257-revert-252-alternativeTitles revert-258-revert-194-alternativeTitles revert-410-MBST-16833/metricStandardisation revert-486-feature/pa-repeat-flag revert_hasher rr_bootstrap_fix serialize-actively-published series-anno-on-brand series-sub-item-matching-merging service-player-model-changes sort-fields-for-ES spike/neo4j spike/normalised-stores split-use-different-mongo-for-read-and-writes store-available-content store-content-summary-with-containers store-failed-massages-in-cassandra sub-item-pagination sub_item-ordering telescope-thread-pool title-and-genre-filters tjlh/output_merging_deduping transform-certificates transform-clips-from-legacy-content upcoming-and-available-content update-canonical-ids-when-equiv-graphs-change update-graph-when-updating-equivalent-content update-output-content-merger-to-handle-generics use-newer-version-of-common-queue-to-recover-from-exceptions
Nothing to show
Clone or download
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.
.settings
atlas-api
atlas-cassandra
atlas-core
atlas-elasticsearch
atlas-legacy
atlas-neo4j
atlas-processing
atlas-testlib
.gitignore
LICENSE
README.md
pom.xml

README.md

atlas-deer

This contains all the projects relating to the 4.0 API release of Atlas, a.k.a deer. It replaces the deer branches on the other existing atlasapi/* repositories.

The repository is divided in 5 projects:

  • atlas-api: the Atlas API 4.0 web-app containing HTTP controllers, query executors and model serializers.
  • atlas-processing: the back-end web-app for running scheduled tasks.
  • atlas-core: defines the model and interfaces on which atlas-api and atlas-processing rely and their common and base implementations.
  • atlas-cassandra: Cassandra-based implementations of the core persistence interfaces.
  • atlas-elasticsearch: elasticsearch-based implementations of the core index interfaces.

Development installation

You will need:

  • Maven 3

  • Google’s protocol buffer compiler, protoc, on your path (see bug below if you have trouble compiling protoc).

  • ElasticSearch (Check the atlas-elasticsearch POM and find the current client version used, you need the same version - both major and minor must match).

  • The current version of the 2.0.x release of Cassandra (http://planetcassandra.org/cassandra/) and latest cqlsh

  • The latest version of MongoDB (http://www.mongodb.org/)

  • Make sure the protobuf library version specified in the atlas-cassandra/pom.xml matches the output of protoc —version

  • Start Cassandra locally on the standard port

  • Start ElasticSearch (check the cluster name in dev.properties and change your elasticsearch.yml in /config/ to match)

  • Run mvn package in the project directory

At this stage you hopefully have successfully obtained war files.

  • Run cqlsh:
    • create keyspace atlas_deer_dev with replication = { 'class': 'SimpleStrategy', 'replication_factor': 1 };
  • cqlsh -k atlas_deer_dev -f atlas-cassandra/src/main/resources/atlas.schema

Finally:

  • java -jar atlas-api/target/atlas-api.war

Development

Tests

The integration tests are run via the failsafe plugin, which hooks into the verify Maven phase. This means that to run all the tests, you need to run mvn test verify instead of mvn test.

Netty

The netty transport is set to use epoll, which may not work if you want to run it in a non-Linux environment. If you see issues around the Cassandra driver or Netty's transport, try removing the relevant lines from the POMs and rebuilding.

Security

Be advised that we are in the process of removing OAuth authentication from Atlas and externalising those responsibilities to other internal systems. Towards that goal we have added new admin endpoints under /4/admin that duplicate functionality in our existing OAuth enabled admin endpoints, but without any user authentication in them.

If you are running your own deployment of Atlas you need to put your own security in front of those endpoints otherwise you will be introducing a security vulnerability that will allow anyone with access to the endpoints to read and modify api keys.

Problems