Size: 3009
Comment:
|
Size: 4295
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
== API Theme == |
|
Line 5: | Line 7: |
== Make API Cacheable == | === Make API Cacheable === |
Line 25: | Line 27: |
== Make API Cacheable - client side == | === Make API Cacheable - client side === |
Line 35: | Line 37: |
== AJAX Theme == |
|
Line 38: | Line 42: |
**Story Points:** 1 | **Story Points:** 1\\ |
Line 52: | Line 56: |
**Story Points:** 5 |
**Story Points:** 5\\ |
Line 59: | Line 63: |
so that I can detect regressions in Javascript code. | so that I can detect regressions in Javascript code. |
Line 62: | Line 66: |
Line 65: | Line 69: |
* Hook the window fire-up and results reading from test.py or make? | * Hook the window fire-up and results reading from test.py or make? |
Line 67: | Line 71: |
Line 69: | Line 72: |
<<Anchor(api-js-access)>> | <<Anchor(api-js-access)>> |
Line 72: | Line 76: |
**Story Points:** 5 | **Story Points:** 5\\ |
Line 75: | Line 79: |
As a Launchpad developer, | As a Launchpad developer, |
Line 80: | Line 84: |
Line 84: | Line 88: |
Line 89: | Line 93: |
**Story Points:** 8 | **Story Points:** 8\\ |
Line 100: | Line 104: |
<<Anchor(ajax-patch)>> === AJAX PATCH === **Story Points:** 2\\ **Delivered:** 2.1.11\\ **Bug:** [[https://bugs.edge.launchpad.net/launchpad-foundations/+bug/29645|#29645]] As a Launchpad programmer,\\ I want to make the equivalent of a PATCH request through Ajax;\\ so I can modify an object without having a representation of it. == Infrastructure Theme == |
|
Line 103: | Line 120: |
**Story Points:** 8 | **Story Points:** 8\\ |
Line 111: | Line 128: |
== OpenID Theme == <<Anchor(login-freshness-openid-extension)>> === Login-freshness OpenID extension === **Story Points:** 2\\ **Delivered:** 2.1.11 As a Relying Party,\\ I want to specify the maximum time since the user entered his password on the Launchpad OpenID Provider,\\ so that I can minimize the possibility of somebody just reusing an already authenticated session. <<Anchor(private-team-rpconfig)>> === Configure access to private teams in +rpconfig === **Story Points:** 1\\ **Delivered:** 2.1.11\\ **Bug:** [[https://bugs.edge.launchpad.net/launchpad-foundations/+bug/192867|#192867]] As a Launchpad administrator,\\ I want to be able to configure if a trust root can query private \\ team memberships, so that we can offer the team membership functionality \\ to arbitrary RP. |
User Stories Delivered
API Theme
Make API Cacheable
Story Points: 3
Delivered: 2.1.9
As a web service client,
I get a Last-Modified date with each representation I request. I can use that data later on to make conditional GET, PUT, or PATCH requests.
We do this because conditional GET saves bandwidth and often time, and conditional PUT/PATCH prevents clients from overwriting each others' work.
Notes:
- Modify launchpadlib to use the new headers
- Store Last-Modified
- Calculate the headers for objects. No Last-Modified for collections.
Make API Cacheable - client side
Story Points: 3
Delivered: 2.1.9
As a launchpadlib user,
ll GET requests I send have their Last-Modified headers stored for later. Subsequent GET or PATCH requests are made conditional using the stored value.
AJAX Theme
YUI Integration
Story Points: 1
Delivered: 2.1.10
As a Launchpad developer, I want to be able to use YUI from a page template, so that I can do cool UI.
Notes:
- Build/Package YUI files
- Add to main template, with switch for dev mode.
JavaScript Testing
Story Points: 5
Delivered: 2.1.10
As a Launchpad developer, I want to write a tests for my Javascript, be able to run it locally from the command line; so that I can detect regressions in Javascript code.
Notes:
- Create YUI 2.5.2 bundle
- Server the bundle from icing
- Hook the window fire-up and results reading from test.py or make?
- Presumed Rhino and Doh can do it (Dojo)
API JS Access
Story Points: 5
Delivered: 2.1.10
As a Launchpad developer, I want to be able to use the Launchpad web service API from JavaScript, so that I can use the standard API to manipulate the content from the UI.
Notes:
- Somehow call the WebService publisher and Request for different vhosts.
- Support canonical_url for API objects on other hosts.
- Add the cookie-based authentication to WebServicePublication.
Initial API JavaScript Library
Story Points: 8
Delivered: 2.1.10
As a Launchpad developer, I want a JS library available that allow me to easily make API call to the Launchpad web service, so that I can access the Launchpad object model without having to write custom XHR request and interpret the resulting JSON.
Notes:
AJAX PATCH
Story Points: 2
Delivered: 2.1.11
Bug: #29645
As a Launchpad programmer,
I want to make the equivalent of a PATCH request through Ajax;
so I can modify an object without having a representation of it.
Infrastructure Theme
Zope 3.4 Upgrade
Story Points: 8
Delivered: 2.1.10
As a Launchpad developer, I want to have zope 3.4 available in my tree, so that I can take advantage of the latest changes in it.
Notes:
OpenID Theme
Login-freshness OpenID extension
Story Points: 2
Delivered: 2.1.11
As a Relying Party,
I want to specify the maximum time since the user entered his password on the Launchpad OpenID Provider,
so that I can minimize the possibility of somebody just reusing an already authenticated session.
Configure access to private teams in +rpconfig
Story Points: 1
Delivered: 2.1.11
Bug: #192867
As a Launchpad administrator,
I want to be able to configure if a trust root can query private
team memberships, so that we can offer the team membership functionality
to arbitrary RP.