Skip to content

Commit e7a3f61

Browse files
committed
[gsoc25] Updated cert templates, added mass commands
1 parent bd34505 commit e7a3f61

File tree

4 files changed

+93
-5
lines changed

4 files changed

+93
-5
lines changed

developer/gsoc-ideas-2025.rst

+92-5
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,95 @@ General suggestions and warnings
4949
Project Ideas
5050
-------------
5151

52-
Certificate Generator Templates
53-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52+
Mass Commands
53+
~~~~~~~~~~~~~
54+
55+
.. image:: ../images/gsoc/ideas/2025/mass-commands.png
56+
57+
.. important::
58+
59+
Languages and technologies used: **Python**, **Django**,
60+
**JavaScript**, **WebSockets**, **REST API**.
61+
62+
**Mentors**: *Federico Capoano*, *Gagan Deep*, *Purhan Kaushik*.
63+
64+
**Project size**: 175 hours.
65+
66+
**Difficulty rate**: medium.
67+
68+
This project idea aims to extend OpenWISP's remote device management
69+
capabilities by enabling users to execute shell commands on multiple
70+
devices simultaneously. Currently, OpenWISP supports executing commands on
71+
a single device at a time. This project will introduce a bulk execution
72+
feature while maintaining the existing security, rules, and limitations of
73+
the single-device command execution feature.
74+
75+
The mass command operation will be accessible from two main entry points:
76+
77+
- An admin action on the device list page, allowing users to select
78+
multiple devices and send a shell command in bulk.
79+
- A dedicated mass command admin section, where users can initiate bulk
80+
command execution with various targeting options:
81+
82+
- All devices in the system (restricted to superusers).
83+
- All devices within a specific organization.
84+
- All devices within a specific device group.
85+
- All devices within a specific geographic location.
86+
- Specific selected devices.
87+
88+
The UI will guide users step-by-step, dynamically displaying relevant
89+
fields based on the selected target scope. For example, if a user selects
90+
"All devices in a specific organization", an auto-complete list of
91+
organizations will be displayed next.
92+
93+
The system will provide real-time tracking of command execution results.
94+
Inspired by OpenWISP Firmware Upgrader's mass upgrade feature, the UI will
95+
receive live updates via WebSockets, displaying command output as soon as
96+
it is received from the devices. Additionally:
97+
98+
- The device detail page will show executed commands under the "Recent
99+
Commands" tab.
100+
- Commands that were part of a mass operation will be clearly marked, with
101+
a link to the corresponding mass command operation page.
102+
103+
To support API-based management, the REST API will be extended with the
104+
following capabilities:
105+
106+
- Create new mass command operations.
107+
- Retrieve mass command operations and their results (with pagination).
108+
- Delete mass command operations.
109+
- Modify the single-shell command API to reference the mass command
110+
operation ID if applicable.
111+
112+
Prerequisites to work on this project
113+
+++++++++++++++++++++++++++++++++++++
114+
115+
Applicants must demonstrate a solid understanding of Python, Django, HTML,
116+
CSS, JavaScript, WebSockets, and `OpenWISP Controller
117+
<https://github.com/openwisp/openwisp-controller>`__.
118+
119+
Expected outcomes
120+
+++++++++++++++++
121+
122+
- Implementation of mass shell command execution in OpenWISP, replicating
123+
the rules and limitations of single-device execution.
124+
- Development of an intuitive UI with the Django admin for selecting
125+
devices and tracking command results in real-time.
126+
- Admin action for device list page.
127+
- Enhancement of the device detail page to reflect mass command history
128+
for individual devices.
129+
- Extension of the REST API to support mass command operations.
130+
- Comprehensive automated tests covering the new feature.
131+
- Updated documentation, including:
132+
133+
- Feature description with usage instructions.
134+
- A short example usage video for YouTube that we can showcase on the
135+
website.
136+
137+
X.509 Certificate Generator Templates
138+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139+
140+
.. image:: ../images/gsoc/ideas/2025/x509-templates.webp
54141

55142
.. important::
56143

@@ -63,7 +150,7 @@ Certificate Generator Templates
63150

64151
**Difficulty rate**: medium.
65152

66-
This GSoC project aims to enhance OpenWISPs certificate management
153+
This GSoC project aims to enhance OpenWISP's certificate management
67154
capabilities by enabling the generation of x509 certificates for general
68155
use, beyond OpenVPN.
69156

@@ -81,7 +168,7 @@ provide configurable options, including:
81168
- Key length
82169
- Digest algorithm
83170

84-
If left unspecified, these options should default to the CAs standard
171+
If left unspecified, these options should default to the CA's standard
85172
settings.
86173

87174
Prerequisites to work on this project
@@ -97,7 +184,7 @@ Expected outcomes
97184
- Implement a new certificate template type in OpenWISP to support
98185
general-purpose x509 certificate generation.
99186
- Allow users to select a CA and configure certificate properties.
100-
- Integrate with OpenWISPs configuration management to expose certificate
187+
- Integrate with OpenWISP's configuration management to expose certificate
101188
details (public key, private key, and UUID) as variables for automated
102189
deployment.
103190
- Write automated tests to ensure the correctness and reliability of the
106 KB
Loading
80.8 KB
Binary file not shown.

spelling_wordlist.txt

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ filesystem
7676
firewalld
7777
firmware
7878
firmwares
79+
formatter
7980
fping
8081
freeradius
8182
frontend

0 commit comments

Comments
 (0)