Hi Leif,
I added 2 pipes to buildin.py:
- publish_html creates static HTML views of IDPs and SPs, using XSLT based on Peter Schober’s alternative to MET;
- publish_split: similar to store, but added validUntil and creates signed XML-file per EntityDescriptor. This can be consumed dynamically by ADFS in an IDP role.
I put it directly into buildin.py because it shares some code with the sign pipe. Is this viable from your PoV - if yes, I would make an PR.
Cheers, Rainer
Hi all,
being part of Commons Conservancy brought up yet another subject,
which is whether we should add a header with license information in
every file in the projects under idpy. This is not something done in
an abstract way, there is a specific format modelling this information
(see https://spdx.org/ and https://reuse.software/ - more specifically
https://reuse.software/practices/2.0/) Still, I find it problematic.
We want to open up the question to the wider community and consider
their thoughts on this. The forwarded message below is discussing this
subject. You can see the question we posed, the answer we got and my
comments. Feel free to tell us what you think on this.
---------- Forwarded message ---------
Date: Thu, 16 May 2019 at 09:56
> ---------- Forwarded message ----------
> Date: May 8, 2019, 8:15 AM -0700
>
> > Why does CC think having a single license file per project is
> > insufficient? Our thought is that if we can avoid adding a header to
> > every single file, that would be nice, esp. given we already have this
> > info in the license file and we have the Note Well.
>
>
> this is not just our opinion, but something that is an industry and
> community standard for legal compliance these days. When companies like
> Siemens, Samsung or Honeywell use some code in one of the hundreds or
> thousands of devices and systems in their product line, they need to be
> able to provide the correct license and a download of the exact version.
> This means machine readability too.
>
I've actually observed the opposite of that. Communities abandon the
"license in every file" model, and just use a single LICENSE file in
the root of the project. The LICENSE file contains license
information, that is, it is not a single license but it has exception
sections and so on.
> To quote from https://reuse.software/practices/2.0/ :
>
> Scroll to the section "2. Include a copyright notice and license in each
> file"...
>
> "Source code files are often reused across multiple projects, taken from
> their origin and repurposed, or otherwise end up in repositories where
> they are separate from its origin. You should therefore ensure that all
> files in your project have a comment header that convey that file’s
> copyright and license information: Who are the copyright holders and
> under which license(s) do they release the file?
>
Continuing from above, the standardization of package-management
formats and tools has helped exactly with that: to avoid distribution
of single files, and instead provide packages and modules. It is bad
practice and considered a hack to copy files. Nobody liked that model
and everyone is moving away; it is unstructured, it becomes
unmanageable and it will cause problems.
> It is highly recommended that you keep the format of these headers
> consistent across your files. It is important, however, that you do not
> remove any information from headers in files of which you are not the
> sole author.
>
> You must convey the license information of your source code file in a
> standardised way, so that computers can interpret it. You can do this
> with an SPDX-License-Identifier tag followed by an SPDX expression
> defined by the SPDX specifications."
>
> (the text goes on for a while after this, to clarify the point but this
> is the basic gist of it)
>
> There is a nice Python tool to check:
>
> https://github.com/fsfe/reuse-tool
>
> I hope this makes sense
>
Well, it does not make complete sense. We're talking about licensing a
project. A project is not just code; there are data files (html, xml,
yaml, json files), binary files (archives/zip, images, audio, video,
etc), text files (configs, ini-files, etc) all "not-code". How do you
mark those files? Does the LICENSE file need a license-header? The
json format does not define comments, how do you add a header there?
If a binary file does not get a license header, why should a file with
code get one?
I would expect there to be a way to have the needed information
unified. If the files themselves cannot provide this information it
has to be external; thus the LICENSE file. If someone is worried about
somebody else re-using single files that do not have license
information (a python file, a png image, etc) there is really nothing
you can do (the DRM industry has been trying to solve for a long time;
and still your best bet is "social DRM").
Since, we're developing on open source with a permissive license, even
if someone does that, should we be happy that someone is actually
using what we built or sad that the files they copied did not have a
license header? And if they include the license information of that
copied file in their project's LICENSE file, is this solved?
Having pointed these contradictions, I am thinking that the "license
in every file" model seems to be a step backwards. It is introducing
overhead and does not really solve the problem, while at the same time
it enables a culture of bad practice (copying files around).
Cheers,
--
Ivan c00kiemon5ter Kanakarakis >:3
Attendees:
Alex Perez, Giuseppe, Heather, Ivan, Matthew
Regrets:
Roland, Scott
Notes
0 - Agenda bash
Introductions: Alexandro Perez-Mendez (JISC), working with Alex Stuart and Phil Smith
1 - Project review
a. General
Big things Ivan is looking at: making a plan to convert Satosa to use a framework (flask, fastAPI, etc); figuring out better logging and introducing parts of OpenTelemetry (https://opentelemetry.io/) into the code to help add traces and possibly switching to structured logging.
Hannah has a draft PR about logout support on Satosa. For that, we need to keep some state, and this PR offers an opportunity to consider that again.
• Do we have documentation on the schema for session storage? Session storage is a python dictionary that is not validated. A basic schema would help organize this and our migration to a new framework. Different pieces (microservices) need to have access to the same part of the state, which makes the keys and cleaning up the state more complicated. This would have to be resolved on the plugins.
• Can we rename "microservice" to "plugin"?
Any move towards supporting the wallet framework as per eIDAS 2 and the European Digital Identity Wallet Architecture and Reference Framework (https://digital-strategy.ec.europa.eu/en/library/european-digital-identity-… The ARF specifies two flows - the remote flow using OIDC and the proximate flow where RFIDs will be used. Can Satosa work with those things? The plan is to support the OIDC flows and look later at the other flows. The relevant OIDC specifications are still in draft. The Verifiable Credentials are part of what make this complicated; we need to pick a credential profile and make sure we can support that, then consider how they are signed, whether they can support selective disclosure, etc. There will be dedicated calls for this, organized by Ivan.
b. OIDC - https://github.com/IdentityPython (JWTConnect-Python-OidcRP, JWTConnect-Python-CryptoJWT, etc)
No updates
c. Satosa - https://github.com/IdentityPython/SATOSA
Looking at the following:
• https://github.com/IdentityPython/SATOSA/pull/429
• https://github.com/IdentityPython/SATOSA/pull/433
• https://github.com/IdentityPython/SATOSA/pull/427
• https://github.com/IdentityPython/SATOSA/pull/405
Expect a new release in the next week or so.
d. pySAML2 - https://github.com/IdentityPython/pysaml2
Ivan working on a fix for a Windows issue (see https://github.com/IdentityPython/pysaml2/pull/665 for a description; that PR isn't going in, but it does describe the problem). When this is ready, he will cut a new release.
Also working on https://github.com/IdentityPython/pysaml2/pull/898 ; this will also go into the new release.
e. Any other project (pyFF, djangosaml2, etc)
pyFF - Leif is preparing a new release. There have been fixes and merges, so a new release is due. Matthew is working on a docker image (as well as a thiss.js container that would use a simple HTML template to implement a centralized discovery service). Alex and JISC is interested in this work. They have a small docker compose script available that is close to working.
• https://github.com/IdentityPython/pyFF/issues/243
Note there is a thiss.io slack channel. Can continue discussion there. Can also create a pyFF channel if that would be more helpful.
2 - AOB
Note: Admin task - Pavel, one of the contributors to the independent OIDC front end to Satosa, and his team have been invited to join the OIDC channel in Slack. Need to approve their participation.
Thanks! Heather
Oh no! It’s that horrible, horrible time of here Daylight Saving Time happens in some places and not in others! Starting this Sunday, 12 March, clocks will shift forward in the US. For those of you in Europe, the clocks do not change until 26 March 2023.
Since the call is currently pinned to the US Pacific timezone, that means our call on Tuesday will happen at:
06:00 US Pacific
14:00 CET
15:00 EET
If people would like to keep the call at the usual European time, please chime in on the Slack channel before CoB on Monday, 13 March.
Tuesday, 14 March 2023, 13:00 UTC
Zoom: https://us06web.zoom.us/j/83378219417?pwd=dWFLdjRHK3BnRkZMa3VSd2lNaElpdz09
Agenda:
0 - Agenda bash
1 - Project review
a. General
b. OIDC - https://github.com/IdentityPython (JWTConnect-Python-OidcRP, JWTConnect-Python-CryptoJWT, etc)
c. Satosa - https://github.com/IdentityPython/SATOSA
d. pySAML2 - https://github.com/IdentityPython/pysaml2
e. Any other project (pyFF, djangosaml2, etc)
2 - AOB
Thanks! Heather