├── Export
├── README.md
├── datasets.json
└── users.csv
├── LICENSE
├── Proposal Draft.md
├── Proposal Draft.pdf
└── README.md
/Export/README.md:
--------------------------------------------------------------------------------
1 | # CKAN Content Export
2 |
3 | These are examples for the [CKAN Content Export RFP](https://screendoor.dobt.co/us-open-data/ckan-content-export/). They were generated by installing CKAN, creating one user and adding a single dataset, with two resources (an uploaded file and a linked, remote file).
4 |
5 | [users.csv](users.csv): A list of all users registered with the CKAN instance. All but `admin` are automatically generated by CKAN, internally. `admin` is not necessarily the name of the administrative account—the user can select any name that they desire. There may be _many_ more users than are found in this example.
6 |
7 | [datasets.json](datasets.json): All datasets registered with the site. Each dataset will have one or more “resources” (files, remote URLs, or APIs) listed. It would be very unusual for a site to have just one dataset and two resources, as found in this example—most will have dozens or hundreds of datasets and resources, while some will have thousands. The cumulative size of hosted datasets could be many gigabytes, but for the use case of this RFP, it’s likely to be measured in no more than hundreds of megabytes.
8 |
--------------------------------------------------------------------------------
/Export/datasets.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": "1211136d-532e-4874-9303-a7492836e2c8",
4 | "name": "virginia-trademarks-and-service-marks",
5 | "title": "Virginia Trademarks and Service Marks",
6 | "version": "",
7 | "url": "http://www.scc.virginia.gov/srf/SERFWEB/RegistrationSearches/WebForms/Search.aspx?SearchType=TMSM",
8 | "author": "John Smith",
9 | "author_email": "john@example.com",
10 | "maintainer": "Jane Roe",
11 | "maintainer_email": "jane@example.net",
12 | "notes": "The Division of Securities and Retail Franchising is the registration depository for trademarks and service marks, which identify goods (trademarks) or services (service marks).",
13 | "license_id": "other-pd",
14 | "type": "dataset",
15 | "owner_org": null,
16 | "creator_user_id": "4e2db4ea-e0d9-4109-90be-2e91bd34180e",
17 | "metadata_modified": "2014-12-19T17:39:49.784699",
18 | "private": false,
19 | "state": "active",
20 | "revision_id": "9707fb22-ce8c-42bd-825f-757e3740c3d6",
21 | "license": "Other (Public Domain)",
22 | "isopen": true,
23 | "tags": [
24 | "service mark",
25 | "trademark",
26 | "virginia",
27 | "business"
28 | ],
29 | "groups": [],
30 | "extras": {
31 | "foia": "true"
32 | },
33 | "ratings_average": null,
34 | "ratings_count": 0,
35 | "resources": [
36 | {
37 | "id": "1797da8f-4995-4709-9d13-a683693dd8ac",
38 | "resource_group_id": "8b621a9a-9513-4798-b34a-d08eaf413b08",
39 | "url": "http://54.82.248.31/dataset/1211136d-532e-4874-9303-a7492836e2c8/resource/1797da8f-4995-4709-9d13-a683693dd8ac/download/tmsm.csv",
40 | "format": "CSV",
41 | "description": "Data is absolutely minimal\u2014contains only a unique identifier and the actual registered term.",
42 | "hash": "",
43 | "name": "Trademarks and Service Marks as CSV",
44 | "resource_type": null,
45 | "mimetype": null,
46 | "mimetype_inner": null,
47 | "size": null,
48 | "created": "2014-12-19T17:38:27.085116",
49 | "last_modified": null,
50 | "cache_url": null,
51 | "cache_last_updated": null,
52 | "webstore_url": null,
53 | "webstore_last_updated": null,
54 | "url_type": "upload",
55 | "position": 0,
56 | "package_id": "1211136d-532e-4874-9303-a7492836e2c8"
57 | },
58 | {
59 | "id": "237c9165-e34c-4bf3-90cd-288b702e2df9",
60 | "resource_group_id": "8b621a9a-9513-4798-b34a-d08eaf413b08",
61 | "url": "http://www.scc.virginia.gov/srf/SERFWEB/RegistrationSearches/WebForms/Search.aspx?SearchType=TMSM",
62 | "format": "HTML",
63 | "description": "An interactive form for browsing the data.",
64 | "hash": "",
65 | "name": "Trademark and Service Mark Website",
66 | "resource_type": null,
67 | "mimetype": null,
68 | "mimetype_inner": null,
69 | "size": null,
70 | "created": "2014-12-19T17:39:49.830699",
71 | "last_modified": null,
72 | "cache_url": null,
73 | "cache_last_updated": null,
74 | "webstore_url": null,
75 | "webstore_last_updated": null,
76 | "url_type": null,
77 | "position": 1,
78 | "package_id": "1211136d-532e-4874-9303-a7492836e2c8"
79 | }
80 | ],
81 | "ckan_url": "http://localhost/dataset/virginia-trademarks-and-service-marks",
82 | "relationships": [],
83 | "metadata_created": "2014-12-19T17:37:53.374545",
84 | "notes_rendered": "
The Division of Securities and Retail Franchising is the registration depository for trademarks and service marks, which identify goods (trademarks) or services (service marks).\n
"
85 | }
86 | ]
87 |
--------------------------------------------------------------------------------
/Export/users.csv:
--------------------------------------------------------------------------------
1 | "id","name","openid","fullname","email","created","about"
2 | "f9afde33-170d-45b4-9b89-b557562621ca","logged_in","","","","2014-03-20 02:53:07.476995",""
3 | "5471d503-34f7-4feb-80fd-27ac19c80876","visitor","","","","2014-03-20 02:53:07.478167",""
4 | "de64d5d4-86ab-4510-820b-f0bd86ea7a79","default","","","","2014-03-20 02:55:40.628968",""
5 | "f9442ec1-77f8-421d-9b33-cb3851c0ed1d","harvest","","","harvest@localhost","2014-03-21 00:42:45.722153",""
6 | "4e2db4ea-e0d9-4109-90be-2e91bd34180e","admin","","","","2014-12-19 17:36:25.145947",""
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
117 |
--------------------------------------------------------------------------------
/Proposal Draft.md:
--------------------------------------------------------------------------------
1 | # CKAN Multisite RFP Draft
2 |
3 |
4 | ## General
5 |
6 | The following are general points that all solutions should comply with:
7 |
8 | - Open-source: all delivered software will be open-source. Specifically, it must be dual-licensed under the MIT and AGPL
9 | - Tested: all delivered software must have appropriate unit and/or functional tests. Tests should have reasonable coverage (not necessarily complete but substantial and sufficient for others to validate all major functionality and to continue development in future). Tests must be passing. Where code will be contributed to the CKAN core codebase or to a CKAN extension tests should follow standard practice.
10 | - Accepted into Core: Code (and associated tests) for core CKAN should be accepted by the CKAN technical team as of appropriate quality and should be scheduled for the next appropriate release
11 | - Agile and publicly accessible: Development should proceed, where possible, in an agile manner and in publicly accessible repositories
12 |
13 | ## User Stories
14 |
15 | Personas:
16 |
17 | - Cloud Admin (also multi-tenant admin)
18 | - A manager or administrator of a cloud environment (someone who creates or shuts down new CKAN instances)
19 | - Note: same as Admin for Multi-tenant
20 |
21 | - Instance Admin
22 | - Administrator of a CKAN instance (site) e.g. someone who edits config, adds users etc
23 |
24 | - CKAN Developer - someone developing CKAN related functionality
25 | - User - user of a CKAN instance (authenticated - perhaps an organisation manager …)
26 |
27 | ## 1 Enhancements to Core CKAN
28 |
29 | _These user stories are about enhancing core CKAN that will make it easier to to deploy and manage multiple instances._
30 |
31 | _For example, changes so that a CKAN instance can be administered easily by an Instance Admin without requiring high-level sysadmin support (e.g. someone who has access at the command line level to the machine the instance is running on). This is important because the owner of an instance should be able to administer and configure that instance without requesting manual changes by the Cloud Admin (e.g. one wants to avoid an instance owner contacting the cloud admin every time they want the site title changed)_
32 |
33 | ### US 1.0 User Sessions Stored in Database by Default
34 |
35 | As an Instance Admin I want user sessions to be stored in the Database and for session length to be defaulted to a reasonable length (e.g. 1d or 7d) so that I don't have to worry about sessions on disk using too much disk space and so that sessions are better encapsulated
36 |
37 | - This should just be a config option but may need checking and may need some discussion as to whether to make this the default for CKAN generally
38 |
39 | ### US 1.1 Manage Config (Settings) via Web Interface
40 |
41 | 1.1.1 As an Instance Admin I want to set config (such as site title and as many other possible config values - see http://docs.ckan.org/en/latest/maintaining/configuration.html) from a web interface so that I can change these settings without having to use the command line (and without needing access to the machine the instance is running on)
42 |
43 | 1.1.1 As a Developer I want to set config from a web API so that I can change these settings from my program (or from a UI that uses AJAX)
44 |
45 | **Notes:**
46 |
47 | Implementing this will likely involve following pieces of work
48 |
49 | 1. Moving most configuration to be in Database (in a new table) and making relevant changes to the app in light of this (e.g. so that app loads config from the DB)
50 | 1. Ensuring that changes in config result in a reload of this config in the app (e.g. by changing app to load DB config on every request)
51 |
52 | 2. Maintaining backwards compatibility by still loading config from disk for cases where some or all of config is still on disk (so search disk first, then load DB config - DB config overwrites disk config)
53 | 3. Create a Web UI as part of CKAN Admin Dashboard for viewing and updating config (e.g. located at ckan-admin/config)
54 | 1. See US#2.2 below for changes that would support this
55 |
56 | Config in the Database
57 |
58 | - All config should move to the DB except for that which cannot e.g. DB connection information (cf wordpress)
59 | - Suggestions re new config / settings table schema:
60 | - id, namespace, name, title, value, description, help, value\_type, dictname
61 | - value\_type is an html5 types (?) - e.g. text, textarea, integer, decimal, email, date etc … - used to help display info in text interface and validate.
62 | - dictname their for backwards compatibility to be a place to store current name in pylons config dictionary
63 | - namespace + name are unique
64 | - Translation algorithm to go from db entry to entry in ckan config dictionary: if dictname exists use that. Else: concatenate namespace with '.' and name e.g. namespace = 'ckanext.stats', name = 'cache' becomes 'ckanext.stats.cache'
65 | - Note: this means that plugins can write to the same table
66 |
67 | - namespace defaults to 'core' which is also '' (empty string)
68 | - Note: we will need a default set of settings (including help text etc). This should probably be maintained as a CSV or JSON file (and move out of ini) and then this is used to populate the database on boot.
69 | - all CKAN config settings along with their defaults, help texts, whether they are required, validation, etc to be defined in one place (this will also enable auto generating the config settings reference docs from that source).
70 |
71 | ### US1.2 Review current CKAN Admin dashboard and enhance as appropriate
72 |
73 | As an Instance Admin I want to administrate my CKAN instance (e.g. change config, add/remove users, set permissions) from a web user interface so that it is easy for non-geeky and users without sysadmin access to the underlying machine to administrate the instance
74 |
75 | - Review current CKAN Admin Dashboard (currently very limited in extent)
76 | - Suggestion: Model on Wordpress Dashboard
77 |
78 | - Tidy and/or improve if needed
79 | - Point the way (but not necessarily implement) support for things like user administration
80 | - [Nice to have] Add support for plugins/extensions to extend the dashboard
81 | - This allows extensions to create their own admin interfaces
82 | - Question: is this needed or is controller support that we have good enough?
83 | - Ans: probably want more than this. Whether it be helper functions or even if just documentation of how to do this
84 |
85 | ### US1.3 Multi-tenant CKAN [Very Optional]
86 |
87 | As a Cloud Admin (or general Sysadmin of CKAN) I want to run multiple CKAN instances off the same codebase so that I can manage it more easily
88 |
89 | _Note: this is related to but somewhat parallel to a direct approach to booting multiple CKANs - the simplest approach is simple to install many sets of CKAN code (e.g. using Docker). However, multi-tenant offers quite a few advantages (e.g. maintaining one codebase, or sharing user data across instances). As such this user story is optional._
90 |
91 | Implementation details:
92 |
93 | - Likely setup is a single CKAN (code) application "instance" which serves many site "instances" by switching config based on URL and therefore serve different sites (with different data etc)
94 | - A single code-base and single active "instance" serving multiple distinct customers
95 |
96 | - Qu: do we share the Database across all the instances?
97 | - Could go either way. Initial feeling is that you don't need to share DB but share code
98 | - Share DB would involve prefixing all tables with a configurable prefix (cf wordpress)
99 |
100 | - Qu: how do we handle plugin activating per instance (this is not about installing the plugin which is obviously across all instances)
101 | - ANS: that should be in the config DB so not a problem
102 |
103 | - Qu: do we share user database across the multi-tenant instances?
104 | - That would require a shared database and would require changes to schema e.g. to indicate per instance what users were "live" on that instance
105 | - Suggestion: do not support this.
106 |
107 | ### US 1.4 CKAN Setup on First Boot Wizard [Optional]
108 |
109 | _This user story is considered as an optional "nice to have"._
110 |
111 | As an Instance Owner I want to be walked through setting up my CKAN Instance on first use (including basics such as creating an admin account) so that my instance is configured and ready to use
112 |
113 | - Idea is something similar to wordpress experience once the basic config (on disk) such as DB connection is done.
114 | - At its simplest just a prompt to set admin account (if no user account yet exists) and perhaps a walkthrough of setting site title etc
115 | - e.g. New "Admin" Visits CKAN instance homepage and is prompted to set admin password and is taken through any further info
116 | - [One could (maybe) support even setting DB connection info but that would involve web server user having write access to base config on disk which may not be a great idea for security reasons]
117 |
118 | ### US 1.5 Tracking API usage and other usage like disk space [Optional]
119 |
120 | _This is useful to Cloud Admin as measuring usage across different instances may become important to performance management._
121 |
122 | Tracking API usage and other usage like disk space (and displaying this in admin interface) [[#72](https://github.com/ckan/ideas-and-roadmap/issues/72)]
123 |
124 | 1.5.1 As an Instance Admin I want to monitor how much usage is being made so that I can manage my usage and plan (e.g. around charging or performance)
125 |
126 | 1.5.2 As a CKAN User I want to know how much use is being made of my data so that I can report this to other people and manage my usage (or others' usage) of the platform
127 |
128 | ### US 1.6 User Administration in Admin Interface
129 |
130 | [Optional] As an Instance Admin I want to add (invite), edit, and remove users so that they have access (or do not have access) to the platform
131 |
132 | [Required] As an Instance Admin I want to make a user a sysadmin in the user interface so that they have full access (and I don't to have direct access to the machine to do this …)
133 |
134 | ## 2 Making CKAN Fully "Cloud Ready"
135 |
136 | _These user stories are primarily about supporting infrastructure that make deploying and managing many CKAN instances efficient, easy and scalable on relevant PaaS platforms such as AWS._
137 |
138 | ### 2.1 Dockerized CKAN
139 |
140 | As a Cloud Admin (or any kind of CKAN Admin) I want to deploy CKAN in a docker container easily so that I can run CKAN in docker (and hence on a relevant PaaS)
141 |
142 | - Dockerize CKAN core
143 | - Dockerization of associated things like DB is desirable but may be optional. Key thing is that connection to e.g. DB etc must be easily configurable into CKAN docker container
144 | - Optional as DB may not want to be docker deployed e.g. if using AWS you may want DB in Amazon RDS
145 |
146 | - Note: quite a bit of work on a dockerized CKAN has been done but review will be needed of existing work plus any relevant improvements - https://github.com/ckan/ckan-docker
147 |
148 | ### 2.2 Automated deployment and initialization of new CKAN instances on a PaaS (e.g. AWS)
149 |
150 | 2.2.1 As a Cloud Admin I want to create (and manage) a CKAN instance (site) in my cloud farm so that it is live and available online at a URL
151 |
152 | This user story is really a very high-level user story and there are a lot of smaller ones corresponding to key desired activities such as
153 |
154 | - Create and remove a farm "environment" (e.g. DB server, VPN etc)
155 | - Create an instance within that environment (installed and ready but not live online)
156 | - Activate an instance (make it live online)
157 | - Setup any associated monitoring
158 | - De-activate (take it offline but don't destoy it)
159 | - Purge (Destroy it plus all data - perhaps with backup)
160 | - Plugin install, activate, deactivate, deinstall (per instance (?))
161 |
162 | Implementation notes:
163 |
164 | - Support must be provided for one or more major PaaS such as AWS or OpenStack
165 | - This process should be fully automated - so e.g. booting a new instance should be one command on the command line or a click of a button
166 | - This functionality should be wrapped in a python library so that it can be used to power a web application or similar (see later user stories)
167 | - Relevant information arising from all these operations (e.g. details of the farm, details of instances must be persisted)
168 | - Details are not fully determined and left to implementor (and will intersect with other later user stories e.g. re creating UIs). Suggestion is that config either be simple JSON or a basic DB
169 | - Bonus: nice UI for launching and monitoring (see next item)
170 |
171 | ## 3 Web-Based Workflow for Creating and Managing Cloud Instances
172 |
173 | _These user stories are about "wrapping" the work of the previous section in user-friendly interfaces and workflows._
174 |
175 | ### 3.1 Request / Create CKAN Instance (Potential Instance Admin)
176 |
177 | As a (potential) Instance Admin who wants a new CKAN site I want to have a simple web-based interface for requesting a new instance (and having instance rapidly booted in response) so that I have a new CKAN site quickly and easily
178 |
179 | Notes
180 |
181 | - Simple form where you can fill in your details (e.g. Name, Org, Email, Password)
182 | - Notified in response to submission and/or by email (soon after) that new instance is ready and here is the url
183 | - Go to that instance and go through any next steps (cf US 1.4)
184 | - Note US 1.4 could be less relevant if relevant info captured in form here and used in booting the instance …
185 | - User experience should be excellent (as simple and easy to use as possibly but no simpler!)
186 | - Instance should be booted automatically (suggest using the library / scripts produced re US 2.2)
187 | - Simpler option (less preferred) is email to Cloud Admin who takes some action (see next US 3.2)
188 |
189 | ### 3.2 Management Interface for CKAN Cloud Farm
190 |
191 | As a Cloud Admin I want to view and administer my farm of CKAN instances in a web UI (or via a Web API) so that I can manage them easily (and have a non-command-line user do this)
192 |
193 | - Simple Web API and UI for adminning a cloud CKAN environment
194 | - e.g. Wrap the code from US 2.2 in simple JSON based Web API
195 | - Wrap that with simple UI that allows one to admin all CKAN instances in a given environment
196 | - Upgrade, start, stop, check usage etc
197 | - Single login to UI is OK - e.g. could even use apache/nginx login
198 | - Do not need multiple users and types of user
199 | - However, designing so that this is possible longer-term is a nice to have
200 |
201 | ## 4 General Activities
202 |
203 | ### US4.1 Connect with CKAN Association Technical Team
204 |
205 | As a Developer building new functionality I want to make my functionality builds off and contributes maximally to enhancing CKAN so I and the community get maximum and sustainable value from what I do
206 |
207 | Goal: Ensure this work is well integrated with general CKAN roadmap and includes engagement with the CKAN Association Technical team
208 |
209 |
--------------------------------------------------------------------------------
/Proposal Draft.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendata/CKAN-Multisite-Plans/35536cd96f6c165e10ef7f8c1bf3f89e94dfcbdd/Proposal Draft.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CKAN Multisite
2 |
3 | We want to make it much easier for governments to create and host open data repositories. To that end we’re proposing this “CKAN Multisite” project to make it easy to centralize dozens or hundreds of CKAN sites on a single server, driving the cost of an individual repository towards free. We hired the [Open Knowledge Foundation](okfn.org)—the creators of [the CKAN data repository software](http://ckan.org/)—to consider our half-baked concept and turn it into a series of actionable proposals. [Their draft proposal is available here as Markdown](https://github.com/opendata/CKAN-Multisite/blob/master/Proposal%20Draft.md) and [as a PDF](https://github.com/opendata/CKAN-Multisite/blob/master/Proposal%20Draft.pdf?raw=true).
4 |
5 | We’re soliciting feedback about this from December 8–12, before we break up these tasks into components, issue RFPs, and award contracts to begin the work. We’d like to hear from CKAN experts about which components of this should be bid out collectively versus broken up, and about which of these enhancements best advance other goals, even if those goals are unrelated to our project. We’d like to hear from operators of open data repositories about how we can improve on this proposal to better serve their needs. We’d like to hear from people in government about whether this would help make it easier for them to publish data. And, of course, from _anybody_ who has ideas about how to improve on this.
6 |
7 | Feedback is best provided as [a GitHub issue](https://github.com/opendata/CKAN-Multisite/issues). Or, if you prefer privacy, they can be sent [to Waldo Jaquith via e-mail](mailto:waldo@usopendata.org).
8 |
9 | [Further information is available on the U.S. Open Data blog](https://usopendata.org/2014/12/08/ckan-multisite/).
10 |
--------------------------------------------------------------------------------