annotate src/server/constants.py @ 985:64826e69f365

pages: cache mechanism, first draft: a cache mechanism has been implemented to retrieve pages with a complexe rendering and/or calling expensive methods (e.g. network calls). For now it's is done only for Pubsub and with service profile (i.e. profile used when user is not logged in). When a LiberviaPage use cache, node is subscribed, and as long as no event is received (even can be item update, item retraction, or node deletion), the cached page is returned. This is a first draft, it is planed to handle in the future logged users (which can be tricky as we must not let (un)subscribed node if user is not willing to), multi-nodes pages (e.g.: item + comments) and cache for page not depending on pubsub (e.g. chat).
author Goffi <goffi@goffi.org>
date Sun, 19 Nov 2017 17:18:14 +0100
parents fd4eae654182
children 6daa59d44ee2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
1 #!/usr/bin/python
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
3
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 445
diff changeset
4 # Libervia: a SAT frontend
964
fd4eae654182 misc: date update (yes it's a bit late :p )
Goffi <goffi@goffi.org>
parents: 962
diff changeset
5 # Copyright (C) 2009-2017 Jérôme Poisson (goffi@goffi.org)
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
6
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
10 # (at your option) any later version.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
11
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
16
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
19
860
05cd9dc775e6 server: use of relative import instead of try/except block in server/constants
Goffi <goffi@goffi.org>
parents: 856
diff changeset
20 from ..common import constants
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
21
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
22
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
23 class Const(constants.Const):
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
24
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
25 APP_NAME = 'Libervia'
512
750db9ff8525 server side: launching script improvments:
Goffi <goffi@goffi.org>
parents: 490
diff changeset
26 APP_NAME_FILE = "libervia"
436
73f767a9ac2f server_side: added constant SERVICE_PROFILE to remove hard-coded value
souliane <souliane@mailoo.org>
parents: 340
diff changeset
27 SERVICE_PROFILE = 'libervia' # the SàT profile that is used for exporting the service
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
28
555
db1b330c1eb1 server_side: set the connection attempt timeout to the bridge timeout (2 minutes)
souliane <souliane@mailoo.org>
parents: 554
diff changeset
29 SESSION_TIMEOUT = 300 # Session's timeout, after that the user will be disconnected
449
981ed669d3b3 /!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents: 445
diff changeset
30 HTML_DIR = "html/"
703
1a19ee7d8d8a server_side: add default theme
souliane <souliane@mailoo.org>
parents: 685
diff changeset
31 THEMES_DIR = "themes/"
823
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
32 THEMES_URL = "themes"
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
33 MEDIA_DIR = "media/"
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
34 CARDS_DIR = "games/cards/tarot"
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
35 PAGES_DIR = u"pages"
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
36
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
37 ERRNUM_BRIDGE_ERRBACK = 0 # FIXME
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
38 ERRNUM_LIBERVIA = 0 # FIXME
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
39
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
40 # Security limit for Libervia (get/set params)
338
80016abf3ad3 server_side: raised default security_limit to 5
Goffi <goffi@goffi.org>
parents: 317
diff changeset
41 SECURITY_LIMIT = 5
317
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
42
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
43 # Security limit for Libervia server_side
bbadd490e63c misc: gather the constants in a single file, as it is done for other frontends
souliane <souliane@mailoo.org>
parents:
diff changeset
44 SERVER_SECURITY_LIMIT = constants.Const.NO_SECURITY_LIMIT
605
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
45
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
46 # keys for cache values we can get from browser
917e271975d9 server + browser side: implementation of new getEntitiesData bridge method + added a security check: only a white list of entities can be gotten
Goffi <goffi@goffi.org>
parents: 555
diff changeset
47 ALLOWED_ENTITY_DATA = {'avatar', 'nick'}
823
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
48
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
49 STATIC_RSM_MAX_LIMIT = 100
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
50 STATIC_RSM_MAX_DEFAULT = 10
027139763511 server (blog): cleaning & improvments:
Goffi <goffi@goffi.org>
parents: 818
diff changeset
51 STATIC_RSM_MAX_COMMENTS_DEFAULT = 10
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
52
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
53 ## Libervia pages ##
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
54 PAGES_META_FILE = u"page_meta.py"
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
55 PAGES_ACCESS_NONE = u"none" # no access to this page (using its path will return a 404 error)
917
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
56 PAGES_ACCESS_PUBLIC = u"public"
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
57 PAGES_ACCESS_PROFILE = u"profile" # a session with an existing profile must be started
86563d6c83b0 server: Libervia pages:
Goffi <goffi@goffi.org>
parents: 861
diff changeset
58 PAGES_ACCESS_ADMIN = u"admin" # only profiles set in admins_list can access the page
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
59 PAGES_ACCESS_ALL = (PAGES_ACCESS_NONE, PAGES_ACCESS_PUBLIC, PAGES_ACCESS_PROFILE, PAGES_ACCESS_ADMIN)
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
60
957
67bf14c91d5c server (pages): added a confirm flag on successful post:
Goffi <goffi@goffi.org>
parents: 956
diff changeset
61 ## Session flags ##
962
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
62 FLAG_CONFIRM = u"CONFIRM"
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
63
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
64 ## Data post ##
c7fba7709d05 Pages: various improvments:
Goffi <goffi@goffi.org>
parents: 957
diff changeset
65 POST_NO_CONFIRM = u"POST_NO_CONFIRM"
957
67bf14c91d5c server (pages): added a confirm flag on successful post:
Goffi <goffi@goffi.org>
parents: 956
diff changeset
66
931
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
67 ## HTTP methods ##
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
68 HTTP_METHOD_GET = u'GET'
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
69 HTTP_METHOD_POST = u'POST'
8a393ae90f8c server (pages): post requests are now handled:
Goffi <goffi@goffi.org>
parents: 922
diff changeset
70
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
71 ## HTTP codes ##
956
dabecab10faa server (pages): impleted CSRF protection:
Goffi <goffi@goffi.org>
parents: 934
diff changeset
72 HTTP_SEE_OTHER = 303
922
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
73 HTTP_BAD_REQUEST = 400
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
74 HTTP_UNAUTHORIZED = 401
16d1084d1371 server (pages): added "None" access (page is not rendered at all) and some HTTP code constants + helper methods to get session data
Goffi <goffi@goffi.org>
parents: 917
diff changeset
75 HTTP_NOT_FOUND = 404
934
a21fee7e30ee server (constants): added HTTP_INTERNAL_ERROR and HTTP_SERVICE_UNAVAILABLE
Goffi <goffi@goffi.org>
parents: 931
diff changeset
76 HTTP_INTERNAL_ERROR = 500
a21fee7e30ee server (constants): added HTTP_INTERNAL_ERROR and HTTP_SERVICE_UNAVAILABLE
Goffi <goffi@goffi.org>
parents: 931
diff changeset
77 HTTP_SERVICE_UNAVAILABLE = 503
985
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
78
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
79 ## Cache ##
64826e69f365 pages: cache mechanism, first draft:
Goffi <goffi@goffi.org>
parents: 964
diff changeset
80 CACHE_PUBSUB = 0