Using GlideRecordSecure in a scoped application, allowing create access to ecc_queue

Community Alums
Not applicable

Hi All,

 

I have a script include within a scoped (store) application, that is creating records on the ecc_queue table. We have recently changed from GlideRecord to GlideRecordSecure, the function is as follows:

 

create : function() {
		this.addParameter('skip_sensor', true);
		var egr = new GlideRecordSecure("ecc_queue");
		egr.agent = "mid.server." + this.midServer;
		egr.queue = "output";
		egr.state = "ready";
		egr.topic = "JavascriptProbe";
		egr.name = this.name;
		egr.source = this.source;
		egr.payload = this.payloadDoc.toString();
		return egr.insert();
	},

 

Due to a number of ACLs on the table, this is now failing. I have created table level create/write/read ACLs within the scoped application, that should allow non-admin users with the apps role to access the table, but It's still not working. Running the security debug, I see this in the log:

 

TimDScott_0-1744622479589.png

 

Looks to me like the "out of the box" ACLs in global scope are blocking my scoped versions?

 

Please can someone help me understand what I need to do in order to get this working, if indeed this is possible!

 

Thanks!

 

Tim.

 

 

1 ACCEPTED SOLUTION

@Community Alums 

Option 2 is more feasible and ServiceNow app certification team does have the right to create exceptions.

I have been doing the same for the past few app certification cycles whenever new version comes in.

I believe I have answered your question with the approaches.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

14 REPLIES 14

@Community Alums 

With only those 2 cross scope, I was able to insert record into ecc_queue from my custom app from background script. I didn't create any explicit field level WRITE ACL in my scope

AnkurBawiskar_0-1744625012433.png

AnkurBawiskar_1-1744625026263.png

 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Community Alums
Not applicable

@Ankur are you using a user without the admin role?

@Community Alums 

I ran the background script with admin user

Did you check my previous reply?

AnkurBawiskar_0-1744626287435.png

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Community Alums
Not applicable

@Ankur Bawiskar I missed that reply! So, I've tried to create field level ACLs, I'm getting an error:

TimDScott_0-1744626790555.png

 

@Community Alums 

that's correct.

You cannot create field level WRITE for outside scope fields

Those fields are in global scope and you are not allowed to create ACLs on those in your scope

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader