{"action":"created","issue":{"url":"https://api.github.com/repos/TerriaJS/terriajs/issues/886","labels_url":"https://api.github.com/repos/TerriaJS/terriajs/issues/886/labels{/name}","comments_url":"https://api.github.com/repos/TerriaJS/terriajs/issues/886/comments","events_url":"https://api.github.com/repos/TerriaJS/terriajs/issues/886/events","html_url":"https://github.com/TerriaJS/terriajs/issues/886","id":98678250,"number":886,"title":"Catalogue API","user":{"login":"stevage","id":678344,"avatar_url":"https://avatars.githubusercontent.com/u/678344?v=3","gravatar_id":"","url":"https://api.github.com/users/stevage","html_url":"https://github.com/stevage","followers_url":"https://api.github.com/users/stevage/followers","following_url":"https://api.github.com/users/stevage/following{/other_user}","gists_url":"https://api.github.com/users/stevage/gists{/gist_id}","starred_url":"https://api.github.com/users/stevage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevage/subscriptions","organizations_url":"https://api.github.com/users/stevage/orgs","repos_url":"https://api.github.com/users/stevage/repos","events_url":"https://api.github.com/users/stevage/events{/privacy}","received_events_url":"https://api.github.com/users/stevage/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-03T06:02:58Z","updated_at":"2016-01-27T01:56:03Z","closed_at":null,"body":"Currently, the full catalogue is constructed in the browser by querying all catalogue groups (CKAN, WMS, Socrata...) when searching. This has two big downsides:\r\n\r\n1. It's very slow. (Something like 30 seconds for all data providers to complete)\r\n2. Because there is no server API, there is no way for anyone else to build a tool off our catalogue.\r\n\r\nA solution to these two problems would be to run the catalogue (or at least an index of the catalogue) on a server, updating it from time to time (hourly?), and exposing an API, which Terria would call.\r\n\r\nA couple of very different approaches:\r\n\r\n1. A lightweight, standalone nodeJS app which uses the TerriaJS catalogue logic (and a local catalog .json file) to construct the catalogue and answer queries by API (eg, Express)\r\n2. Scrap the whole concept of our own catalogue and run a CKAN instance, replacing our existing CatalogItem types with CKAN connectors (including custom development...)\r\n3. Some other tool? "},"comment":{"url":"https://api.github.com/repos/TerriaJS/terriajs/issues/comments/175340238","html_url":"https://github.com/TerriaJS/terriajs/issues/886#issuecomment-175340238","issue_url":"https://api.github.com/repos/TerriaJS/terriajs/issues/886","id":175340238,"user":{"login":"stevage","id":678344,"avatar_url":"https://avatars.githubusercontent.com/u/678344?v=3","gravatar_id":"","url":"https://api.github.com/users/stevage","html_url":"https://github.com/stevage","followers_url":"https://api.github.com/users/stevage/followers","following_url":"https://api.github.com/users/stevage/following{/other_user}","gists_url":"https://api.github.com/users/stevage/gists{/gist_id}","starred_url":"https://api.github.com/users/stevage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevage/subscriptions","organizations_url":"https://api.github.com/users/stevage/orgs","repos_url":"https://api.github.com/users/stevage/repos","events_url":"https://api.github.com/users/stevage/events{/privacy}","received_events_url":"https://api.github.com/users/stevage/received_events","type":"User","site_admin":false},"created_at":"2016-01-27T01:56:03Z","updated_at":"2016-01-27T01:56:03Z","body":"Yeah. And Renee had a lot of difficulty getting it set up.\r\n\r\nAdding another goal of a catalogue server here:\r\n\r\n5) Pre-canned dataset image previews "}}