Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

alert-icon-red-11.pngImage Added

 

ATTENTION:

This page has been migrated to the Tazama GitHub repository and is now located at:

https://github.com/frmscoe/docs/blob/dev/Product/Creating-and-Maintaining-Processors/Create-New-Typology.md

This page will no longer be maintained in Confluence.

Table of Contents
Image Added

About “Create Processor”:

The universal typology processor has already been developed and implemented in Actio as a standard feature of the Actio evaluation pipeline (see: Typology Processing)

  1. The typology processor will have a unique ID

  2. The typology processor will have a unique version

  3. Future Enhancement: Currently, the typology processor itself will be updated through a development and change control process to deploy new code. For the Network Map to completely control the routing of a transaction through the pipeline, the typology processor itself should be defined in the Network Map.

Steps:

  1. Create the typology configuration (see

...

  1. :

...

  1. Typology Processing | 5.5.

...

  1. Read

...

  1. typology

...

  1. configuration)

    1. The typology configuration will include the rule results scoring table: the result for each rule (or each set of the sub-rules), which will be either TRUE or FALSE, must be associated with an integer between 0 and 100

    2. The typology configuration will include the typology expression

      Image Modified
    3. If the rule processors for the typology are still to be deployed, the typology configuration could be missing or empty. When the typology processor is called on to execute the typology configuration, the typology processor will identify that no rules are in scope and no expression exists and then automatically complete the typology with a score of 0 (zero).

  2. Connect the typology

    1. Prerequisite: The typology processor must exist and be deployed to the platform.

    2. Prerequisite: A typology must be associated with an existing channel. If the channel for a typology has not yet been created, the channel must be created before the typology can be connected. (There are cascading dependencies for the transaction definition to also exist, though this is a direct prerequisite for the channel.)

    3. Future enhancement: Update the channel configuration (see: https://

...

    1. frmscoe.atlassian.net/wiki/spaces/

...

    1. FRMS/pages/

...

    1. 6324453/Channel+Aggregation+and+Decisioning+

...

    1. Processor+CADProc#6.4.-Read-channel-configuration )

      1. Optional: The typology may be added to the “proceed” set of typologies in the channel configuration, if “no action” typology result, combined with “no action” typology results from other typologies in the “proceed” set, would trigger a “proceed” instruction to the client system.

    2. Update the Network Map (see: https://

...

    1. frmscoe.atlassian.net/wiki/spaces/

...

    1. FRMS/pages/

...

    1. 6520927/Channel+Router+and+Setup+

...

    1. Processor+CRSP#3.1.-Read-Network-Map )

      1. The new typology must be linked to the channel within which it is to be executed by adding the typology to the transactions.channels.typologies object under the channel in the Network Map.

      2. The new typology must be described in the network map with the following information:

        Code Block
        "id": "028@1.0.0",
        "host": "https://gateway.openfaas:8080/function/off-typology-processor-rel-1-0-0",
        "cfg": "1.0.0",
        "rules"

...

      1. : [
      2. typology[].id The typology.id @version should reflect the ID of the specific typology processor that will be invoked for this instance of the network map. There may, at some future point, be multiple typology processors active in an Actio implementation for different scoring or monitoring schemes. Typology processors with arbitrarily different themes may then have a different ID, after which iterations or versions of a specific typology processor “theme” (hence, ID), will have separate version progression.
        The specific typology that we want to evaluate in the specific version of the typology processor is the 028 part. So, for example, if I want to evaluate typology 028 in a different typology processor, the configuration will be slightly different:

        Code Block
        "id": "028@2.0.0",
        "host": "https://gateway.openfaas:8080/function/off-typology-processor-rel-2-0-0",
        "cfg": "2.0.0",
        "rules": [

        typology[].cfg The configuration version relates to the typology being evaluated and not the typology processor doing the evaluation. A typology processor does not, currently, require any parameters for itself, but only parameters for the typology to be evaluated.

    1. Update the Transaction Configuration

      1. The new typology must be added to the transaction configuration to capture the typology thresholds for alerting.

 

Typology config sample:

Code Block
{
    "typology_name": "Typology_29."Sample",
    "id": "999@1.0.0",
    "cfg": "1.0.0",
    "typology_description": "False promotions, phishing, or social engineering scams"
"typology_processor_version": "1.0",
"typology_config_version": "1.0",

Reminder: nothing in there looks the way it does at the moment. Currently, the typology definition is as follows:

Code Block
                "typology_id": "Typology_29.1.0",
                "typology_name": "Typology_29",
                "typology_version": "1.0",
                "rules": [

Some changes will be required at some point:

The typology_id relates to… what? And how is it used?

Regardless, the typology_id should reflect the ID of the specific typology processor that will be invoked for this instance of the network map. To be more specific, the typology_id should be renamed to the typology_processor_id. There may, at some future point, be multiple typology processors active in an Actio implementation for different scoring or monitoring schemes. Typology processors with arbitrarily different themes may then have a different ID, after which iterations or versions of a specific typology processor “theme” (hence, ID), will have separate version progression.

typology_name is fine, and refers to the name of the typology as a descriptor for the typology configuration used to compose the rules into a typology score.

typology_version by itself is largely insufficient, since a typology processor may have a version, and a typology config may also have a (possibly separate) version. The current typology_version describes the version of the typology configuration that is being used, and should be renamed to the typology_configuration_version. Yes, we have been referring to the typology configuration as the typology expression, but this is probably overly specific (and not technically accurate), so we should relabel expression to configuration to be more consistent with the configuration artefacts in the rest of the evaluation pipeline.

In addition to the typology_configuration_version, we will also need a new typology_processor_version to account for versioning of the typology processor itself.

...

"rules": [
        {
            "id": "001@1.0.0",
            "cfg": "1.0.0",
            "ref": ".01",
            "true": "100",
            "false": "0"
        },
        {
            "id": "001@1.0.0",
            "cfg": "1.0.0",
            "ref": ".02",
            "true": "100",
            "false": "0"
        },
        {
            "id": "001@1.0.0",
            "cfg": "1.0.0",
            "ref": ".03",
            "true": "100",
            "false": "0"
        },
        {
            "id": "001@1.0.0",
            "cfg": "1.0.0",
            "ref": ".04",
            "true": "100",
            "false": "0"
        },
        {
            "id": "001@1.0.0",
            "cfg": "1.0.0",
            "ref": ".00",
            "true": "100",
            "false": "0"
        }
    ],
    "expression": {
        "operator": "+",
        "terms": [
            {
                "id": "001@1.0.0",
                "cfg": "1.0.0"
            }
        ]
    }
}

 

Network map sample:

Code Block
{
    "active": true,
    "messages": [
        {
            "id": "004@1.0.0",
            "host": "http://gateway.openfaas:8080/function/off-transaction-aggregation-decisioning-processor-rel-1-0-0",
            "cfg": "1.0.0",
            "txTp": "pacs.002.001.12",
            "channels": [
                {
                    "id": "001@1.0.0",
                    "host": "http://gateway.openfaas:8080/function/off-channel-aggregation-decisioning-processor-rel-1-0-0",
                    "cfg": "1.0.0",
                    "typologies": [
                        {
                            "id": "001@1.0.0",
                            "host": "http://gateway.openfaas:8080/function/off-typology-processor-rel-1-0-0",
                            "cfg": "1.0.0",
                            "rules": [
                                {
                                    "id": "002@1.0.0",
                                    "host": "http://gateway.openfaas:8080/function/off-rule-002-rel-1-0-0",
                                    "cfg": "1.0.0"
                                },
                                {
                                    "id": "016@1.0.0",
                                    "host": "http://gateway.openfaas:8080/function/off-rule-016-rel-1-0-0",
                                    "cfg": "1.0.0"
                                },
                                {
                                    "id": "017@1.0.0",
                                    "host": "http://gateway.openfaas:8080/function/off-rule-017-rel-1-0-0",
                                    "cfg": "1.0.0"
                                }                                ]
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

 

Transaction configuration sample:

Code Block
{
    "messages": [
        {
            "id": "004@1.0.0",
            "cfg": "1.0.0",
            "txTp": "pacs.002.001.12",
            "channels": [
                {
                    "id": "001@1.0.0",
                    "cfg": "1.0.0",
                    "typologies": [
                        {
                            "id": "001@1.0.0",
                            "cfg": "1.0.0",
                            "threshold": 500
                        },
                        {
                            "id": "002@1.0.0",
                            "cfg": "1.0.0",
                            "threshold": 200
                        },
                        {
                            "id": "003@1.0.0",
                            "cfg": "1.0.0",
                            "threshold": 350
                        }
                    ]
                }
            ]
        }
    ]
}