Connectors/ConnectorDev Certification: Difference between revisions

From BigID Developer Portal
(Created page with " To become a BigID certified developer, you need to create a connector showing your knowledge. There are no specific programming language requirements for this application, just like within BigID. We will not judge your code on syntax or style. We’ve designed this project to be flexible enough to focus on your specific domain while also being rigorous enough to verify your knowledge to BigID customers around the world. == Grading == The project consists of requireme...")
 
Line 4: Line 4:
== Grading ==  
== Grading ==  


The project consists of requirements and optional exercises. Your application MUST implement all requirements. Not implementing a single requirement will result in a failing score. After implementing all requirements, you may choose between optional exercises to get yourself to 5 points. You do not need to implement all requirements from one exercise. Any activity that generates points will count.
The project consists of requirements and optional exercises. Your application MUST implement all requirements. Not implementing a single requirement will result in a failing score. After implementing all requirements, you may choose a path for your connector. All parts of a path must be completed.


=== Requirements ===
=== Requirements ===


* Your connector must be packaged as a .zip file.
* Your connector must be packaged as a .zip file.
* The zip file must contain your connector's code, a Docker image packaged as a tar.gz, and instructions on running your connector.
* Your connector must respond to port 3000 over HTTP.
* Your connector must respond to port 3000 over HTTP.
* Your application may not rely on any external servers beyond those specified in this document.
* Your application may not rely on any external servers beyond those specified in this document.


=== Optional Exercises ===
==== Unstructured REST Connector Path ====


Complete as many of the below exercises to obtain 5 points.
This connector must read a directory containing a txt file. It must implement the following endpoints as described in the REST connector documentation:


==== System Integration Utility ====
* List what '''Containers''' exist (/objects)
* List what '''Objects''' exist (/objects/<containerName>?Offset=)
* Return the '''Metadata''' for a given object (GET /objects/<containerName>/<objectName>/describe)
* Return the '''InputStream''' for a given object (GET /objects/<containerName>/<objectName>/content-stream)


* Your application responds to an action named “synchronize” with a status of “In Progress.” This action is also specified within your manifest. (+1 points)
==== Structured Connector Path ====
* Your application validates that the BigID Token provided to the actions endpoint before performing any other action. (+1 points)
* The “synchronize” action sends a JSON array of data source IP addresses from the BigID instance to test-harness.mybigid.com. This request contains the “TESTID” environment variable in the Authorization header. (+1 points)
* If the request to test-harness.mybigid.com fails, the application will report an error status to the BigID instance callback URL. (+1 points)
* If the request to test-harness.mybigid.com succeeds, the application will report a success status to the BigID instance callback URL. (+1 points)
* Your application uploads a file named result.json as a report to BigID's action storage (https://api.bigid.com/wrappers/tpa.html#post-/executions/-executionId-/attachment). (+1 points)


==== Password Manager ====
This connector must read a directory containing a csv file. It must implement the following endpoints as described in the REST connector documentation:


* Your application responds to an action named “vault” with a status on “In Progress.” This action is also specified within your manifest. (+1 points)
* List what '''fields''' an '''object''' has (GET /objects/<objectName>/describe)
* List what '''objects''' exist (/objects)
* List what '''records''' are inside an '''object''' (GET /objects/<objectName>/records)
* Count the number of '''records''' inside an '''object''' (GET /objects/<objectName>/count)
* Return the '''fields and values''' for a given record ID (GET /objects/<objectName>/<recordID>)


==== Interactive Dashboard ====
==== SAR Connector Path ====


* Your application returns an HTML at /ui that retrieves a token using the BigID UI SDK (+1 points)
This connector must read a directory containing a JSON file. It must implement the following endpoints as described in the REST connector documentation:
* Using the BigID UI SDK, you store a value named "User" within your app's TPA storage. (+1 points)
 
* Using the BigID UI SDK, you retrieve a value named "User" from your app's TPA storage. (+1 points)
* List what '''fields''' an '''object''' has (GET /objects/<objectName>/describe)
* List what '''objects''' exist (/objects)
* Search for '''records''' in an '''object''' (POST /objects/<objectName>/sar)

Revision as of 04:38, 20 January 2025

To become a BigID certified developer, you need to create a connector showing your knowledge. There are no specific programming language requirements for this application, just like within BigID. We will not judge your code on syntax or style. We’ve designed this project to be flexible enough to focus on your specific domain while also being rigorous enough to verify your knowledge to BigID customers around the world.

Grading

The project consists of requirements and optional exercises. Your application MUST implement all requirements. Not implementing a single requirement will result in a failing score. After implementing all requirements, you may choose a path for your connector. All parts of a path must be completed.

Requirements

  • Your connector must be packaged as a .zip file.
  • The zip file must contain your connector's code, a Docker image packaged as a tar.gz, and instructions on running your connector.
  • Your connector must respond to port 3000 over HTTP.
  • Your application may not rely on any external servers beyond those specified in this document.

Unstructured REST Connector Path

This connector must read a directory containing a txt file. It must implement the following endpoints as described in the REST connector documentation:

  • List what Containers exist (/objects)
  • List what Objects exist (/objects/<containerName>?Offset=)
  • Return the Metadata for a given object (GET /objects/<containerName>/<objectName>/describe)
  • Return the InputStream for a given object (GET /objects/<containerName>/<objectName>/content-stream)

Structured Connector Path

This connector must read a directory containing a csv file. It must implement the following endpoints as described in the REST connector documentation:

  • List what fields an object has (GET /objects/<objectName>/describe)
  • List what objects exist (/objects)
  • List what records are inside an object (GET /objects/<objectName>/records)
  • Count the number of records inside an object (GET /objects/<objectName>/count)
  • Return the fields and values for a given record ID (GET /objects/<objectName>/<recordID>)

SAR Connector Path

This connector must read a directory containing a JSON file. It must implement the following endpoints as described in the REST connector documentation:

  • List what fields an object has (GET /objects/<objectName>/describe)
  • List what objects exist (/objects)
  • Search for records in an object (POST /objects/<objectName>/sar)