18 July 2022
Enhancement
SecurityQuotesGraphQL

We have extended the capabilities of Audit Log to include the tracking of changes made on Quotes, Quote Requests, and Staged Quotes. With this enhancement, all Changes performed on Quotes, Quotes Requests and Staged Quotes are tracked from now on and these Changes are now retrievable via API.

Changes:

  • [API] Added scopes view_quotes:{projectKey}, view_quotes:{projectKey}, and view_quotes:{projectKey}.
  • [API] Added quote, quote-request, and staged-quote to ChangeHistoryResourceType.
  • [API] Added ChangeQuoteRequestStateChange, ChangeQuoteStateChange, ChangeStagedQuoteStateChange, SetSellerCommentChange, and SetValidToChange.
  • [API] Added StagedQuoteLabel, QuoteRequestLabel, QuoteLabel, and StagedQuoteLabel.
  • [GraphQL API] Added the following types to the graphQL schema: QuoteRequestChangeInput, QuoteChangeInput and StagedQuoteChangeInput.
  • [GraphQL API] Added QuoteRequestLabel, QuoteLabel, and StagedQuoteLabel type.
  • [GraphQL API] Added queries quoteRequest and quoteRequests.
  • [GraphQL API] Added queries quote and quotes.
  • [GraphQL API] Added queries stagedQuote and stagedQuotes.
  • [GraphQL API] Added QuoteRequest, Quote, and StagedQuote to the ResourceType enum.

The following change was introduced in terms of GraphQL SDL:

quote(
changes: [QuoteChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
id: String!
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_quotes])
quotes(
changes: [QuoteChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_quotes])
quoteRequest(
changes: [QuoteRequestChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
id: String!
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_quote_requests])
quoteRequests(
changes: [QuoteRequestChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_quote_requests])
stagedQuote(
changes: [StagedQuoteChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
id: String!
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_staged_quotes])
stagedQuotes(
changes: [StagedQuoteChangeInput!]
clientId: String
customerId: String
date: DateRange
expand: Boolean
limit: Int
offset: Int
source: Source
stores: [String!]
userId: String
type: Type
): ChangeHistoryQueryResults!
@auth(permissions: [view_audit_log, view_staged_quotes])
type QuoteLabel {
key: String
customer: Reference
quoteRequest: Reference!
stagedQuote: Reference!
}
type QuoteRequestLabel {
key: String
customer: Reference
}
type StagedQuoteLabel {
key: String
customer: Reference
quoteRequest: Reference!
}
enum QuoteChangeInput {
changeQuoteState
setCustomField
setCustomType
}
enum QuoteRequestChangeInput {
changeQuoteRequestState
setCustomField
setCustomType
}
enum StagedQuoteChangeInput {
changeStagedQuoteState
setSellerComment
setValidTo
setCustomField
setCustomType
}