Skip to content

Conversation

@mdavidsaver
Copy link
Member

The start of a longer term project to make pvxget and friends into suitable replacements for pvget et. al. from pvAccessCPP.

Adds JSON parsing for pvxput (breaks support for Base 3.14). Provisionally expose parsing as public API with pvxs/json.h.

Replace usage of getopt() with more portable and unit-testable argument parsing. Leverage this to allow unit-testing of pvxput.

Comment on lines +21 to +23
#ifndef REALMAIN
# define REALMAIN main
#endif
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: instead of requiring this plumbing, would it make sense to move the implementation into a separate object file (or even into the pvxs library, this way people could "exec" into pvxput with a simple function call) and have int main(int argc, char **argv) { return pvxput(argc, argv); }?

That seems easier to understand/maintain, and removes the need for macros and to include a .cpp file into the test.

@mdavidsaver mdavidsaver changed the title WIP: pvxpust JSON and CLI testing framework WIP: pvxput JSON and CLI testing framework Mar 7, 2025
FreddieAkeroyd pushed a commit to FreddieAkeroyd/pvxs that referenced this pull request Apr 9, 2025
…hn documentation (epics-base#78)

* "Add LDAP and Kerberos quick start guides with detailed SPVA documentation updates and certificate management improvements. Corrected terminology in authenticator-related code and adjusted supervisord config to run as root."

* "Remove unused CSS styles and redundant imports from style.css"

* "Add normalize.css, update SPVA documentation with LDAP-specific configurations and syntax fixes"

* "Revamp LDAP Authenticator Quick Start: enhanced clarity, streamlined instructions, and updated containerized setup with PVXS examples for streamlined deployment."

* "Remove unused CSS styles and normalize.css import from documentation styling."

* "Set default DOCKER_USERNAME to 'georgeleveln' in multiple Dockerfiles"

* "Replace `--no-cache` with `--pull` in Docker build scripts to ensure fetching the latest base image versions."

* "Remove explicit username from 'docker login' command in build scripts"

* "Fix Dockerfile issues by reordering CONFIG_SITE.local setup and PVXS rebuild steps for both spva_ldap and spva_krb configurations."

* "Standardize numbering format in documentation and add build-all.sh script for Docker example"

* "Update terminology in documentation: abbreviate authenticator names and fix typo in 'Standard Authenticator'"

* "Add Material Icons, improve SPVA documentation with icons and formatting, and introduce enhanced step-by-step guides"

* "Refactor documentation, glossary, and authenticator setup for clarity and consistency.
- Standardized formatting using monospaced syntax (``...``) for technical terms and variables across multiple files.
- Updated terms for concise naming (e.g., 'Cert Management', 'AuthN/AuthZ').
- Enhanced explanations in the glossary for PKCS#12, SKID, and Kerberos concepts.
- Reordered Makefile inclusions for cleaner conditional authenticator handling.
- Revised Secure PVAccess authentication/authorization docs with improved detail on settings and methods.
- Added comprehensive guidance for environment variables and custom authenticator integration."

* "Expand SPVA quickstart documentation to include detailed Kerberos setup: Added steps for installing and configuring KDC, kadmin, Kerberos users, rebuilding pvxs, creating keytabs, certificates, and securing client/server communication with TLS."

* `Update LDAP quick start documentation: Add setup, configuration, and service instructions for LDAP, SSSD, and PVAccess with TLS and certificates.`

* "Update SPVA Quickstart LDAP docs: add LDAP config verification steps, renumber sections, and enhance client/softioc examples."

* Issue epics-base#67 : Disambiguate CA from Certificate Authority throughout examples and code

- Replaced "Root CA" references with "Root Certificate Authority" across documentation and code for clarity.
- Updated configuration options and environment variables to consistently reflect the "Certificate Authority" terminology.
- Renamed variables, functions, and file paths for keychain files from "CA" to "CERT_AUTH".
- Adjusted instructions and comments to align with the new naming conventions.
- Improved documentation for PVACertificateStatus and OCSP response creation functionality.

* Issue epics-base#67 : Disambiguate CA from Certificate Authority throughout examples and code

"Add --no-cache flag to Docker build commands in all build scripts to ensure fresh image creation."

* Revert libevent submodule pointer to commit 112421c8fa4840acd73502f2ab6a674fc025de37

* Issue epics-base#58 : Print out the values used for PVACMS on startup

- Updated environment variable names for consistency (e.g., `EPICS_PVA_AUTH_STD_ORG` → `EPICS_PVA_AUTH_ORGANIZATION`).
- Standardized configuration definitions and added `updateDefs` methods across authentication modules (std, krb, ldap, cms) to consolidate updates.
- Enhanced logging of "effective configuration" during runtime for easier debugging and transparency.
- Improved formatting and output for PVACMS certificate management service details.
- Added missing includes and refined comments/documentation for clarity.
- Adjusted documentation and style for alignment with changes.

* Issue epics-base#58 : Print out the values used for PVACMS on startup

"Refactor to standardize code formatting across multiple modules, including function signatures, parameter spacing, and line alignment."

* "Issue epics-base#58 : Print out the values used for PVACMS on startup

Mark AuthNLdap and related classes as `final`, add enhanced configuration methods, placeholders, and help text for LDAP authenticator, and document additional environment variable handling for PVACMS and Kerberos."

* "Issue epics-base#58 : Print out the values used for PVACMS on startup

Update PVACMS documentation with detailed certificate management configuration, updated keychain file paths, and service metadata."

* "Issue epics-base#58 : Print out the values used for PVACMS on startup

Enhance LDAP and Kerberos authentication documentation and configuration. Added detailed parameter tables and clarified usage for authnldap and authnkrb tools. Improved examples and corrected formatting issues in docs and code comments."

* "Issue epics-base#58 : Remove default “EPICS.ORG” from help text of authnkrb

Remove default 'EPICS.ORG' realm from Kerberos configuration and help text. Add dynamic realm fetching from Kerberos ticket if unset. Enhance documentation for authnldap and authnkrb tools, including detailed parameter tables, improved examples, and fixed formatting inconsistencies in docs and comments."

* "Issue epics-base#64 : Remove default “EPICS.ORG” from help text of authnkrb

Remove default 'EPICS.ORG' realm from Kerberos configuration and help text. Add dynamic realm fetching from Kerberos ticket if unset. Enhance documentation for authnldap and authnkrb tools, including detailed parameter tables, improved examples, and fixed formatting inconsistencies in docs and comments."

* "Issue epics-base#64 : Remove default “EPICS.ORG” from help text of authnkrb

Clarify behavior for `--realm` option: default to ticket-derived realm if unspecified."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants