# CSV Connector ## Introduction ### Description The CSV Connector provides a way to load authoritative data from fixed record size files. ### Managed System This connector has been performed to charge authoritative data from files with CSV format or other format in other extension files.

For more information to check if your system may be synchronized with this connector you do not hesitate to contact us through our [Contact form](http://www.soffid.com/contactform/)

### Prerequisites The file must be placed in the same Synchronization Server host. The file must has the correct permissions to be readed for the Synchronization Server. ## Download and Install This addon is located in the Connectors section and its name is **Flat file plugin**.

For more information about the installation process you can visit the [Addons Getting started](https://bookstack.soffid.com/books/addons-getting-started/page/getting-started "Addons installation") page.

## Agent Configuration This connector could only be used as an identity source, no output file could be generated yet. Usually, this connector is used the first time to charge manually the user information of the identities from the HR applications o database. As example, this is the flow to shows how the "Customizable fixed-columns file v2.0" works. [![CSV Connector.png](https://bookstack.soffid.com/uploads/images/gallery/2021-04/scaled-1680-/csv-connector.png)](https://bookstack.soffid.com/uploads/images/gallery/2021-04/csv-connector.png) ### Basic #### Generic parameters After the installation of the addon, you may create and configure agent instances. This addon has 5 available types: - Customizable fixed-columns file v2.0: it is used to charge a table where each column has a fixed number of characters. - Customizable CSV file: it is used to charge a standard CSV file (comma-separated values), where all the columns are separated by a comma. - CSV file test agent. - Dummy password agent. - Test. To configure this CSV plugin, you could select one of the previous agent in the attribute "Type" of the generic parameters section in the agents page configuration.

For more information about how you may configure the generic parameters of the agent, see the following link: [Agents configuration](https://bookstack.soffid.com/books/soffid-3-reference-guide/page/agents "Agents")

#### Custom parameters The main parameters for this connectors are: ##### Customizable fixed-columns file v2.0
**Parameter**
**Description**
Enable debugTwo options: \[ Yes / No \]. When it is enabled more log traces are printed in the Synchronization Server log
Character set (utf-8)
Charset used to load files. Despite it in uncommon, multi-byte character sets, as UTF-8, are allowed. Nevertheless, single byte character sets as ISO-8859-1 are recommended
##### Customizable CSV file
**Parameter**
**Description**
Enable debugTwo options: \[ Yes / No \]. When it is enabled more log traces are printed in the Synchronization Server log
##### CSV file test agent
**Parameter**
**Description**
User's fileDirectory where the CSV file is placed
##### Dummy password agent
**Parameter**
**Description**
Dummy Password
Dummy Password
##### Test
**Parameter**
**Description**
CSV file
Path of the CSV file
### Attribute mapping Only the "Customizable fixed-columns file v2.0" and the "Customizable CSV file" agents have this functionality implemented. #### Properties ##### Customizable fixed-columns file v2.0 This agent requires two properties:
**Property**
**Description**
filePath where the file is placed in the directory system
recordSizeTotal number of characters of the rows. This property must have a number value. The file will be split into records of this size in bytes. Mind the record size must include any line terminator character as "carriage return" or "line feed".
And after that you must specify the number of rows of every row as follow:
**Property**
**Description**
N-MWhere N is the position of the first character and M the position of the last character, both included. Column numbers start with 1 (not 0). And for instance, if the property is defined as "1-10" with the value "NAME", Soffid will extract characters from columns 1 to 10 (both inclusive) into a field named NAME in Soffid.
For instance for this file: ``` abernal   Antonio        Bernal         world      YES jwayne2   John           Wayne          world      YES ``` These are its properties: [![CSV Connector - properties.png](https://bookstack.soffid.com/uploads/images/gallery/2021-04/scaled-1680-/csv-connector-properties.png)](https://bookstack.soffid.com/uploads/images/gallery/2021-04/csv-connector-properties.png) ##### Customizable CSV file This agent only needs the next properties:
**Property**
**Description**
file Mandatory: Path where the file is placed in the directory system
key Mandatory: The field to be used as key
#### Attributes ##### Customizable fixed-columns file v2.0 The mapping in only available for USER object. Now we could map the system attribute defined as property values agains Soffid attributes, for instance:
**System attribute**
**Soffid attribute**
USER userName
FIRSTNAME firstName
LASTNAME lastName
GROUPNAME primaryGroup
ACTIVE.equals("YES") active
For instance: [![image-1641824416700.png](https://bookstack.soffid.com/uploads/images/gallery/2022-01/scaled-1680-/image-1641824416700.png)](https://bookstack.soffid.com/uploads/images/gallery/2022-01/image-1641824416700.png)

For more information about how you may configure attribute mapping, see the following link: [Soffid Attribute Mapping Reference](https://bookstack.soffid.com/link/72#bkmrk-soffid-attributes)

##### Customizable CSV file The mapping in only available for USER object. The first row of the file must include the name of the attribute. ``` USER,FIRSTNAME,LASTNAME,GROUPNAME,ACTIVE abernal,Antonio,Bernal,world,YES jwayne2,John,Wayne, world,YES ``` Now we could map the system attribute (file) with the Soffid attributes, for instance:
**System attribute**
**Soffid attribute**
USER userName
FIRSTNAME firstName
LASTNAME lastName
GROUPNAME primaryGroup
ACTIVE.equals("YES") active
### Load Triggers You can define BeanShell scripts that will be triggered when data is loaded into Soffid (incoming triggers). The trigger result will be a boolean value, true to continue or false to stop. Triggers can be used to validate or perform a specific action just before performing an operation or just after performing an operation into Soffid objects.

To view some examples, visit the [Incoming triggers examples page.](https://bookstack.soffid.com/books/connectors/page/incoming-triggers-examples "Incoming triggers examples")

### Account metadata Accounts are default objects in Soffid. Agents allow you to create additional custom data, on the "Account metadata" tab, to customize the accounts created only for that agent. The attributes which you define here, will be shown when you click on the proper account, on the Accounts Tabs at user page. At this tab you could add or delete custom attributes. You can visit the [Metadata page](https://bookstack.soffid.com/books/soffid-3-reference-guide/page/metadata "Metadata") for more information about the standard attributes. ## Operational ### Monitoring After the agent configuration you could check in the monitoring page if the service is running in the Synchronization Server, please go to: - Start Menu > Administration > Monitoring and reporting > Syscserver monitoring ### Tasks #### Authoritative If you are checked "Authorized identity source", an automatic task to load identities from the managed system to Soffid is available, please go to - Start Menu > Administration > Monitoring and reporting > Scheduled tasks And you will something like "Import authoritative data from <AGENT\_NAME>". #### Reconcile If your are configured the "Attribute Mapping" tab with some of our objects: "user", an automatic task to synchronize these objects from the managed system to Soffid is available, please go to: - Start Menu > Administration > Monitoring and reporting > Scheduled tasks And you will do something like "Reconcile all accounts from <AGENT\_NAME>". ### Synchronization Regarding the synchronization of the objects, there are two possible options: - If you are checked the generic attribute "Read Only" in the "Basics" tab, only the changes in the managed systems will be updated in Soffid. We recommend these options until the global configuration of Soffid will be tested. - If you are not checked the generic attribute "Read Only" in the "Basics" tab, all the changes in Soffid or the managed system will be updated in the other. Note that this synchronization must be configured in the "Attribute mapping" tab correctly.

For more information about how you may configure the generic parameters of the agent, see the following link: [Agents configuration](https://bookstack.soffid.com/books/soffid-3-reference-guide/page/agents "Agents")