You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "René Cordier (Jira)" <se...@james.apache.org> on 2020/03/09 09:08:00 UTC
[jira] [Updated] (JAMES-2891) Implement session object
[ https://issues.apache.org/jira/browse/JAMES-2891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
René Cordier updated JAMES-2891:
--------------------------------
Description:
https://jmap.io/spec-core.html#the-jmap-session-resource
{code:java}
curl -XGET /jmap/session
{
"capabilities": {
"urn:ietf:params:jmap:core":
"maxSizeUpload": 10000000,
"maxConcurrentUpload": 4,
"maxSizeRequest": 10000000,
"maxConcurrentRequests": 4,
"maxCallsInRequest": 16,
"maxObjectsInGet": 500,
"maxObjectsInSet": 500,
"collationAlgorithms": ["i;unicode-casemap"]
},
"urn:ietf:params:jmap:mail":
"maxMailboxesPerEmail": 10000000,
"maxMailboxDepth": null,
"maxSizeMailboxName": 200,
"maxSizeAttachmentsPerEmail": 20000000,
"mayCreateTopLevelMailbox": true,
"emailQuerySortOptions": ["receivedAt", "cc", "from", "to", "subject", "size", "sentAt", "hasKeyword", "uid", "Id"],
},
},
"accounts": [
"bob@apache.org" : {
"name": "bob@apache.org",
"isPersonal": "true",
"isReadOnly": "false",
"capabilities": {...},
}
],
"primaryAccounts": {
"urn:ietf:params:jmap:mail": "bob@apache.org"
},
"username": "bob@apache.org",
"apiUrl": "https://example.com/jmap/api",
"downloadUrl": "https://example.com/jmap/download/{accountId}/{blobId}/{name}?accept={type}",
"uploadUrl": "https://example.com/jmap/upload/{accountId}",
"eventSourceUrl": "https://example.com/jmap/eventsource/?types={types}&closeafter={closeafter}&ping={ping}",
"state": null
}
{code}
Additional (compulsory?) configuration parameter:
- `jmap.base.url`: The url from which to derive the session URLs (above `https://example.com/jmap`)
*DOD* serving the session object: using simple auth, bob is able to retrieve his session... (memory integration test)
was:
Implement a `[Session|https://jmap.io/spec-core.html#the-jmap-session-resource]` object.
Don't hesitate to:
- Return default values even if not enforced.
- Return null for not implemented yet features ("download/uploadUrl"?)
Regarding AccountId, each User (as in james-core, and must be contained in UsersRepository) have an AccountId associated to him (username). That is the single account he is owning.
In order to retrieve the Session object, one can:
{code:java}
GET /jmap/session
{code}
Write memory integration tests for this.
Summary: Implement session object (was: JMAP protocol structure: GET /jmap/session)
> Implement session object
> ------------------------
>
> Key: JAMES-2891
> URL: https://issues.apache.org/jira/browse/JAMES-2891
> Project: James Server
> Issue Type: Sub-task
> Components: JMAP
> Reporter: Benoit Tellier
> Assignee: Antoine Duprat
> Priority: Major
>
> https://jmap.io/spec-core.html#the-jmap-session-resource
> {code:java}
> curl -XGET /jmap/session
> {
> "capabilities": {
> "urn:ietf:params:jmap:core":
> "maxSizeUpload": 10000000,
> "maxConcurrentUpload": 4,
> "maxSizeRequest": 10000000,
> "maxConcurrentRequests": 4,
> "maxCallsInRequest": 16,
> "maxObjectsInGet": 500,
> "maxObjectsInSet": 500,
> "collationAlgorithms": ["i;unicode-casemap"]
> },
> "urn:ietf:params:jmap:mail":
> "maxMailboxesPerEmail": 10000000,
> "maxMailboxDepth": null,
> "maxSizeMailboxName": 200,
> "maxSizeAttachmentsPerEmail": 20000000,
> "mayCreateTopLevelMailbox": true,
> "emailQuerySortOptions": ["receivedAt", "cc", "from", "to", "subject", "size", "sentAt", "hasKeyword", "uid", "Id"],
> },
> },
> "accounts": [
> "bob@apache.org" : {
> "name": "bob@apache.org",
> "isPersonal": "true",
> "isReadOnly": "false",
> "capabilities": {...},
> }
> ],
> "primaryAccounts": {
> "urn:ietf:params:jmap:mail": "bob@apache.org"
> },
> "username": "bob@apache.org",
> "apiUrl": "https://example.com/jmap/api",
> "downloadUrl": "https://example.com/jmap/download/{accountId}/{blobId}/{name}?accept={type}",
> "uploadUrl": "https://example.com/jmap/upload/{accountId}",
> "eventSourceUrl": "https://example.com/jmap/eventsource/?types={types}&closeafter={closeafter}&ping={ping}",
> "state": null
> }
> {code}
> Additional (compulsory?) configuration parameter:
> - `jmap.base.url`: The url from which to derive the session URLs (above `https://example.com/jmap`)
> *DOD* serving the session object: using simple auth, bob is able to retrieve his session... (memory integration test)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org