About JS framework
by Pierre-Yves Chibon
Good Morning Everyone,
Our infrastructure is mostly a python store, meaning almost all our apps are
written in python and most using wsgi.
However in python we are using a number of framework:
* flask for most
* pyramid for some of the biggest (bodhi, FAS3)
* Django (askbot, Hyperkitty)
* TurboGears2 (fedora-packages)
* aiohttp (python3, async app: mdapi)
While this makes sometime things difficult, these are fairly standard framework
and most of our developers are able to help on all.
However, as I see us starting to look at JS for some of our apps (fedora-hubs,
wartaa...), I wonder if we could start the discussion early about the different
framework and eventually see if we can unify around one.
This would also allow those of us not familiar with any JS framework to look at
the recommended one instead of picking one up semi-randomly.
So has anyone experience with one or more JS framework? Do you have one that
would you recommend? Why?
Thanks for your inputs,
Pierre
11 months, 1 week
Fedora and PDC, road forward
by Pierre-Yves Chibon
Good Morning Everyone,
So yesterday we held a meeting on #fedora-apps about the future of PDC in Fedora.
We kept notes in etherpad at: http://etherpad.osuosl.org/pdc_fedora
Here is the gist of it:
What do we currently store in PDC:
* modules data - the list of what modules have been built, what rpms are in them,
and which ones are active or not.
* Stream branches, branch ownership, retirement dates (EOL/SLE)
* release/life-circle tracking
* product and product versions (fedpkg gets active Fedora and EPEL releases
from product versions endpont)
* critpath boolean on packages (bodhi uses this)
* metadata from composes (RPMS/images)
* "dependency" data about which rpms depend on which other rpms and which
containers include other rpms. This is not used by anything and can be
de-prioritized, dropped. (It was originally going to be used in Freshmaker.)
Endpoints:
* release-component-relationships
* release-components
* List of all packages: fedora-packages uses this list to know what to index.
It sets up the "for loop" from which fedora-packages pulls data from all our
other systems.
Endpoints:
* global-components
After some discussion the decision we reached was:
* The "dependency" data in its current form can be dropped. It's something we'll
need in the future but the data structure will most likely need to be
adjusted so let's just drop the existing data and worry about this later.
* The critpath boolean can just be imported into bodhi itself, especially
considering that bodhi is the only tool using this flag.
* The modules data is entirely going to move into MBS
Everything else (ie: composes metadata, release/life-circle tracking,
package/branches information) will need to find a new home.
This new home will be a new django app using the Django Rest Framework (DRF) in
which we will import the PDC apps as needed (potentially adjusting them where
desired).
- kellin has agreed to be the project leader for this work but needs a team to
do the actual work.
- pingou has agreed to look for said team
If you have any worries, questions or suggestions or if you want to join the
effort, please let us know :)
Finally some links:
Minutes: https://meetbot.fedoraproject.org/fedora-apps/2018-06-11/pdc_and_fedora.2...
Minutes (text): https://meetbot.fedoraproject.org/fedora-apps/2018-06-11/pdc_and_fedora.2...
Log: https://meetbot.fedoraproject.org/fedora-apps/2018-06-11/pdc_and_fedora.2...
Have a nice day,
Pierre
5 years, 2 months
Fedora Infrastructure Authentication Roadmap
by Kevin Fenzi
Greetings.
Sorry it took so long to write this up and send it out, but here's our
proposed plan for authentication moving forward.
Please do feel free to comment or suggest changes/improvements here. Any
mistakes are mine alone. :)
Fedora Project Auth roadmap
Background/History
The Fedora project created its own authentication/user/group
management system at nearly the beginning of its existance. FAS (Fedora
Account System) (version 1) and then a rewrite (FAS2). At each of these
points other solutions were investigated and found unacceptable for
various reasons. Over the last few years, several additional
applications have been added next to FAS2 to provide additional
functionality: ipisilon has been added as a identity provider, and
FreeIPA has been added for kerberos authentication. FAS2 is still the
authoritative source of authentication data. FAS2 is currently deployed
on RHEL6 servers and won't run on RHEL7.
Also during the last few years, a new FAS re-write has been slowly in
the works. FAS3 is written in a modern framework and has a number of
functionality and interface improvements over FAS2. Additionally it can
run on RHEL7.
Goals and Critera
Maintaining authentication applications is difficult and time
consuming work, and it has always been a goal to try and move to more
industry standard applications as much as possible given our goals and
critera. The last time we looked, Some of those goals/critera include:
* User self service registration
* User self service password reset
* FPCA acceptance requirement
* Basset integration (may not be needed anymore)
* Allow Self Service groups with their own sponsors/admins
* Allow group requirements (other group first, etc)
Plan:
On discussion with FreeIPA developers and looking at how things are
setup now, we came up with a plan to get what we need, but reduce the
footprint and maintance we need to do. Many of the features we were
hoping to use in FAS3 have now been implemented upstream in
FreeIPA (2fa, fasClient syncing better, etc).
Basically we will:
* A new small wrapper type project is written (Community Account
Information API) or CAIAPI.
This small app provides the Critera listed above, talking at first to
FAS2 on the backend then, later switching to talking to FreeIPA on the
backend and providing a json API to consumers.
* Switch anything we have using the direct FAS api to use CAIAPI instead.
* Move to FreeIPA being the canonical source for authentication data.
This should just be a switch to CAIAPI, and no consumers should even
notice.
* FreeIPA still provides kerberos auth.
Note that kerberos will remain limited to use at ipsilon and koji.
* Ipsilon provides identity auth for applications, preferably with OIDC
(still provides others)
* A new small website that uses the CAIAPI json to provide end user
access / management. This thing would be in flask and needs a name still.
Since https://fedoraproject.org/wiki/Infrastructure/fas_freeipa FreeIPA
has matured and our understanding of the work required to make CAIAPI
and a small web consumer has clarified.
Pros:
* IPA handles all the storing of credentials, replication and such and
we just use it.
* Our maint goes from needing to maintain FAS2 or FAS3 to just CAIAPI
(a much smaller api) and a
very small web application.
* Easier to audit 2 small apps.
* We can try and share the CAIAPI with other open source communities
(Gnome? CentOS? others?)
Open Source Communities already using FreeIPA would be easy to add
this to.
* We can stop using fasClient in favor of ipa-client setup (no more
heavy syncing)
* The heavy security aspects will be handled by upstreams we don't
need to fully maintain
(FreeIPA, sssd, ipsilon, etc).
Cons:
* We still need to write the CAIAPI/webapp, although Patrick may have
CAIAPI already somewhat implemented.
* It feels very sad to have spent so long on FAS3 and never deploy it,
but sometimes
thats just the way things go. ;(
5 years, 2 months