======== TEMPLATE BUG FORM ========
Wappler Version : 3.5.2
Operating System : MAC Catalina 10.15.7
Expected behavior
What do you think should happen?
Update server action
Actual behavior
Page error
How to reproduce
Update any server action
I have followed the advice on another thread to delete the dmxConnectLib folder, save action, then upload it to the new server. This does not fix the issue. If I restore the dmxConnectLib folder (only this folder) from a copy 4 days ago the page loads without an issue
Full error message:
{"type":"ExecuteError","fileName":"modules/auth.asp","lineNumber":107,"errorNumber":-2146823279,"message":"'identity' is undefined","stack":[{"fileName":"lib/app.asp","lineNumber":107,"method":"_exec","args":["SecurityProviders/SiteValidation"]},{"fileName":"lib/app.asp","lineNumber":107,"method":"_exec","args":[["Connections/droplet","SecurityProviders/SiteValidation",{"name":"Configuration","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Configuration","column":""}],"table":{"name":"Configuration"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Configuration.ConfigurationID","field":"Configuration.ConfigurationID","type":"double","operator":"equal","value":"1","data":{"table":"Configuration","column":"ConfigurationID","type":"number"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Configuration\nWHERE ConfigurationID = 1","params":[]}},"output":true,"meta":[],"outputType":"array"},{"name":"Page","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Content","column":""}],"table":{"name":"Content"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Content.URLParam","field":"Content.URLParam","type":"string","operator":"equal","value":"{{$_GET.id}}","data":{"table":"Content","column":"URLParam","type":"text"},"operation":"="},{"id":"Content.PageGroup","field":"Content.PageGroup","type":"string","operator":"equal","value":"{{$_GET.pagegroup}}","data":{"table":"Content","column":"PageGroup","type":"text"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Content\nWHERE URLParam = :P1 / {{$_GET.id}} / AND PageGroup = :P2 / {{$_GET.pagegroup}} /","params":[{"operator":"equal","type":"expression","name":":P1","value":"{{$_GET.id}}"},{"operator":"equal","type":"expression","name":":P2","value":"{{$_GET.pagegroup}}"}]}},"output":true,"meta":[{"name":"id","type":"number"},{"name":"ContentType","type":"text"},{"name":"AdminTitle","type":"text"},{"name":"Active","type":"boolean"},{"name":"URLParam","type":"text"},{"name":"ModelGroup","type":"text"},{"name":"PageGroup","type":"text"},{"name":"PrimaryTitle","type":"text"},{"name":"PrimarySubTitle","type":"text"},{"name":"PrimaryContent","type":"text"},{"name":"SecondaryTitle","type":"text"},{"name":"SecondarySubTitle","type":"text"},{"name":"SecondaryContent","type":"text"},{"name":"PageTitle","type":"text"}],"outputType":"array"}]]},{"fileName":"lib/app.asp","lineNumber":85,"method":"exec","args":[{"steps":["Connections/droplet","SecurityProviders/SiteValidation",{"name":"Configuration","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Configuration","column":""}],"table":{"name":"Configuration"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Configuration.ConfigurationID","field":"Configuration.ConfigurationID","type":"double","operator":"equal","value":"1","data":{"table":"Configuration","column":"ConfigurationID","type":"number"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Configuration\nWHERE ConfigurationID = 1","params":[]}},"output":true,"meta":[],"outputType":"array"},{"name":"Page","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Content","column":""}],"table":{"name":"Content"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Content.URLParam","field":"Content.URLParam","type":"string","operator":"equal","value":"{{$_GET.id}}","data":{"table":"Content","column":"URLParam","type":"text"},"operation":"="},{"id":"Content.PageGroup","field":"Content.PageGroup","type":"string","operator":"equal","value":"{{$_GET.pagegroup}}","data":{"table":"Content","column":"PageGroup","type":"text"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Content\nWHERE URLParam = :P1 / {{$_GET.id}} / AND PageGroup = :P2 / {{$_GET.pagegroup}} /","params":[{"operator":"equal","type":"expression","name":":P1","value":"{{$_GET.id}}"},{"operator":"equal","type":"expression","name":":P2","value":"{{$_GET.pagegroup}}"}]}},"output":true,"meta":[{"name":"id","type":"number"},{"name":"ContentType","type":"text"},{"name":"AdminTitle","type":"text"},{"name":"Active","type":"boolean"},{"name":"URLParam","type":"text"},{"name":"ModelGroup","type":"text"},{"name":"PageGroup","type":"text"},{"name":"PrimaryTitle","type":"text"},{"name":"PrimarySubTitle","type":"text"},{"name":"PrimaryContent","type":"text"},{"name":"SecondaryTitle","type":"text"},{"name":"SecondarySubTitle","type":"text"},{"name":"SecondaryContent","type":"text"},{"name":"PageTitle","type":"text"}],"outputType":"array"}]}]},{"fileName":"lib/app.asp","lineNumber":57,"method":"define","args":[{"meta":{"$_GET":[{"type":"text","name":"id"},{"type":"text","name":"pagegroup"},{"type":"text","name":"sort"},{"type":"text","name":"dir"}]},"exec":{"steps":["Connections/droplet","SecurityProviders/SiteValidation",{"name":"Configuration","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Configuration","column":""}],"table":{"name":"Configuration"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Configuration.ConfigurationID","field":"Configuration.ConfigurationID","type":"double","operator":"equal","value":"1","data":{"table":"Configuration","column":"ConfigurationID","type":"number"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Configuration\nWHERE ConfigurationID = 1","params":[]}},"output":true,"meta":[],"outputType":"array"},{"name":"Page","module":"dbconnector","action":"select","options":{"connection":"droplet","sql":{"type":"SELECT","columns":[{"table":"Content","column":""}],"table":{"name":"Content"},"joins":[],"wheres":{"condition":"AND","rules":[{"id":"Content.URLParam","field":"Content.URLParam","type":"string","operator":"equal","value":"{{$_GET.id}}","data":{"table":"Content","column":"URLParam","type":"text"},"operation":"="},{"id":"Content.PageGroup","field":"Content.PageGroup","type":"string","operator":"equal","value":"{{$_GET.pagegroup}}","data":{"table":"Content","column":"PageGroup","type":"text"},"operation":"="}],"conditional":null,"valid":true},"query":"SELECT \nFROM Content\nWHERE URLParam = :P1 / {{$_GET.id}} / AND PageGroup = :P2 / {{$_GET.pagegroup}} /","params":[{"operator":"equal","type":"expression","name":":P1","value":"{{$_GET.id}}"},{"operator":"equal","type":"expression","name":":P2","value":"{{$_GET.pagegroup}}"}]}},"output":true,"meta":[{"name":"id","type":"number"},{"name":"ContentType","type":"text"},{"name":"AdminTitle","type":"text"},{"name":"Active","type":"boolean"},{"name":"URLParam","type":"text"},{"name":"ModelGroup","type":"text"},{"name":"PageGroup","type":"text"},{"name":"PrimaryTitle","type":"text"},{"name":"PrimarySubTitle","type":"text"},{"name":"PrimaryContent","type":"text"},{"name":"SecondaryTitle","type":"text"},{"name":"SecondarySubTitle","type":"text"},{"name":"SecondaryContent","type":"text"},{"name":"PageTitle","type":"text"}],"outputType":"array"}]}}]}],"data":"function(exports, module, require) { \r\n\r\n\tvar Provider = require('lib/auth/provider');\r\n\tvar Parser = require('lib/core/parser');\r\n\tvar App = require('lib/app');\r\n\r\n\texports.provider = provider;\r\n\texports.identity = identity;\r\n\texports.validate = validate;\r\n\texports.login = login;\r\n\texports.logout = logout;\r\n\texports.restrict = restrict;\r\n\r\n\t/\r\n\t\tSetup authorization provider\r\n\t/\r\n\tfunction provider(options, name) {/* STACK({"fileName":"modules/auth.asp", "lineNumber":17, "method": "provider"}) /\r\n\t\treturn new Provider(options, name);\r\n\t};\r\n\r\n\tfunction identify(options) {/ STACK({"fileName":"modules/auth.asp", "lineNumber":21, "method": "identify"}) /\r\n\t\tvar provider = Provider.get(options.provider);\r\n\r\n\t\treturn provider.identity;\r\n\t}\r\n\r\n\t/\r\n\t\tValidate\r\n\t*/\r\n\tfunction validate(options) {/* STACK({"fileName":"modules/auth.asp", "lineNumber":30, "method": "validate"}) /\r\n\t\tvar provider = Provider.get(options.provider);\r\n\r\n\t\tswitch (App.request.post['action']) {\r\n\t\t\tcase 'login':\r\n\t\t\t\tprovider.login(App.request.post['username'], App.request.post['password'], App.request.post['remember'] == '1');\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'logout':\r\n\t\t\t\tprovider.logout();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif (!provider.identity) {\r\n\t\t\tApp.response.end(401);\r\n\t\t}\r\n\r\n\t\tApp.data.identity = provider.identity;\r\n\t}\r\n\r\n\t/\r\n\t\tLogin\r\n\t*/\r\n\tfunction login(options) {/* STACK({"fileName":"modules/auth.asp", "lineNumber":53, "method": "login"}) /\r\n\t\tvar provider = Provider.get(options.provider);\r\n\r\n\t\tif (!options.username) options.username = '{{$_POST.username}}';\r\n\t\tif (!options.password) options.password = '{{$_POST.password}}';\r\n\t\tif (options.remember == null) options.remember = '{{$_POST.remember}}';\r\n\r\n\t\treturn provider.login(\r\n\t\t\tParser.parseTemplate(options.username),\r\n\t\t\tParser.parseTemplate(options.password),\r\n\t\t\t!!Parser.parseValue(options.remember)\r\n\t\t);\r\n\t};\r\n\r\n\t/\r\n\t\tLogout\r\n\t*/\r\n\tfunction logout(options) {/* STACK({"fileName":"modules/auth.asp", "lineNumber":70, "method": "logout"}) /\r\n\t\tvar provider = Provider.get(options.provider);\r\n\r\n\t\treturn provider.logout();\r\n\t}\r\n\r\n\t/\r\n\t\tRestrict\r\n\t*/\r\n\tfunction restrict(options) {/*