Domain qa.defect-tracker.web.ata.dev
United States
AMAZON-02
Software information

AmazonS3 AmazonS3

tcp/443

CloudFront

tcp/80

  • Open service 65.8.131.98:80 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 301 Moved Permanently
    Server: CloudFront
    Date: Mon, 22 Dec 2025 00:00:16 GMT
    Content-Type: text/html
    Content-Length: 167
    Connection: close
    Location: https://qa.defect-tracker.web.ata.dev/
    X-Cache: Redirect from cloudfront
    Via: 1.1 e82859bd3e5e584a3698e67f22415dae.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: S3dF1VGJUB7A2nTwRXMWNv_lY4JCO8bsIdHffiuHzIgWLM19hKHP-w==
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>CloudFront</center>
    </body>
    </html>
    
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.78:443 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 14519
    Connection: close
    Last-Modified: Mon, 15 Dec 2025 12:55:24 GMT
    x-amz-server-side-encryption: AES256
    Accept-Ranges: bytes
    Server: AmazonS3
    Date: Sun, 21 Dec 2025 20:37:25 GMT
    ETag: "591b9f0d4e250b972931a8f90b662c5a"
    X-Cache: Error from cloudfront
    Via: 1.1 c8441ee313b5204aa32e9bf5a370d536.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: RxxNn2pod0TCb5cN8rB2GP8ZFp_ieV4xzQ3SOlODZajAXWGwcPfShg==
    Age: 12172
    
    Page title: All Things API
    
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <link rel="icon" href="/Group.png" />
        <meta name="viewport" content="width=device-width, initial-scale=0.1" />
        <meta name="theme-color" content="#000000" />
        <meta
          name="description"
          content="Web site created using create-react-app"
        />
        <link rel="apple-touch-icon" href="/Group.png" />
        <link rel="manifest" href="/manifest.json" />
        <title>All Things API</title>
        <link
          rel="stylesheet"
          href="src/bug-tracker/build-bug-tracker/ata-bug-tracker.css"
        />
    
        <!-- <script>
          // Token refresh interceptor
          (function() {
            const TOKEN_KEYS = {
              ACCESS: "accessToken",
              REFRESH: "refreshToken",
              ROLE: "userRoleCode"
            };
    
            // Mutex implementation to prevent multiple refresh calls
            const mutex = {
              locked: false,
              queue: [],
              lock() {
                this.locked = true;
              },
              unlock() {
                this.locked = false;
                this.queue.forEach(resolve => resolve());
                this.queue = [];
              },
              waitForUnlock() {
                if (!this.locked) return Promise.resolve();
                return new Promise(resolve => this.queue.push(resolve));
              }
            };
    
            // Check if token is expired
            function isTokenExpired(token) {
              try {
                const base64Url = token.split('.')[1];
                const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
                const jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
                  return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
                }).join(''));
                const decoded = JSON.parse(jsonPayload);
                return decoded.exp * 1000 < Date.now();
              } catch (e) {
                return true;
              }
            }
    
            // Get token from storage
            function getToken(key) {
              return localStorage.getItem(key) || sessionStorage.getItem(key);
            }
    
            // Set token in storage
            function setToken(key, value) {
              if (localStorage.getItem(key) !== null) {
                localStorage.setItem(key, value);
              } else if (sessionStorage.getItem(key) !== null) {
                sessionStorage.setItem(key, value);
              } else {
                localStorage.setItem(key, value);
              }
            }
    
            // Refresh token function
            async function refreshToken() {
              if (mutex.locked) {
                await mutex.waitForUnlock();
                return getToken(TOKEN_KEYS.ACCESS);
              }
    
              mutex.lock();
              try {
                const refreshToken = getToken(TOKEN_KEYS.REFRESH);
                if (!refreshToken) {
                  window.location.href = '/login';
                  return null;
                }
    
                // Check if refresh token is expired
                if (isTokenExpired(refreshToken)) {
                  window.location.href = '/login';
                  return null;
                }
    
                const apiBaseUrl = window.VITE_API_BASE_URL || process.env?.VITE_API_BASE_URL;
                const response = await fetch(`${apiBaseUrl}/company-mgmt/user/refresh-token`, {
                  method: 'POST',
                  headers: {
                    'Content-Type': 'application/json',
                    'x-api-key': window.VITE_COMPANY_API_KEY || process.env?.VITE_COMPANY_API_KEY
                  },
                  body: JSON.stringify({ refreshtoken: refreshToken })
                });
    
                if (!response.ok) {
                  throw new Error('Failed to refresh token');
                }
    
                const data = await response.json();
                if (data?.data?.decryptedData) {
                  const { accessToken, refreshToken: newRefreshToken } = data.data.decryptedData;
                  setToken(TOKEN_KEYS.ACCESS, accessToken);
                  setToken(TOKEN_KEYS.REFRESH, newRefreshToken);
                  return accessToken;
                } else {
                  throw new Error('Invalid token response');
                }
              } catch (erro
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.129:443 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 14519
    Connection: close
    Last-Modified: Mon, 15 Dec 2025 12:55:24 GMT
    x-amz-server-side-encryption: AES256
    Accept-Ranges: bytes
    Server: AmazonS3
    Date: Sun, 21 Dec 2025 20:37:25 GMT
    ETag: "591b9f0d4e250b972931a8f90b662c5a"
    X-Cache: Error from cloudfront
    Via: 1.1 f126ea1ed848e1f1d4c478d1f814e2c2.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: 4G5zJZtB3q8FJ2Y4lcELVSHM64iKBGcYUkbBCqD0GWFMcwUoS4x6SQ==
    Age: 12172
    
    Page title: All Things API
    
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <link rel="icon" href="/Group.png" />
        <meta name="viewport" content="width=device-width, initial-scale=0.1" />
        <meta name="theme-color" content="#000000" />
        <meta
          name="description"
          content="Web site created using create-react-app"
        />
        <link rel="apple-touch-icon" href="/Group.png" />
        <link rel="manifest" href="/manifest.json" />
        <title>All Things API</title>
        <link
          rel="stylesheet"
          href="src/bug-tracker/build-bug-tracker/ata-bug-tracker.css"
        />
    
        <!-- <script>
          // Token refresh interceptor
          (function() {
            const TOKEN_KEYS = {
              ACCESS: "accessToken",
              REFRESH: "refreshToken",
              ROLE: "userRoleCode"
            };
    
            // Mutex implementation to prevent multiple refresh calls
            const mutex = {
              locked: false,
              queue: [],
              lock() {
                this.locked = true;
              },
              unlock() {
                this.locked = false;
                this.queue.forEach(resolve => resolve());
                this.queue = [];
              },
              waitForUnlock() {
                if (!this.locked) return Promise.resolve();
                return new Promise(resolve => this.queue.push(resolve));
              }
            };
    
            // Check if token is expired
            function isTokenExpired(token) {
              try {
                const base64Url = token.split('.')[1];
                const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
                const jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
                  return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
                }).join(''));
                const decoded = JSON.parse(jsonPayload);
                return decoded.exp * 1000 < Date.now();
              } catch (e) {
                return true;
              }
            }
    
            // Get token from storage
            function getToken(key) {
              return localStorage.getItem(key) || sessionStorage.getItem(key);
            }
    
            // Set token in storage
            function setToken(key, value) {
              if (localStorage.getItem(key) !== null) {
                localStorage.setItem(key, value);
              } else if (sessionStorage.getItem(key) !== null) {
                sessionStorage.setItem(key, value);
              } else {
                localStorage.setItem(key, value);
              }
            }
    
            // Refresh token function
            async function refreshToken() {
              if (mutex.locked) {
                await mutex.waitForUnlock();
                return getToken(TOKEN_KEYS.ACCESS);
              }
    
              mutex.lock();
              try {
                const refreshToken = getToken(TOKEN_KEYS.REFRESH);
                if (!refreshToken) {
                  window.location.href = '/login';
                  return null;
                }
    
                // Check if refresh token is expired
                if (isTokenExpired(refreshToken)) {
                  window.location.href = '/login';
                  return null;
                }
    
                const apiBaseUrl = window.VITE_API_BASE_URL || process.env?.VITE_API_BASE_URL;
                const response = await fetch(`${apiBaseUrl}/company-mgmt/user/refresh-token`, {
                  method: 'POST',
                  headers: {
                    'Content-Type': 'application/json',
                    'x-api-key': window.VITE_COMPANY_API_KEY || process.env?.VITE_COMPANY_API_KEY
                  },
                  body: JSON.stringify({ refreshtoken: refreshToken })
                });
    
                if (!response.ok) {
                  throw new Error('Failed to refresh token');
                }
    
                const data = await response.json();
                if (data?.data?.decryptedData) {
                  const { accessToken, refreshToken: newRefreshToken } = data.data.decryptedData;
                  setToken(TOKEN_KEYS.ACCESS, accessToken);
                  setToken(TOKEN_KEYS.REFRESH, newRefreshToken);
                  return accessToken;
                } else {
                  throw new Error('Invalid token response');
                }
              } catch (erro
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.78:80 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 301 Moved Permanently
    Server: CloudFront
    Date: Mon, 22 Dec 2025 00:00:15 GMT
    Content-Type: text/html
    Content-Length: 167
    Connection: close
    Location: https://qa.defect-tracker.web.ata.dev/
    X-Cache: Redirect from cloudfront
    Via: 1.1 7ca1f888e55cc20dcbd40691cd7e4e84.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: Pqk7LpNDDae6P2BnxTY9l6-so5PKHk7fIUCPb42G42fliJmRUUBpgg==
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>CloudFront</center>
    </body>
    </html>
    
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.129:80 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 301 Moved Permanently
    Server: CloudFront
    Date: Mon, 22 Dec 2025 00:00:15 GMT
    Content-Type: text/html
    Content-Length: 167
    Connection: close
    Location: https://qa.defect-tracker.web.ata.dev/
    X-Cache: Redirect from cloudfront
    Via: 1.1 e82859bd3e5e584a3698e67f22415dae.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: NIwzgaWgi2t1fCUsS6IVDZY2OJHJyAAwGJwkqmRt3a-3uwL1bTEGeQ==
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>CloudFront</center>
    </body>
    </html>
    
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.103:80 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 301 Moved Permanently
    Server: CloudFront
    Date: Mon, 22 Dec 2025 00:00:15 GMT
    Content-Type: text/html
    Content-Length: 167
    Connection: close
    Location: https://qa.defect-tracker.web.ata.dev/
    X-Cache: Redirect from cloudfront
    Via: 1.1 cf0761f56e297984902a10e73dbff038.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: KCX81DdV29u9HIYyHQF7JyDdq-fL48ouciw1jWC7-JUf8PcUH0DYIQ==
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>CloudFront</center>
    </body>
    </html>
    
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.103:443 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 14519
    Connection: close
    Last-Modified: Mon, 15 Dec 2025 12:55:24 GMT
    x-amz-server-side-encryption: AES256
    Accept-Ranges: bytes
    Server: AmazonS3
    Date: Sun, 21 Dec 2025 20:37:25 GMT
    ETag: "591b9f0d4e250b972931a8f90b662c5a"
    X-Cache: Error from cloudfront
    Via: 1.1 d07394c1abd1aadfca4b7709ba1de6a8.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: ENBS1v1l6gczy-_70D7ig67L7wpAqe6sTzPSfViuIkYSkk8SojONNw==
    Age: 12171
    
    Page title: All Things API
    
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <link rel="icon" href="/Group.png" />
        <meta name="viewport" content="width=device-width, initial-scale=0.1" />
        <meta name="theme-color" content="#000000" />
        <meta
          name="description"
          content="Web site created using create-react-app"
        />
        <link rel="apple-touch-icon" href="/Group.png" />
        <link rel="manifest" href="/manifest.json" />
        <title>All Things API</title>
        <link
          rel="stylesheet"
          href="src/bug-tracker/build-bug-tracker/ata-bug-tracker.css"
        />
    
        <!-- <script>
          // Token refresh interceptor
          (function() {
            const TOKEN_KEYS = {
              ACCESS: "accessToken",
              REFRESH: "refreshToken",
              ROLE: "userRoleCode"
            };
    
            // Mutex implementation to prevent multiple refresh calls
            const mutex = {
              locked: false,
              queue: [],
              lock() {
                this.locked = true;
              },
              unlock() {
                this.locked = false;
                this.queue.forEach(resolve => resolve());
                this.queue = [];
              },
              waitForUnlock() {
                if (!this.locked) return Promise.resolve();
                return new Promise(resolve => this.queue.push(resolve));
              }
            };
    
            // Check if token is expired
            function isTokenExpired(token) {
              try {
                const base64Url = token.split('.')[1];
                const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
                const jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
                  return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
                }).join(''));
                const decoded = JSON.parse(jsonPayload);
                return decoded.exp * 1000 < Date.now();
              } catch (e) {
                return true;
              }
            }
    
            // Get token from storage
            function getToken(key) {
              return localStorage.getItem(key) || sessionStorage.getItem(key);
            }
    
            // Set token in storage
            function setToken(key, value) {
              if (localStorage.getItem(key) !== null) {
                localStorage.setItem(key, value);
              } else if (sessionStorage.getItem(key) !== null) {
                sessionStorage.setItem(key, value);
              } else {
                localStorage.setItem(key, value);
              }
            }
    
            // Refresh token function
            async function refreshToken() {
              if (mutex.locked) {
                await mutex.waitForUnlock();
                return getToken(TOKEN_KEYS.ACCESS);
              }
    
              mutex.lock();
              try {
                const refreshToken = getToken(TOKEN_KEYS.REFRESH);
                if (!refreshToken) {
                  window.location.href = '/login';
                  return null;
                }
    
                // Check if refresh token is expired
                if (isTokenExpired(refreshToken)) {
                  window.location.href = '/login';
                  return null;
                }
    
                const apiBaseUrl = window.VITE_API_BASE_URL || process.env?.VITE_API_BASE_URL;
                const response = await fetch(`${apiBaseUrl}/company-mgmt/user/refresh-token`, {
                  method: 'POST',
                  headers: {
                    'Content-Type': 'application/json',
                    'x-api-key': window.VITE_COMPANY_API_KEY || process.env?.VITE_COMPANY_API_KEY
                  },
                  body: JSON.stringify({ refreshtoken: refreshToken })
                });
    
                if (!response.ok) {
                  throw new Error('Failed to refresh token');
                }
    
                const data = await response.json();
                if (data?.data?.decryptedData) {
                  const { accessToken, refreshToken: newRefreshToken } = data.data.decryptedData;
                  setToken(TOKEN_KEYS.ACCESS, accessToken);
                  setToken(TOKEN_KEYS.REFRESH, newRefreshToken);
                  return accessToken;
                } else {
                  throw new Error('Invalid token response');
                }
              } catch (erro
    Found 2025-12-22 by HttpPlugin
    Create report
  • Open service 65.8.131.98:443 · qa.defect-tracker.web.ata.dev

    2025-12-22 00:00

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 14519
    Connection: close
    Last-Modified: Mon, 15 Dec 2025 12:55:24 GMT
    x-amz-server-side-encryption: AES256
    Accept-Ranges: bytes
    Server: AmazonS3
    Date: Sun, 21 Dec 2025 20:37:25 GMT
    ETag: "591b9f0d4e250b972931a8f90b662c5a"
    X-Cache: Error from cloudfront
    Via: 1.1 e82859bd3e5e584a3698e67f22415dae.cloudfront.net (CloudFront)
    X-Amz-Cf-Pop: FRA60-P13
    X-Amz-Cf-Id: AWkNmqRBTvGgKChXllVobeIgD2GQqOEVUXhEGuQZbb8SEEVdrU5sHg==
    Age: 12171
    
    Page title: All Things API
    
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <link rel="icon" href="/Group.png" />
        <meta name="viewport" content="width=device-width, initial-scale=0.1" />
        <meta name="theme-color" content="#000000" />
        <meta
          name="description"
          content="Web site created using create-react-app"
        />
        <link rel="apple-touch-icon" href="/Group.png" />
        <link rel="manifest" href="/manifest.json" />
        <title>All Things API</title>
        <link
          rel="stylesheet"
          href="src/bug-tracker/build-bug-tracker/ata-bug-tracker.css"
        />
    
        <!-- <script>
          // Token refresh interceptor
          (function() {
            const TOKEN_KEYS = {
              ACCESS: "accessToken",
              REFRESH: "refreshToken",
              ROLE: "userRoleCode"
            };
    
            // Mutex implementation to prevent multiple refresh calls
            const mutex = {
              locked: false,
              queue: [],
              lock() {
                this.locked = true;
              },
              unlock() {
                this.locked = false;
                this.queue.forEach(resolve => resolve());
                this.queue = [];
              },
              waitForUnlock() {
                if (!this.locked) return Promise.resolve();
                return new Promise(resolve => this.queue.push(resolve));
              }
            };
    
            // Check if token is expired
            function isTokenExpired(token) {
              try {
                const base64Url = token.split('.')[1];
                const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
                const jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
                  return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
                }).join(''));
                const decoded = JSON.parse(jsonPayload);
                return decoded.exp * 1000 < Date.now();
              } catch (e) {
                return true;
              }
            }
    
            // Get token from storage
            function getToken(key) {
              return localStorage.getItem(key) || sessionStorage.getItem(key);
            }
    
            // Set token in storage
            function setToken(key, value) {
              if (localStorage.getItem(key) !== null) {
                localStorage.setItem(key, value);
              } else if (sessionStorage.getItem(key) !== null) {
                sessionStorage.setItem(key, value);
              } else {
                localStorage.setItem(key, value);
              }
            }
    
            // Refresh token function
            async function refreshToken() {
              if (mutex.locked) {
                await mutex.waitForUnlock();
                return getToken(TOKEN_KEYS.ACCESS);
              }
    
              mutex.lock();
              try {
                const refreshToken = getToken(TOKEN_KEYS.REFRESH);
                if (!refreshToken) {
                  window.location.href = '/login';
                  return null;
                }
    
                // Check if refresh token is expired
                if (isTokenExpired(refreshToken)) {
                  window.location.href = '/login';
                  return null;
                }
    
                const apiBaseUrl = window.VITE_API_BASE_URL || process.env?.VITE_API_BASE_URL;
                const response = await fetch(`${apiBaseUrl}/company-mgmt/user/refresh-token`, {
                  method: 'POST',
                  headers: {
                    'Content-Type': 'application/json',
                    'x-api-key': window.VITE_COMPANY_API_KEY || process.env?.VITE_COMPANY_API_KEY
                  },
                  body: JSON.stringify({ refreshtoken: refreshToken })
                });
    
                if (!response.ok) {
                  throw new Error('Failed to refresh token');
                }
    
                const data = await response.json();
                if (data?.data?.decryptedData) {
                  const { accessToken, refreshToken: newRefreshToken } = data.data.decryptedData;
                  setToken(TOKEN_KEYS.ACCESS, accessToken);
                  setToken(TOKEN_KEYS.REFRESH, newRefreshToken);
                  return accessToken;
                } else {
                  throw new Error('Invalid token response');
                }
              } catch (erro
    Found 2025-12-22 by HttpPlugin
    Create report
qa.defect-tracker.web.ata.dev
CN:
qa.defect-tracker.web.ata.dev
Key:
RSA-2048
Issuer:
Not before:
2025-12-15 00:00
Not after:
2027-01-13 23:59