[Bug]: User privileges on CDA post -- store water supply contract
Open
Nobody has claimed this yet.
bug
priority:medium
- Dominant language
- Java
- Stars
- 28
- Forks
- 25
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 20
Description
Describe the bug
Executing this command:
curl -X 'POST' \
'https://water.dev.cwbi.us/cwms-data/projects/SWT/HUDS/water-user/GRDA/contracts?fail-if-exists=true&ignore-nulls=true&_cb=1785271359358' \
-H 'accept: */*' \
-H 'X-CWMS-LRTS-Formatting: false' \
-H 'Content-Type: application/json;version=1' \
-H 'Cache-Control: no-cache, no-store, max-age=0' \
-H 'Pragma: no-cache' \
-d '{"office-id":"CWMS","water-user":{"entity-name":"GRDA","project-id":{"office-id":"SWT","name":"HUDS"},"water-right":"State of Oklahoma"},"contract-id":{"office-id":"CWMS","name":"Salina Pumpback GeneratorsPumps"},"contract-type":{"office-id":"CWMS","display-value":"Conduit","tooltip":"Conduit contract","active":true},"contract-effective-date":-189367200000,"contract-expiration-date":2966392800000,"contracted-storage":6.919833108641587E7,"initial-use-allocation":6.919833108641587E7,"future-use-allocation":0.0,"storage-units-id":"m3","future-use-percent-activated":0.0,"total-alloc-percent-activated":56100.0,"pump-out-location":{"pump-location":{"office-id":"SWT","name":"HUDS-SalinaPumps","latitude":36.23009444444445,"longitude":-95.18218611111112,"active":true,"public-name":"Salina Pumpback Pumps","timezone-name":"US/Central","location-kind":"PUMP","nation":"US","state-initial":"OK","county-name":"Mayes","nearest-city":"Tahlequah","horizontal-datum":"NAD83","published-longitude":95.19333333333334,"published-latitude":36.23166666666667,"vertical-datum":"NAVD88","elevation":188.67119999999997,"bounding-office-id":"SWT","elevation-units":"m"},"pump-type":"OUT"},"pump-in-location":{"pump-location":{"office-id":"SWT","name":"HUDS-SalinaGenerators","latitude":36.23009444444445,"longitude":-95.18218611111112,"active":true,"public-name":"Salina Pumpback Generators","timezone-name":"US/Central","location-kind":"PUMP","nation":"US","state-initial":"OK","county-name":"Mayes","nearest-city":"Tahlequah","horizontal-datum":"NAD83","published-longitude":95.19333333333334,"published-latitude":36.23166666666667,"vertical-datum":"NAVD88","elevation":188.67119999999997,"bounding-office-id":"SWT","elevation-units":"m"},"pump-type":"IN"}}'
Resulted in a 404 result status with this Response Body:
{
"message": "ORA-20048: NO_WRITE_PRIVILEGE: User doesnt have write privileges",
"incidentIdentifier": "3c5db42c-82a6-43cf-9a97-93f2184fbd4f",
"source": "Database",
"details": {
"stackTraceLines": [
"cwms.cda.api.errors.NotFoundException: ORA-20048: NO_WRITE_PRIVILEGE: User doesnt have write privileges",
"\tat cwms.cda.data.dao.JooqDao.buildNotFound(JooqDao.java:552)",
"\tat cwms.cda.data.dao.JooqDao.wrapException(JooqDao.java:349)",
"\tat cwms.cda.data.dao.JooqDao.connection(JooqDao.java:886)",
"\tat cwms.cda.data.dao.watersupply.WaterContractDao.storeWaterContract(WaterContractDao.java:120)",
"\tat cwms.cda.api.watersupply.WaterContractCreateController.handle(WaterContractCreateController.java:109)",
"\tat cwms.cda.security.CdaAccessManager.manage(CdaAccessManager.java:44)",
"\tat io.javalin.http.JavalinServlet.addHandler$lambda-0(JavalinServlet.kt:96)",
"\tat io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43)",
"\tat io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:99)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)",
"\tat io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)",
"\tat java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)",
"\tat java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)",
"\tat io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)",
"\tat io.javalin.http.JavalinServlet.service(JavalinServlet.kt:89)",
"\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:623)",
"\tat cwms.cda.ApiServlet.service(ApiServlet.java:1049)",
"\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:623)",
"\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)",
"\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)",
"\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)",
"\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)",
"\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)",
"\tat cwms.cda.servlet.W3CTraceFilter.doFilter(W3CTraceFilter.java:54)",
"\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)",
"\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)",
"\tat org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:334)",
"\tat org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:161)",
"\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)",
"\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)",
"\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)",
"\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)",
"\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)",
"\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)",
"\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)",
"\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)",
"\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)",
"\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)",
"\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)",
"\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1309)",
"\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1854)",
"\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)",
"\tat org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)",
"\tat org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)",
"\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)",
"\tat java.base/java.lang.Thread.run(Thread.java:829)",
"Caused by: java.sql.SQLException: ORA-20048: NO_WRITE_PRIVILEGE: User doesnt have write privileges",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3396",
"ORA-06512: at \"CWMS_20.CWMS_ERR\", line 80",
"ORA-06512: at \"CWMS_20.ST_PHYSICAL_LOCATION\", line 9",
"ORA-04088: error during execution of trigger 'CWMS_20.ST_PHYSICAL_LOCATION'",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 805",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 2126",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3354",
"ORA-20025: LOCATION_ID_NOT_FOUND: The Location: \"HUDS-SalinaPumps\" does not exist.",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 1445",
"ORA-06512: at \"CWMS_20.CWMS_ERR\", line 80",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 245",
"ORA-01403: no data found",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 213",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 182",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 274",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 1046",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3324",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 5592",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 5557",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 503",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 620",
"ORA-01403: no data found",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 592",
"ORA-06512: at line 1",
"",
https://docs.oracle.com/error-help/db/ora-20048/,
"\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:718)",
"\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:618)",
"\tat oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1372)",
"\tat oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:975)",
"\tat oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:237)",
"\tat oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:524)",
"\tat oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:255)",
"\tat oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1467)",
"\tat oracle.jdbc.driver.OracleStatement.executeSQLStatement(OracleStatement.java:2021)",
"\tat oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1634)",
"\tat oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3973)",
"\tat oracle.jdbc.driver.OraclePreparedStatement.doExecute(OraclePreparedStatement.java:4447)",
"\tat oracle.jdbc.driver.OracleCallableStatement.doExecute(OracleCallableStatement.java:4245)",
"\tat oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4234)",
"\tat oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1032)",
"\tat jdk.internal.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)",
"\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)",
"\tat org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:214)",
"\tat com.sun.proxy.$Proxy38.execute(Unknown Source)",
"\tat jdk.internal.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)",
"\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)",
"\tat org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:214)",
"\tat com.sun.proxy.$Proxy38.execute(Unknown Source)",
"\tat jdk.internal.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)",
"\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)",
"\tat org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:237)",
"\tat com.sun.proxy.$Proxy38.execute(Unknown Source)",
"\tat jdk.internal.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)",
"\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)",
"\tat org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:123)",
"\tat com.sun.proxy.$Proxy38.execute(Unknown Source)",
"\tat org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:219)",
"\tat org.jooq.impl.Tools.executeStatementAndGetFirstResultSet(Tools.java:4695)",
"\tat org.jooq.impl.AbstractRoutine.execute0(AbstractRoutine.java:622)",
"\tat org.jooq.impl.AbstractRoutine.executeCallableStatement(AbstractRoutine.java:582)",
"\tat org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:405)",
"\tat org.jooq.impl.Tools.attach(Tools.java:1610)",
"\tat org.jooq.impl.AbstractRoutine.execute(AbstractRoutine.java:374)",
"\tat usace.cwms.db.jooq.codegen.packages.CWMS_WATER_SUPPLY_PACKAGE.call_STORE_CONTRACTS2(CWMS_WATER_SUPPLY_PACKAGE.java:386)",
"\tat cwms.cda.data.dao.watersupply.WaterContractDao.lambda$storeWaterContract$9(WaterContractDao.java:125)",
"\tat org.jooq.impl.DefaultDSLContext.lambda$connection$12(DefaultDSLContext.java:697)",
"\tat org.jooq.impl.DefaultDSLContext.connectionResult(DefaultDSLContext.java:658)",
"\tat org.jooq.impl.DefaultDSLContext.connection(DefaultDSLContext.java:696)",
"\tat cwms.cda.data.dao.JooqDao.connection(JooqDao.java:884)",
"\t... 70 more",
"Caused by: Error : 20048, Position : 0, SQL = BEGIN \"CWMS_20\".\"CWMS_WATER_SUPPLY\".\"STORE_CONTRACTS2\" (:1, :2, :3) ; END;, Original SQL = { call \"CWMS_20\".\"CWMS_WATER_SUPPLY\".\"STORE_CONTRACTS2\" (?, ?, ?) }, Error Message = ORA-20048: NO_WRITE_PRIVILEGE: User doesnt have write privileges",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3396",
"ORA-06512: at \"CWMS_20.CWMS_ERR\", line 80",
"ORA-06512: at \"CWMS_20.ST_PHYSICAL_LOCATION\", line 9",
"ORA-04088: error during execution of trigger 'CWMS_20.ST_PHYSICAL_LOCATION'",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 805",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 2126",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3354",
"ORA-20025: LOCATION_ID_NOT_FOUND: The Location: \"HUDS-SalinaPumps\" does not exist.",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 1445",
"ORA-06512: at \"CWMS_20.CWMS_ERR\", line 80",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 245",
"ORA-01403: no data found",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 213",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 182",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 274",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 1046",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 3324",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 5592",
"ORA-06512: at \"CWMS_20.CWMS_LOC\", line 5557",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 503",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 620",
"ORA-01403: no data found",
"ORA-06512: at \"CWMS_20.CWMS_WATER_SUPPLY\", line 592",
"ORA-06512: at line 1",
"",
"\tat oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:726)",
"\t... 117 more"
]
}
}
Expected behavior
Expected a 201 response code for successful write of record.
To Reproduce
Executing this command:
curl -X 'POST' \
'https://water.dev.cwbi.us/cwms-data/projects/SWT/HUDS/water-user/GRDA/contracts?fail-if-exists=true&ignore-nulls=true&_cb=1785271359358' \
-H 'accept: */*' \
-H 'X-CWMS-LRTS-Formatting: false' \
-H 'Content-Type: application/json;version=1' \
-H 'Cache-Control: no-cache, no-store, max-age=0' \
-H 'Pragma: no-cache' \
-d '{"office-id":"CWMS","water-user":{"entity-name":"GRDA","project-id":{"office-id":"SWT","name":"HUDS"},"water-right":"State of Oklahoma"},"contract-id":{"office-id":"CWMS","name":"Salina Pumpback GeneratorsPumps"},"contract-type":{"office-id":"CWMS","display-value":"Conduit","tooltip":"Conduit contract","active":true},"contract-effective-date":-189367200000,"contract-expiration-date":2966392800000,"contracted-storage":6.919833108641587E7,"initial-use-allocation":6.919833108641587E7,"future-use-allocation":0.0,"storage-units-id":"m3","future-use-percent-activated":0.0,"total-alloc-percent-activated":56100.0,"pump-out-location":{"pump-location":{"office-id":"SWT","name":"HUDS-SalinaPumps","latitude":36.23009444444445,"longitude":-95.18218611111112,"active":true,"public-name":"Salina Pumpback Pumps","timezone-name":"US/Central","location-kind":"PUMP","nation":"US","state-initial":"OK","county-name":"Mayes","nearest-city":"Tahlequah","horizontal-datum":"NAD83","published-longitude":95.19333333333334,"published-latitude":36.23166666666667,"vertical-datum":"NAVD88","elevation":188.67119999999997,"bounding-office-id":"SWT","elevation-units":"m"},"pump-type":"OUT"},"pump-in-location":{"pump-location":{"office-id":"SWT","name":"HUDS-SalinaGenerators","latitude":36.23009444444445,"longitude":-95.18218611111112,"active":true,"public-name":"Salina Pumpback Generators","timezone-name":"US/Central","location-kind":"PUMP","nation":"US","state-initial":"OK","county-name":"Mayes","nearest-city":"Tahlequah","horizontal-datum":"NAD83","published-longitude":95.19333333333334,"published-latitude":36.23166666666667,"vertical-datum":"NAVD88","elevation":188.67119999999997,"bounding-office-id":"SWT","elevation-units":"m"},"pump-type":"IN"}}'
Priority
Medium
Logs/Incident Identifier
No response
CURL Commands
CDA Version
2026.07.28-develop
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with WaterContractDao.java:120, WaterContractCreateController.java:109, and CdaAccessManager.java:44, then compare the reported POST response with the Oracle stack trace. Trace how the missing HUDS-SalinaPumps location becomes a 404 with NO_WRITE_PRIVILEGE; done means the water-contract request reports the correct failure or succeeds when its prerequisites and privileges are valid.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, sql
- Domain
- api, backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100