Hi Markus,
sorry for late reply: for some reason this e-mail was caught by my spam filter.

About your issue below, I suspect it is somehow related to filesystem 
permissions: please double check your configuration with our public demo as 
explained at

https://syncope.apache.org/demo

And BTW you're right, the CSVDir connector is relying on HSQLDB to provide 
SQL-like access to CSV files.
Regards.

On 18/10/23 17:41, Okon, Markus wrote:

Hi all,

I’m currently evaluating Apache Syncope for my institution and have setup a 
connector server with a csvdir bundle installed. After setting up the connector 
and adding the resource I want to start a pull task to see if it is working.

The Problem is that the execution of the pull tasks always errors out with the 
following stacktrace <https://pastebin.com/Wfgat5Q0>:

 org.quartz.JobExecutionException: While pulling from connector [See nested 
exception: 
org.identityconnectors.framework.impl.api.remote.RemoteWrappedException: 
org.identityconnectors.framework.common.exceptions.ConnectorIOException: 
java.lang.IllegalStateException: java.sql.SQLSyntaxErrorException: user lacks 
privilege or object not found: USER_EX10716 in statement [SELECT * FROM 
USER_EX10716]]

        at 
org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:385)

        at 
org.apache.syncope.core.provisioning.java.pushpull.PullJobDelegate.doExecuteProvisioning(PullJobDelegate.java:78)

        at 
org.apache.syncope.core.provisioning.java.pushpull.AbstractProvisioningJobDelegate.doExecute(AbstractProvisioningJobDelegate.java:702)

        at 
org.apache.syncope.core.provisioning.java.job.AbstractSchedTaskJobDelegate.execute(AbstractSchedTaskJobDelegate.java:155)

Which I think comes from a HSQLD used by the connector? I’m on my wit’s end 
about it and would greatly appreciate if someone could point me towards a 
solution.

Thank you

--- Some more hopefully helpful information ---

Connector:

[

  {

    "key": "018b38c5-07b2-7d6a-a08c-e706f3745cda",

    "errored": false,

    "adminRealm": "/",

    "location": "connids://*****@127.0.0.1:8759?trustAllCerts=true",

    "connectorName": "net.tirasa.connid.bundles.csvdir.CSVDirConnector",

    "bundleName": "net.tirasa.connid.bundles.csvdir",

    "version": "0.8.9",

    "conf": [

      {

        "schema": {

          "name": "sourcePath",

          "displayName": "Source path",

          "helpMessage": "Absolute path of a directory where the CSV files to be 
processed are located",

          "type": "java.lang.String",

          "required": true,

          "order": 1,

"confidential": false,

"defaultValues": []

        },

        "values": [

          "/Filepath/"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "fileMask",

          "displayName": "File mask",

          "helpMessage": "Regular expression describing files to be processed",

          "type": "java.lang.String",

          "required": true,

          "order": 2,

"confidential": false,

"defaultValues": []

        },

        "values": [

          "fileName.csv"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "encoding",

          "displayName": "File encoding",

          "helpMessage": "Basic encoding of the file",

          "type": "java.lang.String",

          "required": false,

          "order": 3,

"confidential": false,

"defaultValues": [

            "UTF-8"

          ]

        },

        "values": [

          "UTF-8"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "fieldDelimiter",

          "displayName": "Field delimiter",

          "helpMessage": "Delimiter used to separate fields in CSV files. Default is 
\",\".",

          "type": "char",

          "required": false,

          "order": 4,

"confidential": false,

"defaultValues": [

            ","

          ]

        },

        "values": [

          "§"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "textQualifier",

          "displayName": "Text qualifier",

          "helpMessage": "Delimiter to determine beginning and end of text in value. 
Default is \".",

          "type": "char",

          "required": false,

          "order": 5,

"confidential": false,

"defaultValues": [

            "\""

          ]

        },

        "values": [

          "\""

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "keyColumnNames",

          "displayName": "Key column name",

          "helpMessage": "Name of the column used to identify user uniquely",

          "type": "[Ljava.lang.String;",

          "required": true,

          "order": 6,

"confidential": false,

"defaultValues": []

        },

        "values": [

"campusnet_id",

          "studyid"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "passwordColumnName",

          "displayName": "Password column name",

          "helpMessage": "Name of the column used to specify user password",

          "type": "java.lang.String",

          "required": false,

          "order": 7,

"confidential": false,

"defaultValues": []

        },

        "values": [],

        "overridable": false

      },

      {

        "schema": {

          "name": "deleteColumnName",

          "displayName": "Delete column name",

          "helpMessage": "Name of the column used to specify users to be 
deleted",

          "type": "java.lang.String",

          "required": false,

          "order": 8,

"confidential": false,

"defaultValues": []

        },

        "values": [],

        "overridable": false

      },

      {

        "schema": {

          "name": "quotationRequired",

          "displayName": "Value quotation required",

          "helpMessage": "Specify if value quotation is required. Default is 
true.",

          "type": "java.lang.Boolean",

          "required": false,

          "order": 9,

"confidential": false,

"defaultValues": [

            true

          ]

        },

        "values": [

          "false"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "fields",

          "displayName": "Column names",

          "helpMessage": "Column names",

          "type": "[Ljava.lang.String;",

          "required": true,

          "order": 10,

"confidential": false,

"defaultValues": []

        },

        "values": [

"Matr.Nr.",

          "Nachname",

          "Vorname",

          "Gs",

          "WahlFB",

          "Semester",

          "RMdatum",

          "Mittelname",

          "Titel",

          "Geburtsname",

          "NamePrefix",

          "NameAdd",

          "Geburtsdatum",

          "ErstSem",

"Strasse",

          "PLZ",

          "Ort",

          "Land",

"campusnet_id",

"initpin",

          "studyid",

          "WahlFS",

          "Fach1",

          "Fachsem1",

          "Fach2",

          "Fachsem2",

          "Fach3",

          "Fachsem3",

          "Fach4",

          "Fachsem4",

          "akteurtyp"

        ],

        "overridable": false

      },

     {

        "schema": {

"name": "ignoreHeader",

          "displayName": "Ignore header",

          "helpMessage": "Specify if first line of the file must be ignored. Default 
is true.",

          "type": "java.lang.Boolean",

          "required": false,

          "order": 11,

"confidential": false,

"defaultValues": [

            true

          ]

        },

        "values": [

          "true"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "keyseparator",

          "displayName": "Key separator",

          "helpMessage": "Character used to separate keys in a multi-key scenario. Default is 
\",\".",

          "type": "java.lang.String",

          "required": false,

          "order": 12,

"confidential": false,

"defaultValues": [

            ","

          ]

        },

        "values": [

          ","

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "multivalueSeparator",

          "displayName": "Multi value separator",

          "helpMessage": "Character used to separate values in a multi-value 
scenario. Multivalue unsupported if not provided.",

          "type": "java.lang.String",

          "required": false,

          "order": 13,

"confidential": false,

"defaultValues": []

        },

        "values": [],

        "overridable": false

      },

      {

        "schema": {

          "name": "defaultStatusValue",

          "displayName": "Default Status Value",

          "helpMessage": "Enter the value for status in case of status not specified. Default 
is \"true\".",

          "type": "java.lang.String",

          "required": false,

          "order": 14,

"confidential": false,

"defaultValues": [

            "true"

          ]

        },

        "values": [

          "true"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "disabledStatusValue",

          "displayName": "Disabled Status Value",

          "helpMessage": "Specify a value for disabled status. Default is 
\"false\".",

          "type": "java.lang.String",

          "required": false,

          "order": 15,

"confidential": false,

"defaultValues": [

            "false"

          ]

        },

        "values": [

          "false"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "enabledStatusValue",

          "displayName": "Enable Status Value",

          "helpMessage": "Specify a value for enabled status. Default is 
\"true\".",

          "type": "java.lang.String",

          "required": false,

          "order": 16,

"confidential": false,

"defaultValues": [

            "true"

          ]

        },

        "values": [

          "true"

        ],

        "overridable": false

      },

      {

        "schema": {

          "name": "statusColumn",

          "displayName": "Status Column name",

          "helpMessage": "Status column name.",

          "type": "java.lang.String",

          "required": false,

          "order": 17,

"confidential": false,

"defaultValues": []

        },

        "values": [],

        "overridable": false

      },

      {

        "schema": {

          "name": "objectClassColumn",

          "displayName": "ObjectClass Column Name",

          "helpMessage": "Column name identifying identity record type",

          "type": "java.lang.String",

          "required": false,

          "order": 18,

"confidential": false,

"defaultValues": []

        },

        "values": [],

        "overridable": false

      },

      {

        "schema": {

          "name": "objectClass",

          "displayName": "Supported Object Classes",

          "helpMessage": "Supported object classes (__ACCOUNT__ as default if 
empty)",

          "type": "[Ljava.lang.String;",

          "required": false,

          "order": 19,

"confidential": false,

"defaultValues": [

"__ACCOUNT__"

          ]

        },

        "values": [

          "CONTRACT"

        ],

        "overridable": false

      }

    ],

    "capabilities": [

      "SEARCH"

    ],

    "displayName": "remoteCSV",

"connRequestTimeout": 10,

    "poolConf": null

  }

]

Pulltask:

{

  "prev": null,

  "next": null,

  "result": [

    {

      "_class": "org.apache.syncope.common.lib.to.PullTaskTO",

      "key": "018b4347-f95c-7a42-bcbd-ef19f28934fb",

      "start": "2023-10-18T16:54:37.881+02:00",

      "end": "2023-10-18T16:54:38.058+02:00",

      "latestExecStatus": "FAILURE",

      "lastExecutor": "admin",

      "executions": [

        {

          "start": "2023-10-18T16:54:37.881+02:00",

          "end": "2023-10-18T16:54:38.058+02:00",

          "key": "018b4348-0f39-7306-8fef-328f11f795fb",

          "jobType": "TASK",

          "refKey": "018b4347-f95c-7a42-bcbd-ef19f28934fb",

          "refDesc": "PULL Task 018b4347-f95c-7a42-bcbd-ef19f28934fb 
FullRecoPull",

          "status": "FAILURE",

          "message": "very long stacktrace",

          "executor": "admin"

        }

      ],

      "startAt": null,

      "cronExpression": null,

      "jobDelegate": null,

      "name": "FullRecoPull",

      "description": null,

      "lastExec": "2023-10-18T16:54:37.881+02:00",

      "nextExec": null,

      "active": true,

      "resource": "TUCaNImportCSV",

      "performCreate": true,

      "performUpdate": true,

      "performDelete": false,

      "syncStatus": false,

      "unmatchingRule": "IGNORE",

      "matchingRule": "UPDATE",

      "actions": [],

      "concurrentSettings": null,

      "pullMode": "FULL_RECONCILIATION",

     "reconFilterBuilder": null,

      "destinationRealm": "/",

      "remediation": false,

      "templates": {}

    }

  ],

  "page": 1,

"size": 1,

"totalCount": 1

}


--
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/

Reply via email to