Product #30
"CKAN"
Purpose of the Product
"The reason the product is being developed."
Background of the project
"A short description of the work being done, and the situation that triggered the analysis effort."
<p>Knowledge and data will increasingly be provided in packaged form to be re-used combined in a manner similar to software. Need a registry to keep track of what open knowledge projects and packages exist. </p>
Goals of the work
"A registry of open knowledge facts, narratives, projects, and packages"
Stakeholders
"The roles or names of people and organizations who will finance or otherwise contribute to, or are affected by the product."
<p>Both the client and the customer is the Open Knowledge Foundation. The stakeholders community is the open knowledge community. </p>
Users of the Product
"A list of the potential users of the product."
<p>Those who search for open knowledge projects and packages. For example academics, engaged citizens, knowledge developers. </p>
Scope of the Work
"An analysis of the stories that might be supported by the new product."
The product supports these stories:
Story #240
"Dump CKAN domain data"
Story #241
"Load CKAN domain data"
Story #242
"Move CKAN domain data from 0.6 to 0.7"
Story #243
"Move CKAN domain data from 0.7 to 0.8"
Story #307
"Distribute changes made at one CKAN instance between other CKAN instances"
Story #84
"Create, read, update, or delete records of open knowledge projects or packages"
Story #90
"Do something with CKAN that causes a system error"
Story #92
"Malicious user attacks CKAN with SQL injection attack"
Scope of the System
"Determine, with the appropriate stakeholders, which part of the story should be supported by some sort of product and what part should be done entirely by the user."
The product shall satisfy these requirements:
Look and feel Requirements
Look and feel Requirement #42
"The system shall return error documents that look and feel like normal CKAN pages"
"Do something with CKAN that causes a system error"
Functional Requirements
Functional Requirement #40
"The system shall present in pages of fixed length the lists of open knowledge project and packages"
"Create, read, update, or delete records of open knowledge projects or packages"
Functional Requirement #60
"The system shall provide a RESTful machine client interface"
"Create, read, update, or delete records of the objects of the domain"
"Create, read, update, or delete records of open knowledge projects or packages"
Functional Requirement #71
"The system shall support autocompletion when editing package tags"
"Create, read, update, or delete records of open knowledge projects or packages"
Functional Requirement #47
"The system shall return OpenID login pages that look and feel like normal pages"
"Login to application service using OpenID"
Functional Requirement #133
"Write CKAN version into dumped data"
"Dump CKAN domain data"
Functional Requirement #134
"Dump should include *all* CKAN data (i.e. all the data in the CKAN db tables)"
"Dump CKAN domain data"
Functional Requirement #197
"The system shall apply an external CKAN changeset, guarded by testing for conflicts, and shall notify site administrators of any conflict, failed merge, or successful update."
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #198
"The system shall request a CKAN changeset from another CKAN instance"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #199
"The system shall request a list of CKAN changesets from another CKAN instance"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #200
"The system shall present a referenced CKAN changeset"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #201
"The system shall present a list of CKAN changeset references, optionally restricted by date or changeset reference"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #203
"The system shall register a changeset notification handler with another CKAN instance"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #202
"The system shall allow other CKAN instances to register for notifications of new changesets"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #205
"The system shall send notification of new changesets to CKAN instances that have registered a changeset notifcation handler"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #206
"The system shall receive authorised notifications of new CKAN changesets, by requesting and applying the changesets"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #207
"The system shall determine whether a given CKAN changeset can be merged without conflict"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #208
"The system shall notify site administrators of CKAN changeset merge conflicts"
"Distribute changes made at one CKAN instance between other CKAN instances"
Functional Requirement #209
"The system shall allow site administrators to resolve changesets which cause conflicts or which failed to merge automatically"
"Distribute changes made at one CKAN instance between other CKAN instances"
Security Requirements
Security Requirement #44
"The system shall by immune to SQL injection attacks"
"Malicious user attacks CKAN with SQL injection attack"
Notes
<p>Original document: http://knowledgeforge.net/ckan/trac/wiki/RequirementsSpecification </p>
END