mlo0424
mlo0424

Reputation: 439

Neo4j some procedures are missing

I am using APOC 3.3.0.1.

dbms.security.procedures.unrestricted=algo.*, apoc*

Not sure why there are some procedures missing in my Neo4j.

Like dbms.security.listUsers

dbms.security.changePassword

dbms.showCurrentUser

dbms.security.createUser

dbms.security.deleteUser

The below are the dmbs I have listed in CALL dbms.procedures()

"dbms.components"   "dbms.components() :: (name :: STRING?, versions :: LIST? OF STRING?, edition :: STRING?)"  "List DBMS components and their versions."
"dbms.functions"    "dbms.functions() :: (name :: STRING?, signature :: STRING?, description :: STRING?)"   "List all user functions in the DBMS."
"dbms.listConfig"   "dbms.listConfig(searchString = :: STRING?) :: (name :: STRING?, description :: STRING?, value :: STRING?)" "List the currently active config of Neo4j."
"dbms.procedures"   "dbms.procedures() :: (name :: STRING?, signature :: STRING?, description :: STRING?)"  "List all procedures in the DBMS."
"dbms.queryJmx" "dbms.queryJmx(query :: STRING?) :: (name :: STRING?, description :: STRING?, attributes :: MAP?)"  "Query JMX management data by domain and name. For instance, "org.neo4j:*""

Some APOC procedures are missing too.

Especially for apoc.date* that I only have the below procedures

"apoc.date.expire"  "apoc.date.expire(node :: NODE?, time :: INTEGER?, timeUnit :: STRING?) :: VOID"    "CALL apoc.date.expire(node,time,'time-unit') - expire node in given time by setting :TTL label and `ttl` property"
"apoc.date.expireIn"    "apoc.date.expireIn(node :: NODE?, timeDelta :: INTEGER?, timeUnit :: STRING?) :: VOID" "CALL apoc.date.expire.in(node,time,'time-unit') - expire node in given time-delta by setting :TTL label and `ttl` property"

Upvotes: 0

Views: 824

Answers (1)

InverseFalcon
InverseFalcon

Reputation: 30417

The security and user procedures you cited are only available in the enterprise version, you will not have access to them in the community version.

As for the dates, since APOC's first introduction, the ability to create custom user functions have been added, and many of the procedures (including most of the date and other helper procedures) made better sense as functions (which you can use inline, and without needing CALL or YIELD).

Try using CALL dbms.functions(), you should see what you're looking for there.

You can also use CALL apoc.help() and pass the string portion of the proc or procedure name if you are having trouble figuring out if it's a procedure or a function, and figuring out parameters and yielded values.

For example, CALL apoc.help('date')

Upvotes: 1

Related Questions