* [Galene] Virtual groups v.s. new API branch
@ 2024-02-13 9:20 Dirk-Willem van Gulik
2024-02-13 13:14 ` [Galene] " Juliusz Chroboczek
0 siblings, 1 reply; 5+ messages in thread
From: Dirk-Willem van Gulik @ 2024-02-13 9:20 UTC (permalink / raw)
To: galene
I've been using a bit of a hack in
group/Update)
https://github.com/jech/galene/blob/0f53bf037368a2a82a0af30ffd07bf5943b0abb1/group/group.go#L1335
and especially
group/GetDescription()
https://github.com/jech/galene/blob/0f53bf037368a2a82a0af30ffd07bf5943b0abb1/group/group.go#L1007
to be able to have the /var/db/galene/groups directory (i.e. the -groups cmd line argument) live on a nearby webserver. Basically it just fetches the JSON remote every time.
The main reason for this is to allow the ad-hoc creation of short lived ephemeral rooms that you discover you need, rather than preconfigured. (the jsons are generated on the fly in typical 'cgi-bin' conceptual fashion).
And this http/rev-proxy separation also makes it easier to limit the access galene has; much like the galene-ldap separation/pattern.
Now I just noticed this https://github.com/jech/galene/tree/api. Fair to assume that this will be the `proper' way ?
Or is there also a plan for a more 'reactive' mechanism -- i.e. one that does not require a configuration sitting pretty `ahead' of time. We're finding this quite useful (and then lock the room one we're started).
With kind regards,
Dw
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Galene] Re: Virtual groups v.s. new API branch
2024-02-13 9:20 [Galene] Virtual groups v.s. new API branch Dirk-Willem van Gulik
@ 2024-02-13 13:14 ` Juliusz Chroboczek
2024-02-13 13:55 ` Dirk-Willem van Gulik
0 siblings, 1 reply; 5+ messages in thread
From: Juliusz Chroboczek @ 2024-02-13 13:14 UTC (permalink / raw)
To: Dirk-Willem van Gulik; +Cc: galene
> to be able to have the /var/db/galene/groups directory (i.e. the -groups
> cmd line argument) live on a nearby webserver. Basically it just fetches
> the JSON remote every time.
Right, makes sense.
> The main reason for this is to allow the ad-hoc creation of short lived
> ephemeral rooms that you discover you need, rather than
> preconfigured. (the jsons are generated on the fly in typical 'cgi-bin'
> conceptual fashion).
We use the "allow-subgroups" mechanism for that. We create a template
group with "allow-subgroups" set to true, and subgroups are created on the
fly when a user joins.
I'm not opposed to hosting group definitions on a remote server, but I'd
need to understand why the existing mechanism does not meet your use case.
> Now I just noticed this https://github.com/jech/galene/tree/api. Fair to
> assume that this will be the `proper' way ?
That's the plan, but it's still open to discussion. In order to create
a group, you'll do:
PUT /galene-api/group/groupname/ HTTP/1.1
If-None-Match: *
Content-Type: application/json
with the group definition in the body. Perhaps it's worth adding
"not-before" and "expires" fields to the group definition, and have groups
be automatically purged by the server?
> Or is there also a plan for a more 'reactive' mechanism -- i.e. one that
> does not require a configuration sitting pretty `ahead' of time. We're
> finding this quite useful (and then lock the room one we're started).
I'm not opposed, but I'd need to understand why the "allow-subgroups"
mechanism is not good enough for your use case.
-- Juliusz
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Galene] Re: Virtual groups v.s. new API branch
2024-02-13 13:14 ` [Galene] " Juliusz Chroboczek
@ 2024-02-13 13:55 ` Dirk-Willem van Gulik
2024-02-13 15:15 ` Juliusz Chroboczek
2024-03-03 16:07 ` Juliusz Chroboczek
0 siblings, 2 replies; 5+ messages in thread
From: Dirk-Willem van Gulik @ 2024-02-13 13:55 UTC (permalink / raw)
To: Juliusz Chroboczek; +Cc: galene
On 13 Feb 2024, at 14:14, Juliusz Chroboczek <jch@irif.fr> wrote:
>> to be able to have the /var/db/galene/groups directory (i.e. the -groups
>> cmd line argument) live on a nearby webserver. Basically it just fetches
>> the JSON remote every time.
>
> Right, makes sense.
>
>> The main reason for this is to allow the ad-hoc creation of short lived
>> ephemeral rooms that you discover you need, rather than
>> preconfigured. (the jsons are generated on the fly in typical 'cgi-bin'
>> conceptual fashion).
>
> We use the "allow-subgroups" mechanism for that. We create a template
> group with "allow-subgroups" set to true, and subgroups are created on the
> fly when a user joins.
That sort of works - but we ended up (perhaps shooting ourselves in the foot) by also configuring auth, presenters, if it could, or could not, get recorded, etc. And we are triggering an `XX has ben activate' workflow; with emails if people are late, etc.
> I'm not opposed to hosting group definitions on a remote server, but I'd
> need to understand why the existing mechanism does not meet your use case.
>
>> Now I just noticed this https://github.com/jech/galene/tree/api. Fair to
>> assume that this will be the `proper' way ?
>
> That's the plan, but it's still open to discussion. In order to create
> a group, you'll do:
>
> PUT /galene-api/group/groupname/ HTTP/1.1
> If-None-Match: *
> Content-Type: application/json
>
> with the group definition in the body. Perhaps it's worth adding
> "not-before" and "expires" fields to the group definition, and have groups
> be automatically purged by the server?
Not too worried about that - very easy to do with a DELETE from the configuration service once every night or so.
Once you accept it this is push - fine to keep it push to Ganele.
>> Or is there also a plan for a more 'reactive' mechanism -- i.e. one that
>> does not require a configuration sitting pretty `ahead' of time. We're
>> finding this quite useful (and then lock the room one we're started).
>
> I'm not opposed, but I'd need to understand why the "allow-subgroups"
> mechanism is not good enough for your use case.
Basically as we configure things ad-hoc differently from group to group & keep redefining groups as we reshuffle the meetings / roles at those meetings.
But that extra information is actually more `push' information; it does not need to be pulled.
So conceivably - the API with subgroups may works if you accept that you get no 'callback' from Galene telling you that a new group was created (and we set them to private - so no polling of the public-public.json).
Dw
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Galene] Re: Virtual groups v.s. new API branch
2024-02-13 13:55 ` Dirk-Willem van Gulik
@ 2024-02-13 15:15 ` Juliusz Chroboczek
2024-03-03 16:07 ` Juliusz Chroboczek
1 sibling, 0 replies; 5+ messages in thread
From: Juliusz Chroboczek @ 2024-02-13 15:15 UTC (permalink / raw)
To: Dirk-Willem van Gulik; +Cc: galene
>> We use the "allow-subgroups" mechanism for that. We create a template
>> group with "allow-subgroups" set to true, and subgroups are created on the
>> fly when a user joins.
> That sort of works - but we ended up (perhaps shooting ourselves in the
> foot) by also configuring auth, presenters, if it could, or could not,
> get recorded, etc.
I see.
>> with the group definition in the body. Perhaps it's worth adding
>> "not-before" and "expires" fields to the group definition, and have groups
>> be automatically purged by the server?
> Not too worried about that - very easy to do with a DELETE from the
> configuration service once every night or so.
Ok.
> So conceivably - the API with subgroups may works if you accept that you
> get no 'callback' from Galene telling you that a new group was created
> (and we set them to private - so no polling of the public-public.json).
If you have an auth token, you can check if a group exists simply by doing
HEAD to /galene-api/group/whatever/. No objection to implementing
a callback, though, if for some reason you cannot poll the server.
-- Juliusz
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Galene] Re: Virtual groups v.s. new API branch
2024-02-13 13:55 ` Dirk-Willem van Gulik
2024-02-13 15:15 ` Juliusz Chroboczek
@ 2024-03-03 16:07 ` Juliusz Chroboczek
1 sibling, 0 replies; 5+ messages in thread
From: Juliusz Chroboczek @ 2024-03-03 16:07 UTC (permalink / raw)
To: Dirk-Willem van Gulik; +Cc: galene
>> Perhaps it's worth adding "not-before" and "expires" fields to the
>> group definition, and have groups be automatically purged by the
>> server?
I've just done that.
https://github.com/jech/galene/commit/de0c42faaf1a72f1e850f64bc720fd2e824f8cb8
You may format ISO 8601 dates from the shell using
date -Iseconds -d tomorrow
from Go using
json.Marshal(time.Now().Add(time.Day)
and from Python by doing
(datetime.datetime.now() + datetime.timedelta(days = 1)).isoformat()
>>> Or is there also a plan for a more 'reactive' mechanism -- i.e. one that
>>> does not require a configuration sitting pretty `ahead' of time. We're
>>> finding this quite useful (and then lock the room one we're started).
Not opposed, but you'd need to set your requirements more clearly. Do you
want the whole "/groups" hierarchy to be fetched over HTTP on demand?
A subtree? Individual groups?
-- Juliusz
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-03-03 16:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-13 9:20 [Galene] Virtual groups v.s. new API branch Dirk-Willem van Gulik
2024-02-13 13:14 ` [Galene] " Juliusz Chroboczek
2024-02-13 13:55 ` Dirk-Willem van Gulik
2024-02-13 15:15 ` Juliusz Chroboczek
2024-03-03 16:07 ` Juliusz Chroboczek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox