Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

decisionrulespy

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

decisionrulespy

A simple library for simple connecting to DecisionRules API

  • 3.0.5
  • PyPI
  • Socket score

Maintainers
1

DecisionRulesPy

VERSION 3 CONTAINS MAJOR CHANGES IN API INTERFACES AND NOW SUPPORTS RULEFLOWS CRUD

A simple library that allows you to easily connect to DecisionRules.io from your application.

Usage

  • Solver (DecisionTables, ScriptRules, RuleFlow)
  • Management API (CRUD operations on DecisionTables and RuleFlows)

1 - Solver

Solver is designed for solving rules made in DecisionRules application.

1.1 - Defining solver init

Before you start solving rules you need to setup an SolverApi instance. How to do so is shown below.

import decisionrules

async def solver_test():
    solver = decisionrules.SolverApi(solver_api_key)

1.2 - Defining solver method with data

Solver method expects 5 arguments

  • SolverType - enum value - mandatory
  • RuleId - str - mandatory
  • Data - dict or json str - mandatory
  • SolverStrategy - enum value - mandatory
  • Version - str - optional
async def solver_test():
    data = {"say": "Hello from python"}

    solver = decisionrules.SolverApi(api_key)

    # SolverType enum defines type of solver (Rule or Compostion)
    response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)

    response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)

1.3 Solver with custom domain

For using custom domain just add CustomDomain instance to the init method with url and protocol parameters.

async def solver_test():
    data = {"say": "Hello from python"}

    solver = decisionrules.SolverApi(api_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))
    
    response = await solver.solve(decisionrules.SolverType.RULE, get_rule, data, decisionrules.SolverStrategies.STANDARD)

    response2 = await solver.solve(decisionrules.SolverType.RULEFLOW, compo_rule, data, decisionrules.SolverStrategies.STANDARD)

2 - Management API

Management api is accessible via ManagementApi and required management api key that you can obtain in api key section in DecisionRules app.

Data for ruleflow import methods are represented as an array where index0 = RF, and index1...indexn are DTs

async def management_api_test():
    manager = decisionrules.ManagementApi(mng_key)

    #Or with custom domain

    manager = decisionrules.ManagementApi(mng_key, decisionrules.CustomDomain("YOUR_URL", decisionrules.Protocols.HTTPS))

2.1 Management API usage example

async def management_api_test():
    manager = decisionrules.ManagementApi(mng_key)

    await manager.get_rule(get_rule)
    await manager.get_rule(get_rule, "1")
    await manager.get_space(get_space)

    await manager.update_rule(put_rule, "1", put_data)
    await manager.create_rule(post_rule, post_data)
    await manager.delete_rule(delete_rule, "1")

    await manager.create_ruleflow(new_ruleflow)
    await manager.get_ruleflow(id)
    await manager.get_ruleflow(id, 1)
    await manager.update_ruleflow(id, 1, ruleflow)
    await manager.export_ruleflow(id, 1)
    await manager.export_ruleflow(id)
    await manager.import_ruleflow([new_ruleflow_with_dt], 1,)
    await manager.import_ruleflow(id, 1, [new_ruleflow_with_dt])
    await manager.import_ruleflow([new_ruleflow_with_dt])
    await manager.delele_ruleflow(id)

    await manager.getItems(tags)
    await manager.updateTags(ruleId, data, version)
    await manager.delete(ruleId, version)

2.3 All available methods in management API

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc