Skip to content

carma12/freeipa-webui

This branch is up to date with freeipa/freeipa-webui:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d5f8ae0 · Mar 7, 2025
Sep 23, 2024
Dec 7, 2023
Sep 26, 2024
Oct 3, 2024
Nov 3, 2023
Mar 7, 2025
Feb 20, 2025
Aug 3, 2022
Aug 3, 2022
Dec 7, 2023
Mar 11, 2024
Aug 3, 2022
Aug 3, 2022
Mar 23, 2023
Mar 31, 2022
Aug 3, 2022
Feb 27, 2025
Feb 18, 2025
Jul 17, 2023
Dec 7, 2023
Mar 3, 2025
Mar 6, 2025
Dec 7, 2023
Sep 15, 2023

Repository files navigation

Gating tests

FreeIPA Web UI

New version of the web application for administration of FreeIPA built using React and PatternFly 4.

You can read more about the plans here.

Mock-ups

Note: these mockups are for general direction we're taking the Web UI. Some finer details and interactions will be worked out as we develop the application.

Mockup of the Vertical navigation Mockup of the Delete dialog Mockup of how scrolling affects tables Mockup of a user settings pages

Development environment

This project relies on Vagrant to set-up a virtual machine with FreeIPA installed and configured.

  1. Install requirements

Although these instructions target Fedora as host, any OS with Vagrant can be used, sshfs and libvirt are the preffered options, if you plan to use a different distro, please update Vagrantfile accordingly.

$ sudo dnf install vagrant vagrant-libvirt vagrant-sshfs
  1. Clone this repository

  2. Start and provision the guest virtual machine: vagrant up

  3. Add guest machine's IP address to your /etc/hosts pointing to its hostname, e.g:

192.168.122.5 server.ipa.demo

You can get the VM ip for the running VM by:

vagrant ssh-config | grep HostName | awk '{print $2}'

At this point you can access your live instance at https://server.ipa.demo/ipa/ui/. However, you still need to configure your front-end environment, it's up to you to choose between your host or guest machine.

If you decide to use your guest machine, just ssh into it, go to the synced folder:

$ vagrant ssh
$ cd /usr/src/freeipa-webui/

Now you can install the project's dependencies:

$ npm install

To build (and watch the project for changes), run:

$ npm run start

You can serve the project using the following command:

$ npm run serve

You can also build and serve the project for production using the following command:

$ npm run build

Now your dev environment is ready, you can do changes and see them at: https://server.ipa.demo/ipa/modern_ui/

The default credentials are admin and Secret123.

Considerations

  • Live reload is currently not available.

Testing

Integration tests

Integration testing uses Cypress library, which runs Gherkin-defined steps.

Launching the existing tests

Warning

Never run integration tests on production server. Clean-up step would delete all existing entries, e.g. users.

  1. Prepare a vagrant server as in Development Environment
  2. if you want to launch all the tests in headless mode, execute
$ npm run cypress

if you want to open graphical debugger, execute

$ npm run cypress:open

and select desired feature file you want to execute.

Adding new tests

The integration tests use the .feature suffix and can be found in the tests subfolder, together with the steps describing each feature.

Unit tests

Unit tests use jest.

Launching the existing tests

The existing tests can be launched by executing

$ npm run test

Adding new tests

The unit tests live, where the component that is being tested lives, the name should be the same, only with the .test.tsx suffix instead.

If you require FreeIPA to be running, please use integration tests instead.

License

FreeIPA Web UI is licensed under the GPLv3+ as FreeIPA.

About

FreeIPA web UI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 90.8%
  • Gherkin 9.1%
  • Other 0.1%