Skip to content

[Sprint 6] Implement Administration API Module #78

Description

@talltechy

Overview

Implement comprehensive Administration API module following v2.0 BaseAPI pattern for system administration and configuration management.

Scope

  • System settings management
  • License information retrieval
  • Console properties
  • Database backup and restore operations
  • System information and health
  • Settings configuration
  • Helper methods for common workflows
  • Integration with InsightVMClient
  • Comprehensive docstrings with type hints
  • Error handling
  • Unit tests (when test framework ready)

API Endpoints

  • GET /api/3/administration/info - Get system information
  • GET /api/3/administration/license - Get license details
  • GET /api/3/administration/settings - Get system settings
  • PUT /api/3/administration/settings - Update settings
  • GET /api/3/administration/properties - Get console properties
  • POST /api/3/administration/commands/sql - Execute SQL (admin only)

Implementation Checklist

  • Create src/rapid7/api/administration.py
  • Implement AdministrationAPI class extending BaseAPI
  • Add administration sub-client to InsightVMClient
  • Create documentation in docs/ADMINISTRATION_API.md
  • Update Memory Bank (activeContext.md, progress.md)
  • Create feature branch: feature/issue-{number}-administration-api

Key Features

  • System Info: Version, uptime, memory, CPU usage
  • License Management: Expiration, asset limits, feature availability
  • Settings: SMTP, authentication, session timeout, etc.
  • Database: Backup status, size, connection info
  • Console Properties: JVM settings, environment variables
  • Helper Methods: check_health(), get_license_status(), is_licensed_for()

System Information Includes

  • InsightVM version and build
  • Operating system details
  • Java version and memory settings
  • Database type and version
  • Disk space usage
  • Active scans and engines

Estimated Size

~300-350 lines of code

Definition of Done

  • AdministrationAPI module implemented with all endpoints
  • Integrated with InsightVMClient as client.administration
  • Documented with usage examples
  • Memory Bank updated
  • PR created and ready for review

Security Notes

  • Most operations require Global Administrator role
  • Sensitive information should be handled carefully
  • Log all administrative actions

References

  • Context7 API Documentation: /riza/rapid7-insightvm-api-docs
  • BaseAPI Pattern: src/rapid7/api/base.py

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions