Skip to main content

A unified and standardized interface to RACF callable services.

Project description

Build PyPi version PyPi status

SEAR Logo

Security API for RACF (SEAR)

A standardized JSON interface for RACF that enables seamless exploitation by programming languages that have a foreign language interface for C/C++ and native JSON support.

Description

As automation becomes more and more prevalent, the need to manage the security environment programmatically increases. On z/OS that means managing a security product like the IBM Resource Access Control Facility (RACF). RACF is the primary facility for managing identity, authority, and access control for z/OS. There are more than 50 callable services with assembler interfaces that are part of the RACF API. The complete set of interfaces can be found in the IBM documentation.

While there are a number of languages that can be used to manage RACF, (from low level languages like Assembler to higher level languages like REXX), the need to be able to easily exploit RACF management functions using existing industry standard programming languages and even programming languages that don't exist yet is paramount. The SEAR project is focused on making RACF management functions available to all programming languages that have native JSON support and a foreign language interface for C/C++. This will make it easier to pivot to new tools and programming languages as technology, skills, and business needs continue to evolve in the foreseeable future.

Minimum z/OS & Language Versions

All versions of z/OS and the IBM Open Enterprise SDK for Python that are fully supported by IBM are supported by SEAR.

Dependencies

  • R_SecMgtOper (IRRSMO00): Security Management Operations.
  • R_Admin (IRRSEQ00): RACF Administration API.
  • R_Datalib (IRRSDL64): RACF Certificate data library.
  • RACF Subsystem Address Space: This is a dependency for both IRRSMO00 and IRRSEQ00.
  • z/OS Language Environment Runtime Support: SEAR is compiled using the IBM Open XL C/C++ 2.1 compiler, which is still fairly new and requires z/OS Language Environment service updates for runtime support.

Getting started

:bulb: Note: You can also Download & Install SEAR from GitHub

pip install pysear

Make sure you have the right authorizations, detailed in the full documentation.

How to create a simple userid using SEAR:

from sear import sear

result = sear(
    {
        "operation": "add",
        "admin_type": "user",
        "userid": "FDEGILIO",
        "traits": {
            "base:name": "FRANK D",
        },
    },
)

print(result.result)

Further examples are located under examples in the documentation.

Additional help can be found in the following communities:

Build from source

Alternatively to installing from Pip, SEAR can be built from source on a z/OS system. SEAR uses a CMake build system, and can be built via a two-step process:

cmake --preset <preset>
cmake --build --preset <preset> --target <sear,pysear>

The first command will configure the build environment and generate build scripts in a directory named build/<preset>, then the second command builds the given target.

A complete list of available CMake presets can be found in CMakePresets.json, but the most useful are:

  • default - Does not apply any special platform handling, and should work on most platforms.

  • zos - Applies the cmake/ibm-clang.cmake toolchain to the build process. This compiles the project using the IBM-Clang compiler, and works only on z/OS systems.

  • zos-pysear - Inherits from the zos preset. Used internally as part of the Python package build process, and not generally used by hand.

Build artifacts are located within the build directory.

The CMake build process builds static libraries by default. If you instead wish to build shared libraries, append -DBUILD_SHARED_LIBS=on to the CMake configure step command (the first of the two) shown above.

Maintainers

  • Bobby Tjassens Keiser
  • Emma Skovgård

Authors of RACFu

This is a fork of RACFu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysear-0.6.0.tar.gz (503.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pysear-0.6.0-py314-none-any.whl (5.5 MB view details)

Uploaded Python 3.14

pysear-0.6.0-py313-none-any.whl (5.5 MB view details)

Uploaded Python 3.13

pysear-0.6.0-py312-none-any.whl (5.5 MB view details)

Uploaded Python 3.12

File details

Details for the file pysear-0.6.0.tar.gz.

File metadata

  • Download URL: pysear-0.6.0.tar.gz
  • Upload date:
  • Size: 503.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysear-0.6.0.tar.gz
Algorithm Hash digest
SHA256 1e6fd1ee6303b62b8500e962f1553fb906452a7dda9bb68dcdfefa902a0bf5a1
MD5 ef888f937901bc4188d89d2529b207ff
BLAKE2b-256 a3043bf7fb3d8b49d8dd1ffe735e1acc5ad5e050134b2b86e1b159705a5d4df6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysear-0.6.0.tar.gz:

Publisher: publish-pysear.yml on Mainframe-Renewal-Project/sear

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysear-0.6.0-py314-none-any.whl.

File metadata

  • Download URL: pysear-0.6.0-py314-none-any.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: Python 3.14
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysear-0.6.0-py314-none-any.whl
Algorithm Hash digest
SHA256 9e02be9bea04d78b109bd8e2404d240aa5a87df8e550336e551721fae0349915
MD5 2442766309ea352493fe98764b4bf7fd
BLAKE2b-256 5f4464c1aa1b388131af620b741462ff53b65773bd033ac745ff9434ccd87bb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysear-0.6.0-py314-none-any.whl:

Publisher: publish-pysear.yml on Mainframe-Renewal-Project/sear

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysear-0.6.0-py313-none-any.whl.

File metadata

  • Download URL: pysear-0.6.0-py313-none-any.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: Python 3.13
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysear-0.6.0-py313-none-any.whl
Algorithm Hash digest
SHA256 90668d902e4ee81a0a549d776c973aa3ca57b576e88f2467a60883e6abf6d74a
MD5 ff049a5c8ab4b4b3b76b68c49ec203e0
BLAKE2b-256 a712113a9d8b610fc2b462c140eff0a66eebfea2eea1dd5c59b98655551bc0cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysear-0.6.0-py313-none-any.whl:

Publisher: publish-pysear.yml on Mainframe-Renewal-Project/sear

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pysear-0.6.0-py312-none-any.whl.

File metadata

  • Download URL: pysear-0.6.0-py312-none-any.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: Python 3.12
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pysear-0.6.0-py312-none-any.whl
Algorithm Hash digest
SHA256 0f7eb2dc345eba8e8421870536708edc29289e7908607e0a94931a3d0c13d20f
MD5 f941db067c1bbb24d99a9126a0ac9922
BLAKE2b-256 af7779b9209c475642da55efde3fdc3b3a28532929e96e65e0833d2eee2c503f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pysear-0.6.0-py312-none-any.whl:

Publisher: publish-pysear.yml on Mainframe-Renewal-Project/sear

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page