{
    "info": {
        "_postman_id": "772619ea-d42a-4f82-bc66-be85e7bf6d46",
        "name": "CL RP.Inside Auth Example",
        "description": "# RP Inside Authentication\n\nThis collection demonstrates OAuth Authorization and Application Silent login as documented on [https://developer.corelogic.asia/apis/guides/application-silent-login-au-nz](https://developer.corelogic.asia/apis/guides/application-silent-login-au-nz)\n\n### Get Started\n\nSet the credentials in the Pre-request Script of this collection.\n\n> You may need to configure Postman Cookies \"Domains Allowlist\" to add the authentication domains:\n\n- UAT access-uat-api.corelogic.asia\n- Production access-api.corelogic.asia",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "item": [
        {
            "name": "OAuth authorization code grant",
            "item": [
                {
                    "name": "1. Get Code - save session cookie",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "const contentType = pm.response.headers.get('Content-Type');",
                                    "const sessionCookie =  pm.cookies.get(\"session\");",
                                    "if (sessionCookie) {",
                                    "    console.log(\"Session cookie? \", sessionCookie);",
                                    "    pm.globals.set('session', sessionCookie);",
                                    "}",
                                    "",
                                    "// if the session is already logged-in it will redirect already! ",
                                    "// if follow redirects is on - the code should be on the query string",
                                    "let reqParams = pm.request.url.getQueryString();",
                                    "// Follow redirects off - ?code=aaaa should be in the redirect header",
                                    "const location = pm.response.headers.get('location');",
                                    "console.log(\"Request params? \", reqParams, \" Location ? \", location);",
                                    "if (location && location.indexOf('code=') > -1) {",
                                    "    let params = location.split('?')",
                                    "    const querystring = require('querystring');",
                                    "    const codeParam = querystring.parse(params[1]);",
                                    "    console.log(\"Location Code? \", codeParam);",
                                    "    pm.globals.set(\"code\", codeParam.code);",
                                    "}",
                                    "",
                                    "// Only if follow redirects are on..",
                                    "pm.test(\"Login is for valid application\", function () {",
                                    "    pm.response.to.have.header(\"x-cl-app-key\");",
                                    "    pm.response.to.be.header(\"x-cl-app-key\", pm.collectionVariables.get('client-app-key'));",
                                    "});",
                                    "",
                                    "// Postman settings follow redirects on - if we are already fully logged in - we wil be forwarded ",
                                    "pm.test(\"Login is not partially or fully complete\", function () {",
                                    "    // check we are still on the login ",
                                    "    ",
                                    "    pm.expect(pm.request.url.toString()).contains(\"https://access\");",
                                    "});",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "disableCookies": false,
                        "followRedirects": true
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/oauth/authorize?response_type=code&client_id={{client-id}}&redirect_uri={{client-redirect-uri}}&scope=openid",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "authorize"
                            ],
                            "query": [
                                {
                                    "key": "response_type",
                                    "value": "code"
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}",
                                    "description": "See collection variables"
                                },
                                {
                                    "key": "redirect_uri",
                                    "value": "{{client-redirect-uri}}"
                                },
                                {
                                    "key": "scope",
                                    "value": "openid"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "2. Login user/pass",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "",
                                    "const querystring = require('querystring');",
                                    "let codeParam = '';",
                                    "// if follow redirects is on - the code should be on the query string",
                                    "// if follow redirects is off - the code=?? may be available from the location header",
                                    "const location = pm.response.headers.get('location');",
                                    "console.log(\"Location? \", location);",
                                    "",
                                    "// first - check if the authentication was a success",
                                    "if (location && location.indexOf('error=') > -1) {",
                                    "",
                                    "    let params = location.split('?')",
                                    "    const err = querystring.parse(params[1]);",
                                    "    console.log(\"Error? \", err);",
                                    "",
                                    "} else if (location && location.indexOf('code=') > -1) {",
                                    "    console.log(\"Location? \", location);",
                                    "    let params = location.split('?')",
                                    "    const codeParam = querystring.parse(params[1]);",
                                    "    console.log(\"Location Code? \", codeParam);",
                                    "    pm.globals.set(\"code\", codeParam.code);",
                                    "}",
                                    "",
                                    "// Extracting the authoriation code depends entirely on the authorization redirect callback..",
                                    "// If it's on the redirected URL we cannot grab it in Postman",
                                    "// Execute Step 2.a. - Get code for existing session.",
                                    "",
                                    "pm.test(\"Login username and password OK\", function () {",
                                    "   pm.expect(pm.response.body).does.not.match(/error/);",
                                    "});",
                                    "",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true
                    },
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Cookie",
                                "value": "M2QwNDlmOGQtY2JjOS00ZTdiLTg4MGYtNWE1OTBiMTI2NjMz",
                                "type": "text"
                            }
                        ],
                        "body": {
                            "mode": "urlencoded",
                            "urlencoded": [
                                {
                                    "key": "username",
                                    "value": "{{username}}",
                                    "type": "text"
                                },
                                {
                                    "key": "password",
                                    "value": "{{password}}",
                                    "type": "text"
                                }
                            ]
                        },
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/login",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "login"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "2.a. Get Code - session exists - save code",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "",
                                    "// Follow redirects off - ?code=aaaa should be in the redirect header",
                                    "const location = pm.response.headers.get('location');",
                                    "let authCode = '';",
                                    "console.log(\"Location ? \", location);",
                                    "if (location && location.indexOf('code=') > -1) {",
                                    "    let params = location.split('?')",
                                    "    const querystring = require('querystring');",
                                    "    const codeParam = querystring.parse(params[1]);",
                                    "    console.log(\"Location Code? \", codeParam);",
                                    "    authCode = codeParam.code;",
                                    "    pm.globals.set(\"code\", authCode);",
                                    "}",
                                    "pm.test(\"Login produces authorization code\", function () {",
                                    "    pm.expect(authCode).to.be.a('string').and.not.be.empty;",
                                    "});",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "disableCookies": false,
                        "followRedirects": false,
                        "followOriginalHttpMethod": false
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/oauth/authorize?response_type=code&client_id={{client-id}}&redirect_uri={{client-redirect-uri}}&scope=openid",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "authorize"
                            ],
                            "query": [
                                {
                                    "key": "response_type",
                                    "value": "code"
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}",
                                    "description": "See collection variables"
                                },
                                {
                                    "key": "redirect_uri",
                                    "value": "{{client-redirect-uri}}"
                                },
                                {
                                    "key": "scope",
                                    "value": "openid"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "3. Convert code to token",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "var data = JSON.parse(responseBody);",
                                    "",
                                    "// Short-lived tokens access tokens",
                                    "if (data.access_token) {",
                                    "    pm.globals.set(\"userToken\", data.access_token);",
                                    "    pm.globals.set(\"idToken\", data.id_token);",
                                    "}",
                                    "// Use this to refresh above tokens",
                                    "if (data.refresh_token) {",
                                    "    pm.globals.set(\"refreshToken\", data.refresh_token);",
                                    "}",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true,
                        "disableCookies": false
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/oauth/token?grant_type=authorization_code&code=xJT7elKX49xfZXCdEOwX2vgmgGD_2ly34cBYRKEQ&redirect_uri={{client-redirect-uri}}&client_id={{client-id}}&client_secret={{client-secret}}",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "token"
                            ],
                            "query": [
                                {
                                    "key": "grant_type",
                                    "value": "authorization_code"
                                },
                                {
                                    "key": "code",
                                    "value": "xJT7elKX49xfZXCdEOwX2vgmgGD_2ly34cBYRKEQ",
                                    "description": "Set in request 2. tests"
                                },
                                {
                                    "key": "redirect_uri",
                                    "value": "{{client-redirect-uri}}",
                                    "description": "Collection variables"
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}"
                                },
                                {
                                    "key": "client_secret",
                                    "value": "{{client-secret}}"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "4. Convert Refresh Token - repeatable",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "var data = JSON.parse(responseBody);\r",
                                    "if (data.access_token) {\r",
                                    "    pm.globals.set(\"userToken\", data.access_token);\r",
                                    "    pm.globals.set(\"idToken\", data.id_token);\r",
                                    "}\r",
                                    "\r",
                                    "// save the new refresh token for the next time\r",
                                    "if (data.refresh_token) {\r",
                                    "  pm.globals.set(\"refreshToken\", data.refresh_token);\r",
                                    "}\r",
                                    "\r",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/oauth/token?grant_type=refresh_token&refresh_token=ee3458e7-33ee-42bc-948b-03ebc9b9f167&client_id={{client-id}}&client_secret={{client-secret}}",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "token"
                            ],
                            "query": [
                                {
                                    "key": "grant_type",
                                    "value": "refresh_token"
                                },
                                {
                                    "key": "refresh_token",
                                    "value": "ee3458e7-33ee-42bc-948b-03ebc9b9f167",
                                    "description": "Set in Request 3. tests."
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}"
                                },
                                {
                                    "key": "client_secret",
                                    "value": "{{client-secret}}"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Verify Token - UserInfo",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "auth": {
                            "type": "noauth"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwYTM5OTM5MS01MzZmLTQyMmYtOGQ4Ny0yMmFhNjY3MWZjNjciLCJhcHBfYWNjdF9ndWlkIjoiYjk4NjI2ZWQtMzc0Yi00MTcwLWIyOWYtNzkyNjAwYjg1OTE3IiwidXNlcl9uYW1lIjoiZnQtYWxpY2UiLCJyb2xlcyI6WyJNQVBfQURWQU5DRUQiLCJBdWN0aW9ucyIsIkRFRUQ3IiwiUlBQIERlc2t0b3AiLCJUaXRsZXMiXSwiaXNzIjoiaHR0cHM6Ly9hcGktZGV2LmNvcmVsb2dpYy5hc2lhL2FjY2VzcyIsImVudl9hY2Nlc3NfcmVzdHJpY3QiOnRydWUsImVudiI6ImRldiIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiVU1fQURNSU4iLCJDTEFVRF9VSSJdLCJnZW9fY29kZXMiOlsiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyJdLCJjbGllbnRfaWQiOiIyYzViYjdlNSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTQyNzU3MTQsImFjY3RfZ3VpZCI6ImM4OTI0NDhmLWExYWMtNGZhOC05ZjE1LWI4NGY3NzY0ZjIyMiIsInVzcl9ndWlkIjoiN2Q3MzExYjYtMjI2MC00OWI4LTk0ZjctMjMwYzJmMTRhMDNiIn0.k8f0qvtzg0LT_zYWh6MIX78ogn1oL6IS0RRlwNDtbc-Am1cEfgygR0earT723sS37WhreXkt2re-90052izaAdNobYaU8Cwr_WozzZvaBuY2w0nQDwijTcpw1p3xnV07pL3_OEKrMO0Qc_BOBo_WoDjCzWBoXghOcuvaJAFKm-o",
                                "type": "text",
                                "description": "Access ID User Token"
                            }
                        ],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/userinfo",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "userinfo"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "5. session logout",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/logout?session-clear=true",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "logout"
                            ],
                            "query": [
                                {
                                    "key": "session-clear",
                                    "value": "true"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "5.a. Application logout (returns to login page)",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-uat-api.corelogic.asia/access/user/logout?redirectUri={{rpp}}/rpp/login.html&accessToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwYTM5OTM5MS01MzZmLTQyMmYtOGQ4Ny0yMmFhNjY3MWZjNjciLCJhcHBfYWNjdF9ndWlkIjoiYjk4NjI2ZWQtMzc0Yi00MTcwLWIyOWYtNzkyNjAwYjg1OTE3IiwidXNlcl9uYW1lIjoiZnQtYWxpY2UiLCJyb2xlcyI6WyJNQVBfQURWQU5DRUQiLCJBdWN0aW9ucyIsIkRFRUQ3IiwiUlBQIERlc2t0b3AiLCJUaXRsZXMiXSwiaXNzIjoiaHR0cHM6Ly9hcGktZGV2LmNvcmVsb2dpYy5hc2lhL2FjY2VzcyIsImVudl9hY2Nlc3NfcmVzdHJpY3QiOnRydWUsImVudiI6ImRldiIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiVU1fQURNSU4iLCJDTEFVRF9VSSJdLCJnZW9fY29kZXMiOlsiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyJdLCJjbGllbnRfaWQiOiIyYzViYjdlNSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTQyNzU3MTQsImFjY3RfZ3VpZCI6ImM4OTI0NDhmLWExYWMtNGZhOC05ZjE1LWI4NGY3NzY0ZjIyMiIsInVzcl9ndWlkIjoiN2Q3MzExYjYtMjI2MC00OWI4LTk0ZjctMjMwYzJmMTRhMDNiIn0.k8f0qvtzg0LT_zYWh6MIX78ogn1oL6IS0RRlwNDtbc-Am1cEfgygR0earT723sS37WhreXkt2re-90052izaAdNobYaU8Cwr_WozzZvaBuY2w0nQDwijTcpw1p3xnV07pL3_OEKrMO0Qc_BOBo_WoDjCzWBoXghOcuvaJAFKm-o",
                            "host": [
                                "https://access-uat-api.corelogic.asia"
                            ],
                            "path": [
                                "access",
                                "user",
                                "logout"
                            ],
                            "query": [
                                {
                                    "key": "redirectUri",
                                    "value": "{{rpp}}/rpp/login.html"
                                },
                                {
                                    "key": "accessToken",
                                    "value": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwYTM5OTM5MS01MzZmLTQyMmYtOGQ4Ny0yMmFhNjY3MWZjNjciLCJhcHBfYWNjdF9ndWlkIjoiYjk4NjI2ZWQtMzc0Yi00MTcwLWIyOWYtNzkyNjAwYjg1OTE3IiwidXNlcl9uYW1lIjoiZnQtYWxpY2UiLCJyb2xlcyI6WyJNQVBfQURWQU5DRUQiLCJBdWN0aW9ucyIsIkRFRUQ3IiwiUlBQIERlc2t0b3AiLCJUaXRsZXMiXSwiaXNzIjoiaHR0cHM6Ly9hcGktZGV2LmNvcmVsb2dpYy5hc2lhL2FjY2VzcyIsImVudl9hY2Nlc3NfcmVzdHJpY3QiOnRydWUsImVudiI6ImRldiIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiVU1fQURNSU4iLCJDTEFVRF9VSSJdLCJnZW9fY29kZXMiOlsiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyJdLCJjbGllbnRfaWQiOiIyYzViYjdlNSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTQyNzU3MTQsImFjY3RfZ3VpZCI6ImM4OTI0NDhmLWExYWMtNGZhOC05ZjE1LWI4NGY3NzY0ZjIyMiIsInVzcl9ndWlkIjoiN2Q3MzExYjYtMjI2MC00OWI4LTk0ZjctMjMwYzJmMTRhMDNiIn0.k8f0qvtzg0LT_zYWh6MIX78ogn1oL6IS0RRlwNDtbc-Am1cEfgygR0earT723sS37WhreXkt2re-90052izaAdNobYaU8Cwr_WozzZvaBuY2w0nQDwijTcpw1p3xnV07pL3_OEKrMO0Qc_BOBo_WoDjCzWBoXghOcuvaJAFKm-o"
                                }
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Application Silent Login by token",
            "item": [
                {
                    "name": "RP Data UAT Silent login Copy",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        },
                        {
                            "listen": "prerequest",
                            "script": {
                                "exec": [
                                    "const moment = require('moment');\r",
                                    "const timestamp = moment().format(\"yyyy-MM-DDTHH:mm:ssZ\");\r",
                                    "const timestampEncoded = encodeURIComponent(timestamp);\r",
                                    "\r",
                                    "// pick up token from authorization code grant (result of Step 3. or refreshes Step 4.)\r",
                                    "const token = pm.globals.get('userToken');\r",
                                    "const apiKey = pm.collectionVariables.get(\"silent-api-key\");\r",
                                    "const apiSecret = pm.collectionVariables.get(\"silent-api-secret\");\r",
                                    "\r",
                                    "// the querystring value we hash should not be URL encoded:\r",
                                    "const hashQuerystring = `timestamp=${timestamp}&oauthToken=${token}&apiKey=${apiKey}`;\r",
                                    "// the querystring value we use for the URL should be URL encoded:\r",
                                    "const querystring = `timestamp=${timestampEncoded}&oauthToken=${token}&apiKey=${apiKey}`;\r",
                                    "pm.globals.set(\"loginQuery\", querystring);\r",
                                    "console.log(\"Login query:\", querystring);\r",
                                    "\r",
                                    "const secret = CryptoJS.enc.Utf8.parse(apiSecret);\r",
                                    "const shaHash = CryptoJS.HmacSHA256(hashQuerystring, secret);\r",
                                    "const hexHash = shaHash.toString(CryptoJS.enc.Hex);\r",
                                    "pm.globals.set(\"loginHash\", hexHash);\r",
                                    "console.log(\"Login hash:\", hexHash);\r",
                                    "\r",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true,
                        "disableCookies": false
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{rpp}}/rpp/dashboard.html?timestamp=2024-03-26T15%3A17%3A12%2B10%3A00&oauthToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTliNTI2Yi02ZjAwLTQxZjctOWUyNC1iYzY1YTM0NDRiYTciLCJhcHBfYWNjdF9ndWlkIjoiZTRmNTFiZmYtMDI0OS00Yzc3LThhNzUtMzBmZGRlODZkN2Q2IiwidXNlcl9uYW1lIjoic2hhcm9uLmJleW5vbiIsInJvbGVzIjpbIlJlbnRhbCBBdm0gRnVsbCIsIlByb2ZpbGVyIFByb3BlcnR5IDEgUGFnZSIsIkRFRUQ3IiwiUHJvcGVydHkgRGltZW5zaW9ucyIsIlJBRElVU19TRUFSQ0giLCJERVZFTE9QTUVOVF9BUFBMSUNBVElPTlMiLCJMaXN0IFJlbnQiLCJNYXJrZXQgQ29tcGFyZSIsIlJlcG9ydCBNYXJrZXQgQ29tcGFyZSIsIlNBVkVEX0xJU1RTIiwiQnJhbmRpbmcgUmVwb3J0cyIsIlNlYXJjaCBBZGRyZXNzIiwiQnV5ZXJzIFJlcG9ydCIsIlJQRGF0YSBTdGF0aXN0aWNzIiwiTEdBIFNlYXJjaCIsIlRJVExFU19SRVBPUlQiLCJQYW5lbCBBdWN0aW9ucyIsIlByZW1pdW0gQ01BIiwiU2VhcmNoIEFkdmFuY2VkIiwiU0FWRURfU0VBUkNIRVMiLCJBY2Nlc3MgRGVsZWdhdGlvbiIsIkRJR0lUQUxfUFJPUEVSVFlfUFJPRklMRSIsIlJlbnRhbHMgQ01BIiwiUkVOVEFMX1ZBTFVBVElPTlMiLCJTZWFyY2ggUGFyY2VsIiwiUHJvZmlsZXIgU3VidXJiIiwiTWFwIiwiU0VBUkNIX0JVSUxESU5HX05BTUUiLCJTZWFyY2ggTmFtZSIsIlJlcG9ydCBTYWxlcyIsIlJlcG9ydCBPVE0gRm9yIFNhbGUiLCJSZXBvcnQgQXVjdGlvbnMiLCJWYWx1YXRpb24iLCJTdWJ1cmIgU3RhdGlzdGljcyIsIlByb3BlcnR5IENNQSIsIlByb3BlcnR5IEZlYXR1cmVzIiwiQURWQU5DRURfRklMVEVSUyIsIlJlcG9ydCBQcm9wZXJ0eSBMaXN0IiwiT1RNIEZvciBTYWxlIiwiRVhQT1JUX0xJTUlUX1BSTyIsIk9UTSBGb3IgUmVudCIsIlByb3BlcnR5IFByb2ZpbGVyIiwiQ2hpbmVzZSBMYW5ndWFnZSBMaXRlIiwiUHJvc3BlY3RvciIsIkF1Y3Rpb25zIiwiRXhwb3J0IiwiU2FsZXMgSGlzdG9yeSIsIk5PVElGSUNBVElPTlMiLCJQcm9wZXJ0eSIsIkNyZWRpdCBDYXJkIFRva2VuaXNhdGlvbiIsIk1BUF9BRFZBTkNFRCIsIkNNQSBHZW5lcmljIFJlcG9ydCBFbmdpbmUgRnVsbCIsIkJBU0VfRklMVEVSUyIsIlJlcG9ydCBQcmV2aWV3IiwiUGhvbmUgUmVjb3JkcyIsIlByb3BlcnR5IE1vbml0b3IiLCJGb3JtcyBJbnRlZ3JhdGlvbiBETSIsIkJhc2UiLCJQcm9wZXJ0eSBDTUEgQ3VzdG9tIiwiUmVwb3J0IFN1YnVyYiIsIlRpdGxlcyIsIk1hcmtldGluZyBGdWxsIiwiRm9ybXMgSW50ZWdyYXRpb24gQURMIiwiQ29udGFjdHMiLCJSZXBvcnQgT1RNIEZvciBSZW50IiwiU0FWRURfVEVSUklUT1JZIiwiUFJPUE9TQUxfUE9JTlQiLCJWQUxVQVRJT05TX1JFUE9SVCIsIkxpc3QgU2FsZSIsIlVuZGlzY2xvc2VkIFNhbGVzIEFjY2VzcyJdLCJpc3MiOiJodHRwczovL2FjY2Vzcy11YXQtYXBpLmNvcmVsb2dpYy5hc2lhIiwiZW52X2FjY2Vzc19yZXN0cmljdCI6ZmFsc2UsImVudiI6InVhdCIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiQ0xBVURfVUkiXSwiZ2VvX2NvZGVzIjpbIldBIC0gUmVnaW9uYWwiLCJXQSAtIE1ldHJvIiwiVEFTIC0gRnVsbCBTdGF0ZSIsIlNBIC0gUmVnaW9uYWwiLCJTQSAtIE1ldHJvIiwiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyIsIk5UIC0gRnVsbCBTdGF0ZSIsIk5TVyAtIFJlZ2lvbmFsIiwiTlNXIC0gTWV0cm8iLCJBQ1QgLSBGdWxsIFN0YXRlIiwiVklDIC0gRnVsbCBTdGF0ZSJdLCJjbGllbnRfaWQiOiJjMGJiYTc2ZSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTE0MzM3OTQsImFjY3RfZ3VpZCI6IjVkMTYzYTIwLWQyNDYtNDg3My1iZTI1LTQ5NTEzMjkzM2U5ZiIsInVzcl9ndWlkIjoiMTFlZDg1ZTEtNDAyMy00ZWM3LTg2YWItYTc3ZDhlYzMyNWVlIn0.VOf4C0ZImV75AY2TVsKdwav82uqoeO2hklUPRbtFCcQSXLMedxo0fbYuo1Tim8UToEQnPXBrmwb1MrZhWqI5_LNJY7CHGdX5NQ6Z_dIFavg-sNQ7bfN54O6bImW1Au0MUra-nWaB5XG1JHJkpjqTCRqgilyxPCsWPoh086KUVLs&apiKey=9d4f3a80c68dae039b176e0df654f3fb8a64fe68&hash=f4eaa3ea115aa02a09f42ba817c7a5b1ced9fbfc3b692560fda49f8245c7ff73",
                            "host": [
                                "{{rpp}}"
                            ],
                            "path": [
                                "rpp",
                                "dashboard.html"
                            ],
                            "query": [
                                {
                                    "key": "timestamp=2024-03-26T15%3A17%3A12%2B10%3A00&oauthToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTliNTI2Yi02ZjAwLTQxZjctOWUyNC1iYzY1YTM0NDRiYTciLCJhcHBfYWNjdF9ndWlkIjoiZTRmNTFiZmYtMDI0OS00Yzc3LThhNzUtMzBmZGRlODZkN2Q2IiwidXNlcl9uYW1lIjoic2hhcm9uLmJleW5vbiIsInJvbGVzIjpbIlJlbnRhbCBBdm0gRnVsbCIsIlByb2ZpbGVyIFByb3BlcnR5IDEgUGFnZSIsIkRFRUQ3IiwiUHJvcGVydHkgRGltZW5zaW9ucyIsIlJBRElVU19TRUFSQ0giLCJERVZFTE9QTUVOVF9BUFBMSUNBVElPTlMiLCJMaXN0IFJlbnQiLCJNYXJrZXQgQ29tcGFyZSIsIlJlcG9ydCBNYXJrZXQgQ29tcGFyZSIsIlNBVkVEX0xJU1RTIiwiQnJhbmRpbmcgUmVwb3J0cyIsIlNlYXJjaCBBZGRyZXNzIiwiQnV5ZXJzIFJlcG9ydCIsIlJQRGF0YSBTdGF0aXN0aWNzIiwiTEdBIFNlYXJjaCIsIlRJVExFU19SRVBPUlQiLCJQYW5lbCBBdWN0aW9ucyIsIlByZW1pdW0gQ01BIiwiU2VhcmNoIEFkdmFuY2VkIiwiU0FWRURfU0VBUkNIRVMiLCJBY2Nlc3MgRGVsZWdhdGlvbiIsIkRJR0lUQUxfUFJPUEVSVFlfUFJPRklMRSIsIlJlbnRhbHMgQ01BIiwiUkVOVEFMX1ZBTFVBVElPTlMiLCJTZWFyY2ggUGFyY2VsIiwiUHJvZmlsZXIgU3VidXJiIiwiTWFwIiwiU0VBUkNIX0JVSUxESU5HX05BTUUiLCJTZWFyY2ggTmFtZSIsIlJlcG9ydCBTYWxlcyIsIlJlcG9ydCBPVE0gRm9yIFNhbGUiLCJSZXBvcnQgQXVjdGlvbnMiLCJWYWx1YXRpb24iLCJTdWJ1cmIgU3RhdGlzdGljcyIsIlByb3BlcnR5IENNQSIsIlByb3BlcnR5IEZlYXR1cmVzIiwiQURWQU5DRURfRklMVEVSUyIsIlJlcG9ydCBQcm9wZXJ0eSBMaXN0IiwiT1RNIEZvciBTYWxlIiwiRVhQT1JUX0xJTUlUX1BSTyIsIk9UTSBGb3IgUmVudCIsIlByb3BlcnR5IFByb2ZpbGVyIiwiQ2hpbmVzZSBMYW5ndWFnZSBMaXRlIiwiUHJvc3BlY3RvciIsIkF1Y3Rpb25zIiwiRXhwb3J0IiwiU2FsZXMgSGlzdG9yeSIsIk5PVElGSUNBVElPTlMiLCJQcm9wZXJ0eSIsIkNyZWRpdCBDYXJkIFRva2VuaXNhdGlvbiIsIk1BUF9BRFZBTkNFRCIsIkNNQSBHZW5lcmljIFJlcG9ydCBFbmdpbmUgRnVsbCIsIkJBU0VfRklMVEVSUyIsIlJlcG9ydCBQcmV2aWV3IiwiUGhvbmUgUmVjb3JkcyIsIlByb3BlcnR5IE1vbml0b3IiLCJGb3JtcyBJbnRlZ3JhdGlvbiBETSIsIkJhc2UiLCJQcm9wZXJ0eSBDTUEgQ3VzdG9tIiwiUmVwb3J0IFN1YnVyYiIsIlRpdGxlcyIsIk1hcmtldGluZyBGdWxsIiwiRm9ybXMgSW50ZWdyYXRpb24gQURMIiwiQ29udGFjdHMiLCJSZXBvcnQgT1RNIEZvciBSZW50IiwiU0FWRURfVEVSUklUT1JZIiwiUFJPUE9TQUxfUE9JTlQiLCJWQUxVQVRJT05TX1JFUE9SVCIsIkxpc3QgU2FsZSIsIlVuZGlzY2xvc2VkIFNhbGVzIEFjY2VzcyJdLCJpc3MiOiJodHRwczovL2FjY2Vzcy11YXQtYXBpLmNvcmVsb2dpYy5hc2lhIiwiZW52X2FjY2Vzc19yZXN0cmljdCI6ZmFsc2UsImVudiI6InVhdCIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiQ0xBVURfVUkiXSwiZ2VvX2NvZGVzIjpbIldBIC0gUmVnaW9uYWwiLCJXQSAtIE1ldHJvIiwiVEFTIC0gRnVsbCBTdGF0ZSIsIlNBIC0gUmVnaW9uYWwiLCJTQSAtIE1ldHJvIiwiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyIsIk5UIC0gRnVsbCBTdGF0ZSIsIk5TVyAtIFJlZ2lvbmFsIiwiTlNXIC0gTWV0cm8iLCJBQ1QgLSBGdWxsIFN0YXRlIiwiVklDIC0gRnVsbCBTdGF0ZSJdLCJjbGllbnRfaWQiOiJjMGJiYTc2ZSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTE0MzM3OTQsImFjY3RfZ3VpZCI6IjVkMTYzYTIwLWQyNDYtNDg3My1iZTI1LTQ5NTEzMjkzM2U5ZiIsInVzcl9ndWlkIjoiMTFlZDg1ZTEtNDAyMy00ZWM3LTg2YWItYTc3ZDhlYzMyNWVlIn0.VOf4C0ZImV75AY2TVsKdwav82uqoeO2hklUPRbtFCcQSXLMedxo0fbYuo1Tim8UToEQnPXBrmwb1MrZhWqI5_LNJY7CHGdX5NQ6Z_dIFavg-sNQ7bfN54O6bImW1Au0MUra-nWaB5XG1JHJkpjqTCRqgilyxPCsWPoh086KUVLs&apiKey=9d4f3a80c68dae039b176e0df654f3fb8a64fe68",
                                    "value": null,
                                    "description": "Calculated in Pre-request Script - requires \"userToken\" is set!"
                                },
                                {
                                    "key": "hash",
                                    "value": "f4eaa3ea115aa02a09f42ba817c7a5b1ced9fbfc3b692560fda49f8245c7ff73",
                                    "description": "Caluclated in Pre-request Script"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Property Guru UAT Silent login",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        },
                        {
                            "listen": "prerequest",
                            "script": {
                                "exec": [
                                    "const moment = require('moment');\r",
                                    "const timestamp = moment().format(\"yyyy-MM-DDTHH:mm:ssZ\");\r",
                                    "const timestampEncoded = encodeURIComponent(timestamp);\r",
                                    "\r",
                                    "// pick up token from authorization code grant (result of Step 3. or refreshes Step 4.)\r",
                                    "const token = pm.globals.get('userToken');\r",
                                    "const apiKey = pm.collectionVariables.get(\"silent-api-key\");\r",
                                    "const apiSecret = pm.collectionVariables.get(\"silent-api-secret\");\r",
                                    "\r",
                                    "const hashQuerystring = `timestamp=${timestamp}&oauthToken=${token}&apiKey=${apiKey}`;\r",
                                    "const querystring = `timestamp=${timestampEncoded}&oauthToken=${token}&apiKey=${apiKey}`;\r",
                                    "pm.globals.set(\"loginQuery\", querystring);\r",
                                    "console.log(\"Login query:\", querystring);\r",
                                    "\r",
                                    "const secret = CryptoJS.enc.Utf8.parse(apiSecret);\r",
                                    "const shaHash = CryptoJS.HmacSHA256(hashQuerystring, secret);\r",
                                    "const hexHash = shaHash.toString(CryptoJS.enc.Hex);\r",
                                    "pm.globals.set(\"loginHash\", hexHash);\r",
                                    "console.log(\"Login hash:\", hexHash);\r",
                                    "\r",
                                    ""
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "protocolProfileBehavior": {
                        "followRedirects": true,
                        "disableCookies": false
                    },
                    "request": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "{{rpnz}}/rpnz/dashboard.html?timestamp=2024-03-26T15%3A17%3A12%2B10%3A00&oauthToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTliNTI2Yi02ZjAwLTQxZjctOWUyNC1iYzY1YTM0NDRiYTciLCJhcHBfYWNjdF9ndWlkIjoiZTRmNTFiZmYtMDI0OS00Yzc3LThhNzUtMzBmZGRlODZkN2Q2IiwidXNlcl9uYW1lIjoic2hhcm9uLmJleW5vbiIsInJvbGVzIjpbIlJlbnRhbCBBdm0gRnVsbCIsIlByb2ZpbGVyIFByb3BlcnR5IDEgUGFnZSIsIkRFRUQ3IiwiUHJvcGVydHkgRGltZW5zaW9ucyIsIlJBRElVU19TRUFSQ0giLCJERVZFTE9QTUVOVF9BUFBMSUNBVElPTlMiLCJMaXN0IFJlbnQiLCJNYXJrZXQgQ29tcGFyZSIsIlJlcG9ydCBNYXJrZXQgQ29tcGFyZSIsIlNBVkVEX0xJU1RTIiwiQnJhbmRpbmcgUmVwb3J0cyIsIlNlYXJjaCBBZGRyZXNzIiwiQnV5ZXJzIFJlcG9ydCIsIlJQRGF0YSBTdGF0aXN0aWNzIiwiTEdBIFNlYXJjaCIsIlRJVExFU19SRVBPUlQiLCJQYW5lbCBBdWN0aW9ucyIsIlByZW1pdW0gQ01BIiwiU2VhcmNoIEFkdmFuY2VkIiwiU0FWRURfU0VBUkNIRVMiLCJBY2Nlc3MgRGVsZWdhdGlvbiIsIkRJR0lUQUxfUFJPUEVSVFlfUFJPRklMRSIsIlJlbnRhbHMgQ01BIiwiUkVOVEFMX1ZBTFVBVElPTlMiLCJTZWFyY2ggUGFyY2VsIiwiUHJvZmlsZXIgU3VidXJiIiwiTWFwIiwiU0VBUkNIX0JVSUxESU5HX05BTUUiLCJTZWFyY2ggTmFtZSIsIlJlcG9ydCBTYWxlcyIsIlJlcG9ydCBPVE0gRm9yIFNhbGUiLCJSZXBvcnQgQXVjdGlvbnMiLCJWYWx1YXRpb24iLCJTdWJ1cmIgU3RhdGlzdGljcyIsIlByb3BlcnR5IENNQSIsIlByb3BlcnR5IEZlYXR1cmVzIiwiQURWQU5DRURfRklMVEVSUyIsIlJlcG9ydCBQcm9wZXJ0eSBMaXN0IiwiT1RNIEZvciBTYWxlIiwiRVhQT1JUX0xJTUlUX1BSTyIsIk9UTSBGb3IgUmVudCIsIlByb3BlcnR5IFByb2ZpbGVyIiwiQ2hpbmVzZSBMYW5ndWFnZSBMaXRlIiwiUHJvc3BlY3RvciIsIkF1Y3Rpb25zIiwiRXhwb3J0IiwiU2FsZXMgSGlzdG9yeSIsIk5PVElGSUNBVElPTlMiLCJQcm9wZXJ0eSIsIkNyZWRpdCBDYXJkIFRva2VuaXNhdGlvbiIsIk1BUF9BRFZBTkNFRCIsIkNNQSBHZW5lcmljIFJlcG9ydCBFbmdpbmUgRnVsbCIsIkJBU0VfRklMVEVSUyIsIlJlcG9ydCBQcmV2aWV3IiwiUGhvbmUgUmVjb3JkcyIsIlByb3BlcnR5IE1vbml0b3IiLCJGb3JtcyBJbnRlZ3JhdGlvbiBETSIsIkJhc2UiLCJQcm9wZXJ0eSBDTUEgQ3VzdG9tIiwiUmVwb3J0IFN1YnVyYiIsIlRpdGxlcyIsIk1hcmtldGluZyBGdWxsIiwiRm9ybXMgSW50ZWdyYXRpb24gQURMIiwiQ29udGFjdHMiLCJSZXBvcnQgT1RNIEZvciBSZW50IiwiU0FWRURfVEVSUklUT1JZIiwiUFJPUE9TQUxfUE9JTlQiLCJWQUxVQVRJT05TX1JFUE9SVCIsIkxpc3QgU2FsZSIsIlVuZGlzY2xvc2VkIFNhbGVzIEFjY2VzcyJdLCJpc3MiOiJodHRwczovL2FjY2Vzcy11YXQtYXBpLmNvcmVsb2dpYy5hc2lhIiwiZW52X2FjY2Vzc19yZXN0cmljdCI6ZmFsc2UsImVudiI6InVhdCIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiQ0xBVURfVUkiXSwiZ2VvX2NvZGVzIjpbIldBIC0gUmVnaW9uYWwiLCJXQSAtIE1ldHJvIiwiVEFTIC0gRnVsbCBTdGF0ZSIsIlNBIC0gUmVnaW9uYWwiLCJTQSAtIE1ldHJvIiwiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyIsIk5UIC0gRnVsbCBTdGF0ZSIsIk5TVyAtIFJlZ2lvbmFsIiwiTlNXIC0gTWV0cm8iLCJBQ1QgLSBGdWxsIFN0YXRlIiwiVklDIC0gRnVsbCBTdGF0ZSJdLCJjbGllbnRfaWQiOiJjMGJiYTc2ZSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTE0MzM3OTQsImFjY3RfZ3VpZCI6IjVkMTYzYTIwLWQyNDYtNDg3My1iZTI1LTQ5NTEzMjkzM2U5ZiIsInVzcl9ndWlkIjoiMTFlZDg1ZTEtNDAyMy00ZWM3LTg2YWItYTc3ZDhlYzMyNWVlIn0.VOf4C0ZImV75AY2TVsKdwav82uqoeO2hklUPRbtFCcQSXLMedxo0fbYuo1Tim8UToEQnPXBrmwb1MrZhWqI5_LNJY7CHGdX5NQ6Z_dIFavg-sNQ7bfN54O6bImW1Au0MUra-nWaB5XG1JHJkpjqTCRqgilyxPCsWPoh086KUVLs&apiKey=9d4f3a80c68dae039b176e0df654f3fb8a64fe68&hash=f4eaa3ea115aa02a09f42ba817c7a5b1ced9fbfc3b692560fda49f8245c7ff73",
                            "host": [
                                "{{rpnz}}"
                            ],
                            "path": [
                                "rpnz",
                                "dashboard.html"
                            ],
                            "query": [
                                {
                                    "key": "timestamp=2024-03-26T15%3A17%3A12%2B10%3A00&oauthToken=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjZTliNTI2Yi02ZjAwLTQxZjctOWUyNC1iYzY1YTM0NDRiYTciLCJhcHBfYWNjdF9ndWlkIjoiZTRmNTFiZmYtMDI0OS00Yzc3LThhNzUtMzBmZGRlODZkN2Q2IiwidXNlcl9uYW1lIjoic2hhcm9uLmJleW5vbiIsInJvbGVzIjpbIlJlbnRhbCBBdm0gRnVsbCIsIlByb2ZpbGVyIFByb3BlcnR5IDEgUGFnZSIsIkRFRUQ3IiwiUHJvcGVydHkgRGltZW5zaW9ucyIsIlJBRElVU19TRUFSQ0giLCJERVZFTE9QTUVOVF9BUFBMSUNBVElPTlMiLCJMaXN0IFJlbnQiLCJNYXJrZXQgQ29tcGFyZSIsIlJlcG9ydCBNYXJrZXQgQ29tcGFyZSIsIlNBVkVEX0xJU1RTIiwiQnJhbmRpbmcgUmVwb3J0cyIsIlNlYXJjaCBBZGRyZXNzIiwiQnV5ZXJzIFJlcG9ydCIsIlJQRGF0YSBTdGF0aXN0aWNzIiwiTEdBIFNlYXJjaCIsIlRJVExFU19SRVBPUlQiLCJQYW5lbCBBdWN0aW9ucyIsIlByZW1pdW0gQ01BIiwiU2VhcmNoIEFkdmFuY2VkIiwiU0FWRURfU0VBUkNIRVMiLCJBY2Nlc3MgRGVsZWdhdGlvbiIsIkRJR0lUQUxfUFJPUEVSVFlfUFJPRklMRSIsIlJlbnRhbHMgQ01BIiwiUkVOVEFMX1ZBTFVBVElPTlMiLCJTZWFyY2ggUGFyY2VsIiwiUHJvZmlsZXIgU3VidXJiIiwiTWFwIiwiU0VBUkNIX0JVSUxESU5HX05BTUUiLCJTZWFyY2ggTmFtZSIsIlJlcG9ydCBTYWxlcyIsIlJlcG9ydCBPVE0gRm9yIFNhbGUiLCJSZXBvcnQgQXVjdGlvbnMiLCJWYWx1YXRpb24iLCJTdWJ1cmIgU3RhdGlzdGljcyIsIlByb3BlcnR5IENNQSIsIlByb3BlcnR5IEZlYXR1cmVzIiwiQURWQU5DRURfRklMVEVSUyIsIlJlcG9ydCBQcm9wZXJ0eSBMaXN0IiwiT1RNIEZvciBTYWxlIiwiRVhQT1JUX0xJTUlUX1BSTyIsIk9UTSBGb3IgUmVudCIsIlByb3BlcnR5IFByb2ZpbGVyIiwiQ2hpbmVzZSBMYW5ndWFnZSBMaXRlIiwiUHJvc3BlY3RvciIsIkF1Y3Rpb25zIiwiRXhwb3J0IiwiU2FsZXMgSGlzdG9yeSIsIk5PVElGSUNBVElPTlMiLCJQcm9wZXJ0eSIsIkNyZWRpdCBDYXJkIFRva2VuaXNhdGlvbiIsIk1BUF9BRFZBTkNFRCIsIkNNQSBHZW5lcmljIFJlcG9ydCBFbmdpbmUgRnVsbCIsIkJBU0VfRklMVEVSUyIsIlJlcG9ydCBQcmV2aWV3IiwiUGhvbmUgUmVjb3JkcyIsIlByb3BlcnR5IE1vbml0b3IiLCJGb3JtcyBJbnRlZ3JhdGlvbiBETSIsIkJhc2UiLCJQcm9wZXJ0eSBDTUEgQ3VzdG9tIiwiUmVwb3J0IFN1YnVyYiIsIlRpdGxlcyIsIk1hcmtldGluZyBGdWxsIiwiRm9ybXMgSW50ZWdyYXRpb24gQURMIiwiQ29udGFjdHMiLCJSZXBvcnQgT1RNIEZvciBSZW50IiwiU0FWRURfVEVSUklUT1JZIiwiUFJPUE9TQUxfUE9JTlQiLCJWQUxVQVRJT05TX1JFUE9SVCIsIkxpc3QgU2FsZSIsIlVuZGlzY2xvc2VkIFNhbGVzIEFjY2VzcyJdLCJpc3MiOiJodHRwczovL2FjY2Vzcy11YXQtYXBpLmNvcmVsb2dpYy5hc2lhIiwiZW52X2FjY2Vzc19yZXN0cmljdCI6ZmFsc2UsImVudiI6InVhdCIsImF1dGhvcml0aWVzIjpbIkFQUF9BQ0NUX0FETUlOIiwiQ0xBVURfVUkiXSwiZ2VvX2NvZGVzIjpbIldBIC0gUmVnaW9uYWwiLCJXQSAtIE1ldHJvIiwiVEFTIC0gRnVsbCBTdGF0ZSIsIlNBIC0gUmVnaW9uYWwiLCJTQSAtIE1ldHJvIiwiUUxEIC0gUmVnaW9uYWwiLCJRTEQgLSBNZXRybyIsIk5UIC0gRnVsbCBTdGF0ZSIsIk5TVyAtIFJlZ2lvbmFsIiwiTlNXIC0gTWV0cm8iLCJBQ1QgLSBGdWxsIFN0YXRlIiwiVklDIC0gRnVsbCBTdGF0ZSJdLCJjbGllbnRfaWQiOiJjMGJiYTc2ZSIsInNjb3BlIjpbIm9wZW5pZCJdLCJleHAiOjE3MTE0MzM3OTQsImFjY3RfZ3VpZCI6IjVkMTYzYTIwLWQyNDYtNDg3My1iZTI1LTQ5NTEzMjkzM2U5ZiIsInVzcl9ndWlkIjoiMTFlZDg1ZTEtNDAyMy00ZWM3LTg2YWItYTc3ZDhlYzMyNWVlIn0.VOf4C0ZImV75AY2TVsKdwav82uqoeO2hklUPRbtFCcQSXLMedxo0fbYuo1Tim8UToEQnPXBrmwb1MrZhWqI5_LNJY7CHGdX5NQ6Z_dIFavg-sNQ7bfN54O6bImW1Au0MUra-nWaB5XG1JHJkpjqTCRqgilyxPCsWPoh086KUVLs&apiKey=9d4f3a80c68dae039b176e0df654f3fb8a64fe68",
                                    "value": null
                                },
                                {
                                    "key": "hash",
                                    "value": "f4eaa3ea115aa02a09f42ba817c7a5b1ced9fbfc3b692560fda49f8245c7ff73"
                                }
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "GET: API Client_Credentials Simple - confirm client ID and secret are correct",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "var data = JSON.parse(responseBody);",
                            "// Simple access token - authenticates for API calls only",
                            "if (data.access_token) {",
                            "    pm.globals.set(\"tokenACCESS\",  data.access_token);",
                            "}",
                            ""
                        ],
                        "type": "text/javascript"
                    }
                }
            ],
            "request": {
                "method": "GET",
                "header": [],
                "url": {
                    "raw": "https://access-uat-api.corelogic.asia/access/oauth/token?grant_type=client_credentials&client_id={{client-id}}&client_secret={{client-secret}}",
                    "host": [
                        "https://access-uat-api.corelogic.asia"
                    ],
                    "path": [
                        "access",
                        "oauth",
                        "token"
                    ],
                    "query": [
                        {
                            "key": "grant_type",
                            "value": "client_credentials"
                        },
                        {
                            "key": "client_id",
                            "value": "{{client-id}}"
                        },
                        {
                            "key": "client_secret",
                            "value": "{{client-secret}}"
                        }
                    ]
                }
            },
            "response": [
                {
                    "name": "Access token - 12 hours",
                    "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-control.api-coreservices-uat.aws.corelogic.io/access/oauth/token?grant_type=client_credentials&client_id={{client-id}}&client_secret={{client-secret}}",
                            "host": [
                                "https://access-control.api-coreservices-uat.aws.corelogic.io"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "token"
                            ],
                            "query": [
                                {
                                    "key": "grant_type",
                                    "value": "client_credentials"
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}"
                                },
                                {
                                    "key": "client_secret",
                                    "value": "{{client-secret}}"
                                }
                            ]
                        }
                    },
                    "status": "OK",
                    "code": 200,
                    "_postman_previewlanguage": "json",
                    "header": [
                        {
                            "key": "Date",
                            "value": "Sun, 19 Jun 2022 01:31:08 GMT"
                        },
                        {
                            "key": "Content-Type",
                            "value": "application/json"
                        },
                        {
                            "key": "Transfer-Encoding",
                            "value": "chunked"
                        },
                        {
                            "key": "Connection",
                            "value": "keep-alive"
                        },
                        {
                            "key": "Set-Cookie",
                            "value": "AWSALB=dkmrJZnxPuW5Q8Shm9YCBWkulxjIWALwBiItXERhCAfdqORyBIwOnHqe+Cg3fp5akUgvN5mvXzQ/qQOTC062vUPfUum+hMHhyy7ukyRrCoD2d8ke2c44DccEgCHz; Expires=Sun, 26 Jun 2022 01:31:02 GMT; Path=/"
                        },
                        {
                            "key": "Set-Cookie",
                            "value": "AWSALBCORS=dkmrJZnxPuW5Q8Shm9YCBWkulxjIWALwBiItXERhCAfdqORyBIwOnHqe+Cg3fp5akUgvN5mvXzQ/qQOTC062vUPfUum+hMHhyy7ukyRrCoD2d8ke2c44DccEgCHz; Expires=Sun, 26 Jun 2022 01:31:02 GMT; Path=/; SameSite=None"
                        },
                        {
                            "key": "Cache-Control",
                            "value": "no-store"
                        },
                        {
                            "key": "Pragma",
                            "value": "no-cache"
                        },
                        {
                            "key": "X-Content-Type-Options",
                            "value": "nosniff"
                        },
                        {
                            "key": "X-XSS-Protection",
                            "value": "1; mode=block"
                        },
                        {
                            "key": "X-Frame-Options",
                            "value": "DENY"
                        }
                    ],
                    "cookie": [],
                    "body": "{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6WyJDUlQiLCJNQVAiLCJQVFkiLCJTR1QiLCJTVFMiLCJUVEwiXSwicm9sZXMiOltdLCJpc3MiOiJodHRwczovL2FjY2Vzcy1hcGkuY29yZWxvZ2ljLmFzaWEiLCJlbnZfYWNjZXNzX3Jlc3RyaWN0Ijp0cnVlLCJleHAiOjE2NTU2NDU0NjIsImdlb19jb2RlcyI6W10sImNsaWVudF9pZCI6IjJjNWJiN2U1Iiwic291cmNlX2V4Y2x1c2lvbiI6W119.QXN7OEAndudOiA9EmNvsF79_vBDYrlnnD7X6ADgb56_e3lpuva5S6ekkghxAcRsDiRpZKVj6sb0063Y6RDEosBrFod5cNsFyowId0nhuzVlSNjqdigyD9oSf1N_1G5lXWV20L8G98yHvflLssiZzkTMmiIbkjpYomF1MTWYgEH0\",\n    \"token_type\": \"bearer\",\n    \"expires_in\": 43193,\n    \"scope\": \"CRT MAP PTY SGT STS TTL\",\n    \"iss\": \"https://access-api.corelogic.asia\",\n    \"env_access_restrict\": true,\n    \"geo_codes\": [],\n    \"roles\": [],\n    \"source_exclusion\": []\n}"
                }
            ]
        },
        {
            "name": "POST: API Client_Credentials - POST protects the secrets from URL exposure",
            "event": [
                {
                    "listen": "test",
                    "script": {
                        "exec": [
                            "var data = JSON.parse(responseBody);",
                            "// Simple access token - authenticates for API calls only",
                            "if (data.access_token) {",
                            "    pm.globals.set(\"tokenACCESS\",  data.access_token);",
                            "}",
                            ""
                        ],
                        "type": "text/javascript"
                    }
                }
            ],
            "request": {
                "auth": {
                    "type": "noauth"
                },
                "method": "POST",
                "header": [],
                "body": {
                    "mode": "urlencoded",
                    "urlencoded": [
                        {
                            "key": "grant_type",
                            "value": "client_credentials",
                            "type": "text"
                        },
                        {
                            "key": "client_id",
                            "value": "{{client-id}}",
                            "type": "text"
                        },
                        {
                            "key": "client_secret",
                            "value": "{{client-secret}}",
                            "type": "text"
                        }
                    ]
                },
                "url": {
                    "raw": "https://access-uat-api.corelogic.asia/access/oauth/token",
                    "host": [
                        "https://access-uat-api.corelogic.asia"
                    ],
                    "path": [
                        "access",
                        "oauth",
                        "token"
                    ]
                }
            },
            "response": [
                {
                    "name": "Access token - 12 hours",
                    "originalRequest": {
                        "method": "GET",
                        "header": [],
                        "url": {
                            "raw": "https://access-control.api-coreservices-uat.aws.corelogic.io/access/oauth/token?grant_type=client_credentials&client_id={{client-id}}&client_secret={{client-secret}}",
                            "host": [
                                "https://access-control.api-coreservices-uat.aws.corelogic.io"
                            ],
                            "path": [
                                "access",
                                "oauth",
                                "token"
                            ],
                            "query": [
                                {
                                    "key": "grant_type",
                                    "value": "client_credentials"
                                },
                                {
                                    "key": "client_id",
                                    "value": "{{client-id}}"
                                },
                                {
                                    "key": "client_secret",
                                    "value": "{{client-secret}}"
                                }
                            ]
                        }
                    },
                    "status": "OK",
                    "code": 200,
                    "_postman_previewlanguage": "json",
                    "header": [
                        {
                            "key": "Date",
                            "value": "Sun, 19 Jun 2022 01:31:08 GMT"
                        },
                        {
                            "key": "Content-Type",
                            "value": "application/json"
                        },
                        {
                            "key": "Transfer-Encoding",
                            "value": "chunked"
                        },
                        {
                            "key": "Connection",
                            "value": "keep-alive"
                        },
                        {
                            "key": "Set-Cookie",
                            "value": "AWSALB=dkmrJZnxPuW5Q8Shm9YCBWkulxjIWALwBiItXERhCAfdqORyBIwOnHqe+Cg3fp5akUgvN5mvXzQ/qQOTC062vUPfUum+hMHhyy7ukyRrCoD2d8ke2c44DccEgCHz; Expires=Sun, 26 Jun 2022 01:31:02 GMT; Path=/"
                        },
                        {
                            "key": "Set-Cookie",
                            "value": "AWSALBCORS=dkmrJZnxPuW5Q8Shm9YCBWkulxjIWALwBiItXERhCAfdqORyBIwOnHqe+Cg3fp5akUgvN5mvXzQ/qQOTC062vUPfUum+hMHhyy7ukyRrCoD2d8ke2c44DccEgCHz; Expires=Sun, 26 Jun 2022 01:31:02 GMT; Path=/; SameSite=None"
                        },
                        {
                            "key": "Cache-Control",
                            "value": "no-store"
                        },
                        {
                            "key": "Pragma",
                            "value": "no-cache"
                        },
                        {
                            "key": "X-Content-Type-Options",
                            "value": "nosniff"
                        },
                        {
                            "key": "X-XSS-Protection",
                            "value": "1; mode=block"
                        },
                        {
                            "key": "X-Frame-Options",
                            "value": "DENY"
                        }
                    ],
                    "cookie": [],
                    "body": "{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6WyJDUlQiLCJNQVAiLCJQVFkiLCJTR1QiLCJTVFMiLCJUVEwiXSwicm9sZXMiOltdLCJpc3MiOiJodHRwczovL2FjY2Vzcy1hcGkuY29yZWxvZ2ljLmFzaWEiLCJlbnZfYWNjZXNzX3Jlc3RyaWN0Ijp0cnVlLCJleHAiOjE2NTU2NDU0NjIsImdlb19jb2RlcyI6W10sImNsaWVudF9pZCI6IjJjNWJiN2U1Iiwic291cmNlX2V4Y2x1c2lvbiI6W119.QXN7OEAndudOiA9EmNvsF79_vBDYrlnnD7X6ADgb56_e3lpuva5S6ekkghxAcRsDiRpZKVj6sb0063Y6RDEosBrFod5cNsFyowId0nhuzVlSNjqdigyD9oSf1N_1G5lXWV20L8G98yHvflLssiZzkTMmiIbkjpYomF1MTWYgEH0\",\n    \"token_type\": \"bearer\",\n    \"expires_in\": 43193,\n    \"scope\": \"CRT MAP PTY SGT STS TTL\",\n    \"iss\": \"https://access-api.corelogic.asia\",\n    \"env_access_restrict\": true,\n    \"geo_codes\": [],\n    \"roles\": [],\n    \"source_exclusion\": []\n}"
                }
            ]
        }
    ],
    "auth": {
        "type": "oauth2",
        "oauth2": [
            {
                "key": "client_authentication",
                "value": "body",
                "type": "string"
            },
            {
                "key": "scope",
                "value": "openid",
                "type": "string"
            },
            {
                "key": "clientSecret",
                "value": "{{client-secret}}",
                "type": "string"
            },
            {
                "key": "clientId",
                "value": "{{client-id}}",
                "type": "string"
            },
            {
                "key": "accessTokenUrl",
                "value": "https://access-uat-api.corelogic.asia/access/oauth/token",
                "type": "string"
            },
            {
                "key": "authUrl",
                "value": "https://access-uat-api.corelogic.asia/access/oauth/authorize",
                "type": "string"
            },
            {
                "key": "redirect_uri",
                "value": "{{client-redirect-uri}}",
                "type": "string"
            },
            {
                "key": "tokenName",
                "value": "cl-user-token",
                "type": "string"
            },
            {
                "key": "addTokenTo",
                "value": "header",
                "type": "string"
            }
        ]
    },
    "event": [
        {
            "listen": "prerequest",
            "script": {
                "type": "text/javascript",
                "exec": [
                    "// Authentication Domains - set UAT or Production url's based on Environment selected",
                    "if(pm.environment.name=\"uat\"){",
                    "    pm.environment.set(\"access\", \"https://access-uat-api.corelogic.asia\"); ",
                    "    pm.collectionVariables.set('access', 'https://access-uat.corelogic.asia');",
                    "    pm.collectionVariables.set('rpp', 'https://rpp-uat.corelogic.asia');",
                    "    pm.collectionVariables.set('rpnz', 'https://rpnz-uat.corelogic.co.nz');",
                    "",
                    "",
                    "}else if(pm.environment.name=\"prod\"){",
                    "    pm.environment.set(\"access\", \"https://access-api.corelogic.asia\"); ",
                    "    pm.collectionVariables.set('access', 'https://access.corelogic.asia');",
                    "    pm.collectionVariables.set('rpp', 'https://rpp.corelogic.asia');",
                    "    pm.collectionVariables.set('rpnz', 'https://www.rpnz.co.nz');",
                    "}else{",
                    "    pm.environment.set(\"access\", \"https://access-uat-api.corelogic.asia\"); ",
                    "    pm.collectionVariables.set('access', 'https://access-uat.corelogic.asia');",
                    "    pm.collectionVariables.set('rpp', 'https://rpp-uat.corelogic.asia');",
                    "    pm.collectionVariables.set('rpnz', 'https://rpnz-uat.corelogic.co.nz');",
                    "}",
                    "//-------Please set the below variables--------",
                    "// ------------- OAuth Client Credentials or Authorization Code ----------",
                    "// Authenticate - obtain token via client_credential or authorization_code grants:",
                    "pm.collectionVariables.set('client-id', 'ai1i0u5FhPC2tQ07Vkt7aWqWhtMrn8pJ');",
                    "pm.collectionVariables.set('client-secret', '0UIhekVQybUOusqw');",
                    "// ------------- OAuth Client Credentials or Authorization Code ----------",
                    "",
                    "",
                    "// ------------- OAuth Authorization Code grant --------------------------",
                    "// Appliation Specific URI for this Client ID and Application ",
                    "// This URL is configured as the redirect after successfully entering username and password.",
                    "pm.collectionVariables.set('client-redirect-uri', ''); ",
                    "pm.collectionVariables.set('client-app-key', 'RPP');",
                    "",
                    "// CoreLogic username and password - must have active access to the application",
                    "pm.collectionVariables.set('username', '');",
                    "pm.collectionVariables.set('password', '');",
                    "// ------------- OAuth Authorization Code grant --------------------------",
                    "",
                    "",
                    "// ------------- Integrated Application Silent Login ---------------------",
                    "",
                    "// Application silent login integrator API  - convert token to login session",
                    "pm.collectionVariables.set('silent-api-key', '');",
                    "pm.collectionVariables.set('silent-api-secret', '');",
                    "pm.collectionVariables.set('silent-username', '');",
                    "",
                    "// ------------- Integrated Application Silent Login ---------------------"
                ]
            }
        },
        {
            "listen": "test",
            "script": {
                "type": "text/javascript",
                "exec": [
                    ""
                ]
            }
        }
    ],
    "variable": [
        {
            "key": "access-lz",
            "value": ""
        },
        {
            "key": "client-id",
            "value": ""
        },
        {
            "key": "client-secret",
            "value": ""
        },
        {
            "key": "client-redirect-uri",
            "value": ""
        },
        {
            "key": "username",
            "value": ""
        },
        {
            "key": "password",
            "value": ""
        },
        {
            "key": "silent-app-key",
            "value": ""
        },
        {
            "key": "silent-client-id",
            "value": ""
        },
        {
            "key": "silent-client-secret",
            "value": ""
        },
        {
            "key": "silent-api-key",
            "value": ""
        },
        {
            "key": "silent-api-secret",
            "value": ""
        },
        {
            "key": "silent-cl-user-guid",
            "value": ""
        },
        {
            "key": "silent-redirect-uri",
            "value": ""
        },
        {
            "key": "silent-username",
            "value": ""
        },
        {
            "key": "silent-code",
            "value": ""
        },
        {
            "key": "access",
            "value": ""
        },
        {
            "key": "client-app-key",
            "value": ""
        },
        {
            "key": "environment",
            "value": ""
        },
        {
            "key": "rpp",
            "value": ""
        },
        {
            "key": "rpnz",
            "value": ""
        }
    ]
}