home / jira / issue_details_raw

issue_details_raw: DHS-108

This data as json

key raw
DHS-108 {"expand":"renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations","id":"125470","self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470","key":"DHS-108","fields":{"statuscategorychangedate":"2025-09-18T12:31:25.423+0300","issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10313","id":"10313","description":"A small, distinct piece of work.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11718?size=medium","name":"Task","subtask":false,"avatarId":11718,"entityId":"f8b7c0e2-21aa-496e-930c-f34c1e9668fe","hierarchyLevel":0},"components":[],"timespent":null,"timeoriginalestimate":null,"project":{"self":"https://traditionasia.atlassian.net/rest/api/3/project/11705","id":"11705","key":"DHS","name":"Date and Holiday Services","projectTypeKey":"software","simplified":true,"avatarUrls":{"48x48":"https://traditionasia.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/12916","24x24":"https://traditionasia.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/12916?size=small","16x16":"https://traditionasia.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/12916?size=xsmall","32x32":"https://traditionasia.atlassian.net/rest/api/3/universal_avatar/view/type/project/avatar/12916?size=medium"}},"description":{"type":"doc","version":1,"content":[{"type":"heading","attrs":{"level":1},"content":[{"type":"text","text":"FXDateServiceAPI v3 - Raw Data Access Specification"}]},{"type":"paragraph","content":[{"type":"text","text":"Status:","marks":[{"type":"strong"}]},{"type":"text","text":" Proposed New Endpoints"}]},{"type":"paragraph","content":[{"type":"text","text":"Service:","marks":[{"type":"strong"}]},{"type":"text","text":" "},{"type":"text","text":"FXDateServiceAPI","marks":[{"type":"code"}]}]},{"type":"paragraph","content":[{"type":"text","text":"API Version:","marks":[{"type":"strong"}]},{"type":"text","text":" v3 (HTTP/2)"}]},{"type":"paragraph","content":[{"type":"text","text":"Protocols:","marks":[{"type":"strong"}]},{"type":"text","text":" REST (JSON) and gRPC (Protobuf)"}]},{"type":"paragraph","content":[{"type":"text","text":"Data Source:","marks":[{"type":"strong"}]},{"type":"text","text":" Directly from underlying database (Raw Access Layer)"}]},{"type":"paragraph","content":[{"type":"text","text":"Goal:","marks":[{"type":"strong"}]},{"type":"text","text":" Provide high-speed, read-only, unprocessed data for downstream clients."}]},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"I. General Service Requirements"}]},{"type":"orderedList","attrs":{"order":1},"content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"Data Contract:","marks":[{"type":"strong"}]},{"type":"text","text":" All responses must strictly adhere to the defined schemas (JSON for REST, Protobuf for gRPC)."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"Raw Data Mandate:","marks":[{"type":"strong"}]},{"type":"text","text":" The service layer must act as a transparent proxy. The data returned "},{"type":"text","text":"must be unprocessed","marks":[{"type":"strong"}]},{"type":"text","text":" and reflect the structure defined by the SQL queries, with only cosmetic adjustments for API standards (e.g., snake_case to camelCase field mapping in the response schema)."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"HTTP/2 Protocol:","marks":[{"type":"strong"}]},{"type":"text","text":" The service must be deployed supporting HTTP/2 (required for gRPC and recommended for modern REST)."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"Error Handling:","marks":[{"type":"strong"}]},{"type":"text","text":" Standard gRPC and REST error codes should be used for validation failures (e.g., 400 Bad Request if a required list of codes is empty) and internal errors (e.g., 500 Internal Server Error)."}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"II. Endpoint 1: "},{"type":"text","text":"getHolidays","marks":[{"type":"code"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"1. Purpose"}]},{"type":"paragraph","content":[{"type":"text","text":"Retrieves the complete, raw list of holiday dates associated with a set of currency codes, directly from the database structure."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"2. Database Query"}]},{"type":"codeBlock","attrs":{"language":"sql"},"content":[{"type":"text","text":"SELECT currency_code, dates\nFROM holiday_sets\nWHERE currency_code IN ($currencies);"}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"3. REST Endpoint Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"8a0b9db7-cd67-4f90-89f2-dccb5a3cd18a"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GET","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Path","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/v3/raw/holidays","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Parameters","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"currencyCodes","marks":[{"type":"code"}]},{"type":"text","text":": A comma-separated list of 3-letter currency codes (e.g., "},{"type":"text","text":"USD,EUR,GBP","marks":[{"type":"code"}]},{"type":"text","text":"). "},{"type":"text","text":"(Required)","marks":[{"type":"strong"}]}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"4. gRPC Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"6f7a8263-8eec-43fb-b3c4-766ddae1dc25"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidays","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Request","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidaysRequest","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated string currency_codes","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Response","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidaysResponse","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated HolidaySet raw_holiday_sets","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"5. Response Schema ("},{"type":"text","text":"HolidaySet","marks":[{"type":"code"}]},{"type":"text","text":")"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"34c187c5-1613-4f5d-b5a8-e6fd898156f5"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"REST (JSON) Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"gRPC (Protobuf) Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Type"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Description"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"currencyCode","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"currency_code","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The 3-letter currency code (e.g., USD)."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dates","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dates","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"repeated string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The array of raw dates (ISO 8601 format: "},{"type":"text","text":"YYYY-MM-DD","marks":[{"type":"code"}]},{"type":"text","text":")."}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"III. Endpoint 2: "},{"type":"text","text":"getHolidaysWithTrim","marks":[{"type":"code"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"1. Purpose"}]},{"type":"paragraph","content":[{"type":"text","text":"Retrieves holiday dates for specified currencies, but limits (trims) the returned dates to those falling within the inclusive year range provided by the client. "},{"type":"text","text":"The trimming must occur in the database query.","marks":[{"type":"strong"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"2. Database Query"}]},{"type":"codeBlock","content":[{"type":"text","text":"SELECT\n currency_code,\n array(\n SELECT date_item\n FROM unnest(dates) AS date_item\n WHERE EXTRACT(YEAR FROM date_item) BETWEEN $fromYearIncl AND $toYearIncl\n ) AS dates\nFROM holiday_sets\nWHERE currency_code IN ($currencies);"}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"3. REST Endpoint Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"04d915b6-64d7-4070-8843-9eb7a11bd801"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GET","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Path","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/v3/raw/holidays/trimmed","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Parameters","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"currencyCodes","marks":[{"type":"code"}]},{"type":"text","text":": Comma-separated list of codes. "},{"type":"text","text":"(Required)","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph"}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"fromYear","marks":[{"type":"code"}]},{"type":"text","text":": Starting year (inclusive, YYYY). "},{"type":"text","text":"(Required)","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph"}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"toYear","marks":[{"type":"code"}]},{"type":"text","text":": Ending year (inclusive, YYYY). "},{"type":"text","text":"(Required)","marks":[{"type":"strong"}]}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"4. gRPC Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"ea981d4e-a77d-42f7-9be6-da147186c1d6"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidaysWithTrim","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Request","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidaysWithTrimRequest","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated string currency_codes","marks":[{"type":"code"}]},{"type":"text","text":", "},{"type":"text","text":"int32 from_year","marks":[{"type":"code"}]},{"type":"text","text":", "},{"type":"text","text":"int32 to_year","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Response","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetHolidaysWithTrimResponse","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated HolidaySet raw_holiday_sets","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"5. Response Schema"}]},{"type":"paragraph","content":[{"type":"text","text":"The schema is the same as Endpoint 1 ("},{"type":"text","text":"HolidaySet","marks":[{"type":"code"}]},{"type":"text","text":"). The difference is the content of the "},{"type":"text","text":"dates","marks":[{"type":"code"}]},{"type":"text","text":" array, which will be filtered by the database."}]},{"type":"heading","attrs":{"level":2},"content":[{"type":"text","text":"IV. Endpoint 3: "},{"type":"text","text":"getProductsOnly","marks":[{"type":"code"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"1. Purpose"}]},{"type":"paragraph","content":[{"type":"text","text":"Retrieves a raw dataset for specific date products based on their product codes. This involves multiple fields from the underlying product table."}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"2. Database Query"}]},{"type":"codeBlock","content":[{"type":"text","text":"SELECT\n date_product_code,\n product_type,\n ds_is_end_end_convention,\n dds_value,\n dds_fixing,\n dds_pre_spot,\n ds_spot_date_from_trade\nFROM date_product\nWHERE date_product_code IN ($productCodes);"}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"3. REST Endpoint Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"099cb468-5a81-463b-8bfa-38b4c3d524d7"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GET","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Path","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/v3/raw/products","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Parameters","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"productCodes","marks":[{"type":"code"}]},{"type":"text","text":": A comma-separated list of product codes. "},{"type":"text","text":"(Required)","marks":[{"type":"strong"}]}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"4. gRPC Definition"}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"e01d8e0c-b53c-43fd-b3f8-67ff973a6657"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Value"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Method","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetProductsOnly","marks":[{"type":"code"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Request","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetProductsOnlyRequest","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated string product_codes","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Response","marks":[{"type":"strong"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"GetProductsOnlyResponse","marks":[{"type":"code"}]},{"type":"text","text":" { "},{"type":"text","text":"repeated DateProduct raw_products","marks":[{"type":"code"}]},{"type":"text","text":" }"}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"type":"text","text":"5. Response Schema ("},{"type":"text","text":"DateProduct","marks":[{"type":"code"}]},{"type":"text","text":")"}]},{"type":"paragraph","content":[{"type":"text","text":"The field names are mapped from snake_case (SQL) to camelCase (API standard)."}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"center","localId":"56421d22-f056-40ab-abf3-2837055c71b8"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"REST (JSON) Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"gRPC (Protobuf) Field"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"SQL Column Name"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Type"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Description"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dateProductCode","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"date_product_code","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"date_product_code","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The unique identifier for the date product."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"productType","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"product_type","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"product_type","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The type of product (e.g., \"SPOT\", \"FORWARD\")."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"isEndEndConvention","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"is_end_end_convention","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ds_is_end_end_convention","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"bool","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"Indicates if the product uses end-end convention."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ddsValue","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_value","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_value","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The date value associated with the product."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ddsFixing","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_fixing","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_fixing","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The fixing date value."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ddsPreSpot","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_pre_spot","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"dds_pre_spot","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The pre-spot date value."}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"spotDateFromTrade","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"spot_date_from_trade","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ds_spot_date_from_trade","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"string","marks":[{"type":"code"}]}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"The spot date derived from the trade."}]}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"The current usage of this is from the following Whiteboard code snippet:"},{"type":"hardBreak"},{"type":"text","text":"https://gitlab.traditionasia.com/tfxdeal-whiteboard/whiteboard-mono/-/blob/main/mainservice/src/main/scala/com/traditionasia/utc/whiteboard/date/UTCFXDatabaseAdapter.scala#L56","marks":[{"type":"link","attrs":{"href":"https://gitlab.traditionasia.com/tfxdeal-whiteboard/whiteboard-mono/-/blob/main/mainservice/src/main/scala/com/traditionasia/utc/whiteboard/date/UTCFXDatabaseAdapter.scala#L56"}}]}]},{"type":"paragraph","content":[{"type":"text","text":"This spec is also available in "},{"type":"inlineCard","attrs":{"url":"https://traditionasia.atlassian.net/wiki/x/DIAC3"}},{"type":"text","text":" "}]}]},"fixVersions":[],"aggregatetimespent":null,"statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/4","id":4,"key":"indeterminate","colorName":"yellow","name":"In Progress"},"resolution":null,"customfield_11642":null,"timetracking":{},"security":null,"attachment":[{"self":"https://traditionasia.atlassian.net/rest/api/3/attachment/141678","id":"141678","filename":"image-20251111-074400.png","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"created":"2025-11-11T10:52:40.140+0300","size":156850,"mimeType":"image/png","content":"https://traditionasia.atlassian.net/rest/api/3/attachment/content/141678","thumbnail":"https://traditionasia.atlassian.net/rest/api/3/attachment/thumbnail/141678"}],"aggregatetimeestimate":null,"resolutiondate":null,"workratio":-1,"summary":"Add three endpoints to provide raw data to FXDateService API","issuerestriction":{"issuerestrictions":{},"shouldDisplay":true},"watches":{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/DHS-108/watchers","watchCount":3,"isWatching":false},"lastViewed":"2026-04-29T10:13:56.582+0300","creator":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"subtasks":[{"id":"128085","key":"DHS-109","self":"https://traditionasia.atlassian.net/rest/api/3/issue/128085","fields":{"summary":"implement getHolidays","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}},{"id":"128087","key":"DHS-110","self":"https://traditionasia.atlassian.net/rest/api/3/issue/128087","fields":{"summary":"implement getHolidaysWithTrim","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}},{"id":"128089","key":"DHS-111","self":"https://traditionasia.atlassian.net/rest/api/3/issue/128089","fields":{"summary":"impelment getProductsOnly","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}},{"id":"128733","key":"DHS-113","self":"https://traditionasia.atlassian.net/rest/api/3/issue/128733","fields":{"summary":"test","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}},{"id":"128735","key":"DHS-114","self":"https://traditionasia.atlassian.net/rest/api/3/issue/128735","fields":{"summary":"MR Revierw","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}},{"id":"129407","key":"DHS-115","self":"https://traditionasia.atlassian.net/rest/api/3/issue/129407","fields":{"summary":"deploy to dev","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10512","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10512","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10315","id":"10315","description":"Subtasks track small pieces of work that are part of a larger task.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11716?size=medium","name":"Subtask","subtask":true,"avatarId":11716,"entityId":"78aefbc5-bf66-49e0-9812-5b48a5bbefab","hierarchyLevel":-1}}}],"created":"2025-09-18T12:31:24.953+0300","customfield_11110":"1|hzzd8j:","reporter":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"aggregateprogress":{"progress":0,"total":0},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"labels":[],"customfield_11016":null,"environment":null,"customfield_11602":null,"timeestimate":null,"aggregatetimeoriginalestimate":null,"versions":[],"duedate":null,"progress":{"progress":0,"total":0},"issuelinks":[{"id":"66390","self":"https://traditionasia.atlassian.net/rest/api/3/issueLink/66390","type":{"id":"10002","name":"Dependency","inward":"is depended upon by","outward":"depends upon","self":"https://traditionasia.atlassian.net/rest/api/3/issueLinkType/10002"},"inwardIssue":{"id":"132095","key":"TFXWB-1736","self":"https://traditionasia.atlassian.net/rest/api/3/issue/132095","fields":{"summary":"Integrate with Date Service RAW API","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10530","description":"","iconUrl":"https://traditionasia.atlassian.net/","name":"Done","id":"10530","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/3","id":3,"key":"done","colorName":"green","name":"Done"}},"priority":{"self":"https://traditionasia.atlassian.net/rest/api/3/priority/3","iconUrl":"https://traditionasia.atlassian.net/images/icons/priorities/major_new.svg","name":"3. Medium","id":"3"},"issuetype":{"self":"https://traditionasia.atlassian.net/rest/api/3/issuetype/10330","id":"10330","description":"A small, distinct piece of work.","iconUrl":"https://traditionasia.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/11718?size=medium","name":"Task","subtask":false,"avatarId":11718,"entityId":"ca005b25-c78e-488c-b776-a3f93db84749","hierarchyLevel":0}}}}],"votes":{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/DHS-108/votes","votes":0,"hasVoted":false},"comment":{"comments":[{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/315270","id":"315270","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","text":"@Sina Hakman","accessLevel":"","localId":"f7efda22-740a-43d1-ab68-f8928db7d6ae"}},{"type":"text","text":" san,"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"I have reviewed the current implementation and related specifications."},{"type":"hardBreak"},{"type":"text","text":"I would like to confirm the following three points:"}]},{"type":"orderedList","attrs":{"order":1},"content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"gRPC Support Scope"}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"Currently, the FXDateService doesn't appear to have gRPC endpoints exposed externally, only gRPC clients for internal holiday service communication. "},{"type":"hardBreak"},{"type":"text","text":"Are we adding new gRPC endpoints for the three raw data APIs (/v3/raw/holidays, /v3/raw/holidays/trimmed, /v3/raw/products) in addition to REST endpoints? "},{"type":"hardBreak"},{"type":"text","text":"Or should we focus solely on HTTP/2-enabled REST APIs?"}]},{"type":"orderedList","attrs":{"order":2},"content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"HTTP/2 Implementation Scope"}]}]}]},{"type":"paragraph","content":[{"type":"text","text":"Should HTTP/2 support apply to all existing APIs across the entire FXDateService, or only the three new raw data endpoints? "}]},{"type":"orderedList","attrs":{"order":3},"content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"Raw Data"}]}]}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"type":"text","text":"The data returned must be unprocessed and reflect the structure defined by the SQL queries."}]}]},{"type":"paragraph","content":[{"type":"text","text":"Does this mean you want us to remove the Slick DSL overhead and return direct SQL query results instead of using the current DSL approach? "},{"type":"hardBreak"},{"type":"text","text":"Just to confirm, is this mainly intended to improve performance?"},{"type":"hardBreak"}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"created":"2025-10-27T11:05:00.767+0300","updated":"2025-10-27T11:05:00.767+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/315272","id":"315272","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"5e7b17f55146960c33eaf88f","text":"@fujimoto","accessLevel":"","localId":"47dc272e-87d5-4a6e-b719-f3bdbda1aad1"}},{"type":"text","text":" -san, these are very valid questions, thank you. Here are my answers:"}]},{"type":"orderedList","attrs":{"order":1},"content":[{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"gRPC was something that is requested by Andrew. I think we should separate this request from the raw API request. I will create a separate backlog story to support gRPC across date services. So please ignore the gRPC part above. I won’t delete it in the spec as I referred to this description in the new Jira story. "},{"type":"inlineCard","attrs":{"url":"https://traditionasia.atlassian.net/browse/DHS-112"}},{"type":"text","text":" "}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"As above we can defer implementation of HTTP/2 when we add gRPC."}]}]},{"type":"listItem","content":[{"type":"paragraph","content":[{"type":"text","text":"I think we should keep the DSL approach. What is meant here is that we do not add any further logic than what is included in the SQL statements."}]}]}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"created":"2025-10-27T11:13:38.779+0300","updated":"2025-10-27T11:13:38.779+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/315274","id":"315274","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Thanks for the clarification, "},{"type":"mention","attrs":{"id":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","text":"@Sina Hakman","accessLevel":"","localId":"ca8681a9-fd4f-4745-979c-099e32a80156"}},{"type":"text","text":" san."},{"type":"hardBreak"},{"type":"text","text":"That makes sense."}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"created":"2025-10-27T11:20:01.929+0300","updated":"2025-10-27T11:20:01.929+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/316793","id":"316793","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","text":"@Sina Hakman","accessLevel":"","localId":"4d4f77c1-e2d8-49d4-a23b-4e8c446755d1"}},{"type":"text","text":" san,"},{"type":"hardBreak"},{"type":"text","text":"This ticket has been reviewed by Gokhan-san. (The merge into the main branch has not been done yet."},{"type":"text","text":"DHS-108: Add v3 raw API (!4) · Merge requests · date-service / fx-date-service · GitLab","marks":[{"type":"link","attrs":{"href":"https://gitlab.traditionasia.com/date-service/fx-date-service/-/merge_requests/4"}}]},{"type":"text","text":")"},{"type":"hardBreak"},{"type":"text","text":"I’m not fully familiar with the next steps — is there anything I need to do from my side?"}]},{"type":"paragraph","content":[{"type":"text","text":"Also, I’d like to share some feedback from the development process."},{"type":"hardBreak"},{"type":"text","text":"When setting up my local environment, I used Java 8, since the Jenkins file specifies Java 8."},{"type":"hardBreak"},{"type":"text","text":"It compiles successfully, but the service fails to run because logback requires Java 11 or higher."}]},{"type":"paragraph","content":[{"type":"text","text":"According to the build.sbt, the container image is using Java 17,"},{"type":"hardBreak"},{"type":"text","text":"so I assume this won’t cause any issue in the production environment due to Java’s backward compatibility."}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"created":"2025-11-06T07:53:51.384+0300","updated":"2025-11-06T07:53:51.384+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/316965","id":"316965","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"5e7b17f55146960c33eaf88f","text":"@fujimoto","accessLevel":""}},{"type":"text","text":"-san We need "},{"type":"mention","attrs":{"id":"5da633bd9810cf0c3ce3a5ac","text":"@Gokhan Ozman","accessLevel":""}},{"type":"text","text":"‘s help here again. Gokhan can you guide Fujimoto-san on the merge and Java question?"}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"created":"2025-11-07T08:45:04.236+0300","updated":"2025-11-07T08:45:04.236+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/316987","id":"316987","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5da633bd9810cf0c3ce3a5ac","accountId":"5da633bd9810cf0c3ce3a5ac","emailAddress":"gokhan.ozman@traditionasia.com","avatarUrls":{"48x48":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/48","24x24":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/24","16x16":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/16","32x32":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/32"},"displayName":"Gokhan Ozman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"5e7b17f55146960c33eaf88f","text":"@fujimoto","accessLevel":""}},{"type":"text","text":" - san in our process usually developer merges the code to master after review if there is no further change(review feedback). So you can continue with the merge. "}]},{"type":"paragraph","content":[{"type":"text","text":"And about the java version yes, you can merge it like that it won’t be an issue in the server. Actually since it will be deployed to DEV environment first we can see if there is an error there."}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5da633bd9810cf0c3ce3a5ac","accountId":"5da633bd9810cf0c3ce3a5ac","emailAddress":"gokhan.ozman@traditionasia.com","avatarUrls":{"48x48":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/48","24x24":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/24","16x16":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/16","32x32":"https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/5da633bd9810cf0c3ce3a5ac/31bcd7e7-5722-492c-becf-dc8e64a5fd17/32"},"displayName":"Gokhan Ozman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"created":"2025-11-07T09:59:23.011+0300","updated":"2025-11-07T09:59:39.657+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/317584","id":"317584","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","text":"@Sina Hakman","accessLevel":"","localId":"295bf6ee-2143-49af-badc-7fcd4ea337af"}},{"type":"text","text":" san, "},{"type":"hardBreak"},{"type":"text","text":"The deployment to the DEV environment has been completed."},{"type":"hardBreak"},{"type":"text","text":"Integration testing can now be performed in the DEV environment."},{"type":"hardBreak"},{"type":"text","text":"Thank you in advance."}]},{"type":"mediaSingle","attrs":{"width":637,"widthType":"pixel","layout":"align-start"},"content":[{"type":"media","attrs":{"type":"file","id":"e472e502-9c48-4657-a60e-ec7a5606bbea","alt":"image-20251111-074400.png","collection":"","height":489,"width":840}}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"created":"2025-11-11T10:52:40.644+0300","updated":"2025-11-11T10:52:40.644+0300","jsdPublic":true},{"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment/318474","id":"318474","author":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"body":{"type":"doc","version":1,"content":[{"type":"paragraph","content":[{"type":"text","text":"Hi "},{"type":"mention","attrs":{"id":"5e7b17f55146960c33eaf88f","text":"@fujimoto","accessLevel":"","localId":"6f4592c1-2d17-4fde-bb27-05e41cec9408"}},{"type":"text","text":"-san, apologies with my delayed reply. I missed this update amongst others. I’ll ask the White board team to start testing. Many thanks."}]}]},"updateAuthor":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=557058%3A53ccca05-70af-4f79-8c0e-36a31b3d7c44","accountId":"557058:53ccca05-70af-4f79-8c0e-36a31b3d7c44","emailAddress":"sina.hakman@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","24x24":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","16x16":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png","32x32":"https://secure.gravatar.com/avatar/cfbc5f12f120a2de11b0ed9dde1d0c15?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FSH-6.png"},"displayName":"Sina Hakman","active":true,"timeZone":"Europe/Minsk","accountType":"atlassian"},"created":"2025-11-14T11:44:29.936+0300","updated":"2025-11-14T11:44:29.936+0300","jsdPublic":true}],"self":"https://traditionasia.atlassian.net/rest/api/3/issue/125470/comment","maxResults":8,"total":8,"startAt":0},"assignee":{"self":"https://traditionasia.atlassian.net/rest/api/3/user?accountId=5e7b17f55146960c33eaf88f","accountId":"5e7b17f55146960c33eaf88f","emailAddress":"tatsushi.fujimoto@traditionasia.com","avatarUrls":{"48x48":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","24x24":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","16x16":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png","32x32":"https://secure.gravatar.com/avatar/763876c0e6fbf47178f08f5df9a6df68?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FF-5.png"},"displayName":"fujimoto","active":true,"timeZone":"Asia/Tokyo","accountType":"atlassian"},"worklog":{"startAt":0,"maxResults":20,"total":0,"worklogs":[]},"updated":"2025-12-16T15:57:08.031+0300","status":{"self":"https://traditionasia.atlassian.net/rest/api/3/status/10511","description":"This work item is being actively worked on at the moment by the assignee.","iconUrl":"https://traditionasia.atlassian.net/","name":"In Progress","id":"10511","statusCategory":{"self":"https://traditionasia.atlassian.net/rest/api/3/statuscategory/4","id":4,"key":"indeterminate","colorName":"yellow","name":"In Progress"}}}}
Powered by Datasette · Queries took 3.064ms