Diff for "VersionThreeDotO/Foundations/Delivered"

Not logged in - Log In / Register

Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2008-11-24 22:25:43
Size: 3009
Editor: flacoste
Comment:
Revision 3 as of 2008-11-26 19:10:12
Size: 4295
Editor: flacoste
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.

VersionThreeDotO/Foundations/Delivered (last edited 2009-04-21 13:20:28 by flacoste)