You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by se...@apache.org on 2021/12/29 00:29:30 UTC

[incubator-ponymail-foal] branch master updated (2871668 -> 5c4a903)

This is an automated email from the ASF dual-hosted git repository.

sebb pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git.


    from 2871668  ES get strict
     new 6d02e81  Extract various versions
     new 5c4a903  Update server version

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 server/endpoints/preferences.py | 9 +++++++++
 server/main.py                  | 5 +++++
 server/plugins/background.py    | 7 +++++++
 server/server_version.py        | 2 +-
 4 files changed, 22 insertions(+), 1 deletion(-)

[incubator-ponymail-foal] 02/02: Update server version

Posted by se...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git

commit 5c4a903db6556e019083f3ce311329c43b2c8268
Author: Sebb <se...@apache.org>
AuthorDate: Wed Dec 29 00:29:22 2021 +0000

    Update server version
---
 server/server_version.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/server_version.py b/server/server_version.py
index 0f846d3..b41632c 100644
--- a/server/server_version.py
+++ b/server/server_version.py
@@ -1,2 +1,2 @@
 # This file is generated by server/update_version.sh
-PONYMAIL_SERVER_VERSION = '80e7bec'
+PONYMAIL_SERVER_VERSION = '6d02e81'

Re: [incubator-ponymail-foal] 01/02: Extract various versions

Posted by Sebb <se...@apache.org>.

On 2021/12/29 17:48:23 Daniel Gruno wrote:
> On 29/12/2021 18.29, sebb@apache.org wrote:
> > This is an automated email from the ASF dual-hosted git repository.
> > 
> > sebb pushed a commit to branch master
> > in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git
> > 
> > commit 6d02e81d1ee747d0cb8c56cb9b32dd152835c707
> > Author: Sebb <se...@apache.org>
> > AuthorDate: Wed Dec 29 00:28:55 2021 +0000
> > 
> >      Extract various versions
> > ---
> >   server/endpoints/preferences.py | 9 +++++++++
> >   server/main.py                  | 5 +++++
> >   server/plugins/background.py    | 7 +++++++
> >   3 files changed, 21 insertions(+)
> > 
> > diff --git a/server/endpoints/preferences.py b/server/endpoints/preferences.py
> > index dcf49b1..c082a50 100644
> > --- a/server/endpoints/preferences.py
> > +++ b/server/endpoints/preferences.py
> > @@ -29,7 +29,16 @@ import fnmatch
> >   async def process(
> >       server: plugins.server.BaseServer, session: plugins.session.SessionObject, indata: dict
> >   ) -> typing.Union[dict, aiohttp.web.Response]:
> > +
> > +    versions: dict = {
> > +        "server": server.server_version,
> > +        "foal": server.foal_version,
> > +        "elasticsearch_engine": server.engine_version,
> > +        "elasticsearch_library": server.library_version
> > +    }
> 
> I think this should be configurable defaulting to off. We're essentially 
> exposing backend information here that could potentially be exploited.

Not all of it has the same sensitivity.  For example, the foal version gives little away and could be important for signalling API enhancements.  The server version is a bit more sensitive,  so maybe could be restricted to login users. Likewise the ES versions. 

> 
> > +
> >       prefs: dict = {"login": {}}
> > +    prefs['versions'] = versions
> >       lists: dict = {}
> >       for ml, entry in server.data.lists.items():
> >           if "@" in ml:
> > diff --git a/server/main.py b/server/main.py
> > index 09fc483..b7e9447 100644
> > --- a/server/main.py
> > +++ b/server/main.py
> > @@ -66,6 +66,11 @@ class Server(plugins.server.BaseServer):
> >           self.server = None
> >           self.streamlock = asyncio.Lock()
> >           self.api_logger = None
> > +        self.foal_version = PONYMAIL_FOAL_VERSION
> > +        self.server_version = PONYMAIL_SERVER_VERSION
> > +        # provided by background.py
> > +        self.library_version: str
> > +        self.engine_version: str
> >   
> >           # Make a pool of database connections for async queries
> >           pool_size = self.config.database.pool_size
> > diff --git a/server/plugins/background.py b/server/plugins/background.py
> > index d61f872..cc08052 100644
> > --- a/server/plugins/background.py
> > +++ b/server/plugins/background.py
> > @@ -24,6 +24,7 @@ import sys
> >   import time
> >   
> >   from elasticsearch_dsl import Search
> > +from elasticsearch import VERSION as ES_VERSION
> >   
> >   import plugins.configuration
> >   import plugins.server
> > @@ -215,6 +216,12 @@ async def run_tasks(server: plugins.server.BaseServer) -> None:
> >   
> >           Generally runs every 2½ minutes, or whatever is set in tasks/refresh_rate in ponymail.yaml
> >       """
> > +
> > +    # Initial setup
> > +    server.library_version = ".".join([str(v) for v in ES_VERSION])
> > +    db = plugins.database.Database(server.config.database)
> > +    server.engine_version = (await db.info())['version']['number']
> > +
> >       while True:
> >           async with ProgTimer("Gathering list of archived mailing lists"):
> >               try:
> 
> 

Re: [incubator-ponymail-foal] 01/02: Extract various versions

Posted by Daniel Gruno <hu...@apache.org>.
On 29/12/2021 18.29, sebb@apache.org wrote:
> This is an automated email from the ASF dual-hosted git repository.
> 
> sebb pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git
> 
> commit 6d02e81d1ee747d0cb8c56cb9b32dd152835c707
> Author: Sebb <se...@apache.org>
> AuthorDate: Wed Dec 29 00:28:55 2021 +0000
> 
>      Extract various versions
> ---
>   server/endpoints/preferences.py | 9 +++++++++
>   server/main.py                  | 5 +++++
>   server/plugins/background.py    | 7 +++++++
>   3 files changed, 21 insertions(+)
> 
> diff --git a/server/endpoints/preferences.py b/server/endpoints/preferences.py
> index dcf49b1..c082a50 100644
> --- a/server/endpoints/preferences.py
> +++ b/server/endpoints/preferences.py
> @@ -29,7 +29,16 @@ import fnmatch
>   async def process(
>       server: plugins.server.BaseServer, session: plugins.session.SessionObject, indata: dict
>   ) -> typing.Union[dict, aiohttp.web.Response]:
> +
> +    versions: dict = {
> +        "server": server.server_version,
> +        "foal": server.foal_version,
> +        "elasticsearch_engine": server.engine_version,
> +        "elasticsearch_library": server.library_version
> +    }

I think this should be configurable defaulting to off. We're essentially 
exposing backend information here that could potentially be exploited.

> +
>       prefs: dict = {"login": {}}
> +    prefs['versions'] = versions
>       lists: dict = {}
>       for ml, entry in server.data.lists.items():
>           if "@" in ml:
> diff --git a/server/main.py b/server/main.py
> index 09fc483..b7e9447 100644
> --- a/server/main.py
> +++ b/server/main.py
> @@ -66,6 +66,11 @@ class Server(plugins.server.BaseServer):
>           self.server = None
>           self.streamlock = asyncio.Lock()
>           self.api_logger = None
> +        self.foal_version = PONYMAIL_FOAL_VERSION
> +        self.server_version = PONYMAIL_SERVER_VERSION
> +        # provided by background.py
> +        self.library_version: str
> +        self.engine_version: str
>   
>           # Make a pool of database connections for async queries
>           pool_size = self.config.database.pool_size
> diff --git a/server/plugins/background.py b/server/plugins/background.py
> index d61f872..cc08052 100644
> --- a/server/plugins/background.py
> +++ b/server/plugins/background.py
> @@ -24,6 +24,7 @@ import sys
>   import time
>   
>   from elasticsearch_dsl import Search
> +from elasticsearch import VERSION as ES_VERSION
>   
>   import plugins.configuration
>   import plugins.server
> @@ -215,6 +216,12 @@ async def run_tasks(server: plugins.server.BaseServer) -> None:
>   
>           Generally runs every 2½ minutes, or whatever is set in tasks/refresh_rate in ponymail.yaml
>       """
> +
> +    # Initial setup
> +    server.library_version = ".".join([str(v) for v in ES_VERSION])
> +    db = plugins.database.Database(server.config.database)
> +    server.engine_version = (await db.info())['version']['number']
> +
>       while True:
>           async with ProgTimer("Gathering list of archived mailing lists"):
>               try:


[incubator-ponymail-foal] 01/02: Extract various versions

Posted by se...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git

commit 6d02e81d1ee747d0cb8c56cb9b32dd152835c707
Author: Sebb <se...@apache.org>
AuthorDate: Wed Dec 29 00:28:55 2021 +0000

    Extract various versions
---
 server/endpoints/preferences.py | 9 +++++++++
 server/main.py                  | 5 +++++
 server/plugins/background.py    | 7 +++++++
 3 files changed, 21 insertions(+)

diff --git a/server/endpoints/preferences.py b/server/endpoints/preferences.py
index dcf49b1..c082a50 100644
--- a/server/endpoints/preferences.py
+++ b/server/endpoints/preferences.py
@@ -29,7 +29,16 @@ import fnmatch
 async def process(
     server: plugins.server.BaseServer, session: plugins.session.SessionObject, indata: dict
 ) -> typing.Union[dict, aiohttp.web.Response]:
+
+    versions: dict = {
+        "server": server.server_version,
+        "foal": server.foal_version,
+        "elasticsearch_engine": server.engine_version,
+        "elasticsearch_library": server.library_version
+    }
+
     prefs: dict = {"login": {}}
+    prefs['versions'] = versions
     lists: dict = {}
     for ml, entry in server.data.lists.items():
         if "@" in ml:
diff --git a/server/main.py b/server/main.py
index 09fc483..b7e9447 100644
--- a/server/main.py
+++ b/server/main.py
@@ -66,6 +66,11 @@ class Server(plugins.server.BaseServer):
         self.server = None
         self.streamlock = asyncio.Lock()
         self.api_logger = None
+        self.foal_version = PONYMAIL_FOAL_VERSION
+        self.server_version = PONYMAIL_SERVER_VERSION
+        # provided by background.py
+        self.library_version: str
+        self.engine_version: str
 
         # Make a pool of database connections for async queries
         pool_size = self.config.database.pool_size
diff --git a/server/plugins/background.py b/server/plugins/background.py
index d61f872..cc08052 100644
--- a/server/plugins/background.py
+++ b/server/plugins/background.py
@@ -24,6 +24,7 @@ import sys
 import time
 
 from elasticsearch_dsl import Search
+from elasticsearch import VERSION as ES_VERSION
 
 import plugins.configuration
 import plugins.server
@@ -215,6 +216,12 @@ async def run_tasks(server: plugins.server.BaseServer) -> None:
 
         Generally runs every 2½ minutes, or whatever is set in tasks/refresh_rate in ponymail.yaml
     """
+
+    # Initial setup
+    server.library_version = ".".join([str(v) for v in ES_VERSION])
+    db = plugins.database.Database(server.config.database)
+    server.engine_version = (await db.info())['version']['number']
+
     while True:
         async with ProgTimer("Gathering list of archived mailing lists"):
             try: