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: Johan W, Johan L, Shayna, Roland, Hannah S
0 - Agenda bash
1 - Project review
a. General -
b. OIDC libraries - https://github.com/IdentityPython (idpy-oidc,
JWTConnect-Python-CryptoJWT, etc)
- Roland has been working with digital wallets - changes in idpy-oidc
- assumed identity had one role at a time, but openid federation does
away with that - can be many things at the same time - e.g.
oauth client
and oidc RP at the same time
- had to go back through code to cope with this - especially when
dealing with metadata, registering what happens in both the
cases above;
how to deal with registering both with an AS and an OP (how
to deal wth
things like provider information)
- changes in wallet system creates changes in the foundation
- At the end of November, there will be a demo in Paris with
social security information - 10 different countries will all
be demoing
the same thing. One wallet, 10 different information providers.
- starting today they are to deliver docker containers
- they will set up trust layer/wallet provider - Greek wwWallet
- built in cooperation with gunet, sunet and yubikey
- Germany is participating - they are not fond of openid
federation and want the trust layer to be different.
- Sweden is not involved.
c. Satosa - https://github.com/IdentityPython/SATOSA
- SATOSA doesn't always do what Roland expects as he's working with it
- Hannah would like to get Single logout back on the front burner and
figure out logistics between herself, Ali, Ivan and Matthew to make it
happen.
d. pySAML2 - https://github.com/IdentityPython/pysaml2
e. Any other project (pyFF, djangosaml2, pyMDOC-CBOR, etc)
- Mikael Frykholm from Sunet is working to take over as program manager
for pyff.- a new release is expected soon.
- Roland plans to retire at the end of this year - there is work to
gather people to take over his work.
2 - AOB
a. New time - Wednesdays at 7:00 am Eastern time. Need to make sure this
does not conflict with the meeting that Johan L, Johan W and Ivan have with
Leif on the last Wednesday of every month. Next meeting will be 6 November,
then every two weeks through the end of the year. Will restart on 8 January
in 2025.
Sorry for the delay in getting these out.
Attendees: Johan W, Johan L, Shayna, Ivan, Roland, Matthew E.
0 - Agenda bash
1 - Project review
a. General -
b. OIDC libraries - https://github.com/IdentityPython (idpy-oidc,
JWTConnect-Python-CryptoJWT, etc)
- Roland has merged some existing MRs, including:
- Comparing uris for auth and oidc RPs and clients - special handling
defined for oauth native clients (application on a mobile
phone or on a
computer - not web application).
https://github.com/IdentityPython/idpy-oidc/pull/107
- Pending MR about resource indicators which will be updated
again. RFC defines how token that is generated through an openid
flow will
be used by a specific target. Work is finishing up on this.
https://github.com/IdentityPython/idpy-oidc/pull/102
- The effect is that the token will have certain audience values that
have been requested, but there are many cases where you need to apply
policies about which client requests can access certain
services, and this
may also be combined with scopes, limiting what you can ask
of a service.
Audience policies - how you can specify how the relationship between a
client, servives and scopes actually works. This is different
from how you
request a specific audience to become part of a token. There
is no PR for
this but there are discussions going on how it should be implemented.
- idpy-oidc -native clients can request different schemes - the
control is given back to the application rather than the browser. More
policies and configurations for these kind of things are coming.
- Roland has been working on wallets on his own fork of idpy-oidc and
sending back updates.
- new release for pyop - still in use but will be slowly deprecated.
c. Satosa - https://github.com/IdentityPython/SATOSA
- Ivan has been working on other projects
- will be backporting things that were added for EOSC
- will be merging things, creating smaller releases.
- some work on pyop, anything easy on pysaml2 and satosa
- PR-396 <https://github.com/IdentityPython/SATOSA/pull/396> is
part of a series of PRs created by Sven Haardiek
<https://github.com/shaardie> around ldap_attribute_store
(395-398). Ivan will go ahead and merge all of them. 398 was
trickier but
Ivan will test and merge if it doesn't break anything.
- Should create a ticket to add tests - going to go ahead and
merge because they are an optional microservice.
- Kristof wants his MR merged - support for path elements in the
base url of satosa - will probably talk more about that.
- Matthew's MR https://github.com/IdentityPython/SATOSA/pull/454 -
maybe take this into account for AOB below.
d. pySAML2 - https://github.com/IdentityPython/pysaml2
- In the same state as satosa above
e. Any other project (pyFF, djangosaml2, pyMDOC-CBOR, etc)
- pyff - Leif did a few merges. Work around trust info specification -
working group around this and to rename it.
https://github.com/IdentityPython/pyFF/pull/271
2 - AOB
- Matthew previously talked about a POC for code style and github
actions - he now has an intern that will be working on this -
- would like to pick a relatively smaller library, maybe pysaml2, and
provide a POC in a branch which will be reviewed in November
so the intern
can get feedback. Matthew had suggested Python black for code
style, using
pre-commit to do the checking, running out of github actions so that
linting and tests would happen automatically on pull requests.
- From Ivan:
- We have some things already but they do not run automatically.
So we have a basis but it can be extended.
- On pysaml2 we have a few relevant MRs:
- https://github.com/IdentityPython/pysaml2/pull/882
- https://github.com/IdentityPython/pysaml2/pull/816
- We also have a devs guide
-
https://github.com/IdentityPython/pysaml2/blob/master/DEVELOPERS.md
- and linters configured:
-
https://github.com/IdentityPython/pysaml2/blob/master/pyproject.toml#L200-L…
- Let's do this in a way so that it can be inherited by
other projects.
- Roland would like to find a new time for this call.
- Shayna is sending a doodle poll.