Software Design Description: Deleted Devices Report

This document describes the logging mechanism for tracking deleted devices within the system and generating reports for audit and operational analysis.

1. Overview

This feature introduces a logging mechanism for tracking deleted devices within the system and generating reports for audit and operational analysis. Devices deleted either manually, via API, by ACS, or through auto-deletion are logged. Devices that are re-registered are removed from this log.

2. Database Changes

A new table cpe_deleted_log is introduced in schema ftacs:

<changeSet id="v6.4.8.35433-1" author="vadim">
  <createTable tableName="cpe_deleted_log" schemaName="ftacs">
    <column name="id" type="${number}" autoIncrement="true">
      <constraints primaryKey="true" nullable="false" primaryKeyName="PK_CPE_DELETED_LOG"/>
    </column>
    <column name="cpe_id" type="${number}">
      <constraints nullable="false"/>
    </column>
    <column name="serial" type="varchar(64)">
      <constraints nullable="false"/>
    </column>
    <column name="isp_id" type="${number}"/>
    <column name="manufacturer" type="varchar(64)"/>
    <column name="model" type="varchar(64)"/>
    <column name="creator" type="varchar(64)"/>
    <column name="last_connection" type="${date}"/>
    <column name="registered" type="${date}"/>
    <column name="created" type="${date}">
      <constraints nullable="false"/>
    </column>
  </createTable>

  <createIndex tableName="cpe_deleted_log" schemaName="ftacs"
               indexName="cpe_deleted_log_manuf_idx" unique="false">
    <column name="manufacturer"/>
  </createIndex>

  <createIndex tableName="cpe_deleted_log" schemaName="ftacs"
               indexName="cpe_deleted_log_model_idx" unique="false">
    <column name="model"/>
  </createIndex>

  <createIndex tableName="cpe_deleted_log" schemaName="ftacs"
               indexName="cpe_deleted_log_serial_idx" unique="false">
    <column name="serial"/>
  </createIndex>

  <createIndex tableName="cpe_deleted_log" schemaName="ftacs"
               indexName="cpe_deleted_log_created_idx" unique="false">
    <column name="created"/>
  </createIndex>
</changeSet>

<changeSet id="v6.4.11.35433-2" author="vadim" dbms="oracle">
  <createSequence
    incrementBy="1"
    sequenceName="CPE_DELETED_LOG_0"
    startValue="1"
    schemaName="ftacs"/>
</changeSet>

3. Web Service (WS) Changes

Method Affected: deleteCPE

Changes:

  • A new optional field creator is added to the deleteCPE request payload.

  • This value is stored in the creator field of cpe_deleted_log.

  • Caller modules (UI/API/etc.) must now supply the creator value when invoking deleteCPE.

4. Backend Implementation

4.1. On Device Deletion

  • A row is inserted into cpe_deleted_log with the relevant device details.

  • The creator field is set to:

    • Value from deleteCPE.creator if provided,

    • "Auto-delete" if triggered by the weak device deletion job,

    • "ACS" if deleted internally by ACS.

4.2. On Device Registration

  • If a device with the same serial exists in cpe_deleted_log, that row is deleted upon successful re-registration.

5. WS Callers (UI/API/DelDev/etc.)

All callers of the deleteCPE method must:

  • Include the new creator field in the request payload.

  • Set appropriate values like Admin, API, Auto-delete, ACS, etc., based on the deletion context.

6. Reporting Requirements

  • New UI report section: CPEAdmin → Reports → Deleted devices

  • Report fields include: Serial number, Manufacturer, Model, Registration date, Last connection, Deleted, Deleted By.

  • Export support: HTML.

  • Re-registered devices are excluded from this report.

Deleted devices report menu entry in CPEAdmin
Deleted devices report list with filtering options
Deleted devices report detail view showing device information
  • List of deleted devices present with descending sorting by "Deleted" column by default. No manual sorting available.

  • "Deleted by" value being taken from "ApplicationShortName" GUI setting. For APIs it is hardcoded as "API" value.