Skip to content

Conversation

@abhaysood
Copy link
Contributor

@abhaysood abhaysood commented Sep 17, 2025

Description

Implements frontend and backend for session targeting.

  • Creates a new section under settings to navigate to "Session Targeting" overview page.
  • Implements the Session Targeting Overview page.
  • Implements the Session Targeting create/edit pages.
  • Implements utils/cel for converting from UI state to CEL expression and vice-versa.
  • Implements GET /sessionTargetingRules API.
  • Implements GET /sessionTargetingRule/:ruleId API.
  • Implements POST /sessionTargetingRules API.
  • Implements PATCH /sessionTargetingRules/:ruleId API.
  • Implements GET /config SDK API.
  • Create a new postgres table session-targeting-rules.
  • Updates dashboard API documentation.
  • Updates SDK API documentation.

Important

The session targeting tab has been intentionally hidden in the UI as the SDKs are yet to implement this feature.

Related issue

References #2569

@vercel
Copy link

vercel bot commented Sep 17, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
measure-dashboard Ready Ready Preview Comment Nov 3, 2025 11:01am

@abhaysood abhaysood force-pushed the session-targeting branch 2 times, most recently from d416c42 to c7704a8 Compare September 18, 2025 10:31
@abhaysood abhaysood marked this pull request as ready for review September 25, 2025 06:17
items: string[] | AppVersion[] | OsVersion[]
initialSelected: string | AppVersion | OsVersion | string[] | AppVersion[] | OsVersion[]
onChangeSelected?: (item: string | AppVersion | OsVersion | string[] | AppVersion[] | OsVersion[]) => void
buttonClassName?: string
Copy link
Contributor Author

@abhaysood abhaysood Sep 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anupcowkur please review this change in dropdown_select component. This is required to customize the size of the button in this component.

chore(frontend): load app filter

chore(frontend): show paginator and loading bar

chore(frontend): design rules table with dummy data

chore(frontend): add sampling rule button component

chore(frontend): move sampling type label

chore(frontend): add create rule page with basic scaffolding

chore(frontend): create dummy sampling rules config response

chore(frontend): handle create and edit actions

chore(frontend): implement event conditions UI

chore(frontend): add sampling rate with publish button

chore(frontend): implement session conditions UI

chore(frontend): improve layout

chore(frontend): minor improvements

chore(frontend): align trash icons

chore(frontend): padding and spacing improvements

chore(frontend): add long attr key in dummy data

chore(frontend): autoselect first event type

chore(frontend): add predefined values for session attrs

chore(frontend): add rule name
pick 821268a chore(rn): remove unused kotlin version

chore(frontend): modify sampling rules schema

chore(frontend): fix create page loading state

chore(frontend): add connector to conditions

chore(frontend): combine attributes in UI

chore(frontend): modify samping rate and rule name UI

chore(frontend): modify title UI

chore(frontend): remove predefined values from session attrs

chore(frontend): minor UI changes

chore(frontend): refactor components

chore(frontend): load sampling rule from server for editing

chore(frontend): handle publish rule button state

chore(frontend): fix ts errors

chore(frontend): refactor navigation

chore(frontend): handle sampling rules for trace and session

chore(frontend): implement ui conditions to cel conversion

chore(frontend): implement update sampling rule

chore(frontend): fix attribute opertators state management

chore(frontend): modify schema for rules

chore(frontend): prepend event type to attrs

chore(frontend): implement ui feedback and refactor into smaller components

chore(frontend): add data control section

chore(frontend): remove trace conditions from session targeting

chore(frontend): add a section header for conditions

chore(frontend): improve sampling conditions UI styling

- Make Configure conditions title match Event/Session conditions style
- Update Event/Session conditions titles to be smaller and secondary (text-gray-500)
- Add hover background to condition containers for better interactivity
- Align connector line colors with border colors for visual consistency

chore(frontend): refactor to session targeting

chore(frontend): implement more ui feedback

chore(frontend): remove unsused code

chore(frontend): refactor edit session targeting route

chore(frontend): update input fields design

chore(frontend): minor spacing changes

chore(backend): refactor rules schema

chore(backend): increase max conditions to 10

chore(backend): add spacing between event and session conditions

chore(backend): remove unused component

chore(backend): rename components and files to use session targeting

chore(frontend): fix save button state

chore(frontend): change scampling rate stpper to 0.01

chore(frontend): change sampling rate to %

chore(frontend): fix cel generation

chore(frontend): fix sampling rate

chore(frontend): fix url to use session targeting

chore(frontend): remove unnecessary variable

chore(frontend): fix state management

chore(frontend): spacing updates

chore(frontend): remove status badge

chore(frontend): add toggle switch for status change

chore(frontend): remove unused code

chore(frontend): remove uneeded types file

chore(frontend): fix CEL function name

chore(frontend): move shared types

chore(frontend): improve CEL parser and fix dropdown state sync

- Implement enhanced CEL parser with direct condition output and improved error handling
- Fix dropdown state synchronization when loading data from API responses
- Convert boolean types to 'bool' for UI compatibility
- Add operator mapping from CEL format to UI format

chore(frontend): fix compilation errors

chore(frontend): remove deprecated function usage

chore(frontend): implement cel parsing and generation

chore(frontend): refactor page state

chore(frontend): remove validation

chore(frontend): update swith design

chore(frontend): remove uneeded padding

chore(frontend): improve attribute input field hints

chore(frontend): add validation for empty attribute values

chore(frontend): improve variable name

chore(frontend): simplify ud-attrs logic

chore(frontend): add cel generator tests

chore(frontend): fix compilation error

chore(frontend): improve in-code documentation

chore(frontend): add cel parser tests

chore(frontend): refactor conditions file structure

chore(frontend): reorganize session targeting page code

chore(frontend): improve validation error message

chore(frontend): add loading state and toast feedback on rule submission

chore(frontend): fix compilation error

chore(frontend): rename event condition props

chore(frontend): add comment

chore(frontend): rename label for toggle

chore(frontend): fix toggle clickable area

chore(frontend): handle redirection on publish or update rule

chore(frontend): rename test descriptions

chore(frontend): update conditions container color

chore(frontend): add spacing below title

chore(frontend): improve error message

chore(frontend): rename function

chore(frontend): improve attribute row sizes

chore(frontend): move session targeting to settings

chore(frontend): increase spacing

chore(frontend): fix patch rule endpoint

chore(frontend): update variable names

chore(frontend): remove unused method argument

chore(frontend): rename function

chore(frontend): change logical operator size and color

chore(frontend): update status badge padding

chore(frontend): rename variables

chore(android): remove uneeded check in event cel parsing

chore(frontend): rename file

chore(frontend): improve error message

chore(frontend): add empty state

chore(frontend): change pagination and fix sampling rate

chore(frontend): implement deep compare to enable-disable save button

chore(frontend): refactor page state to split it into more states

chore(frontend): remove unnecessary usage of memo

chore(frontend): remove unnecesary function

chore(frontend): fix compilation error

chore(frontend): split modified by and at into different columns

chore(frontend): move cel to utils

chore(frontend): create session targeting folder under components

chore(frontend): logical operator color neutral-300

chore(frontend): modify dropdown select and reuse

chore(frontend): add component tests for page state

chore(frontend): add component tests for save rule

chore(frontend): update table spacing

chore(frontend): add test for add or remove attribute

chore(frontend): remove dependency on dequal

chore(backend): implement session targeting rules

chore(backend): implement session targeting rules get API

chore(frontend): fix handling of sampling rules API

chore(frontend): fix query to get session targeting rules

chore(frontend): updte table schema

chore(frontend): fix empty state handling

chore(backend): integrate get rule api

chore(backend): integrate create rule

chore(backend): integrate updte session targeting rules

chore(backend): integrate session targeting dashboard config

chore(frontend): fix failing test

chore(backend): modify the get rule query

chore(frontend): remove unused param

chore(backend): rename functions

chore(backend): fix email query

chore(backend): rename funciton

chore(backend): sort by last updated at timestamp

chore(backend): fix rule creation failure

chore(frontend): increase pagination limit to 50

chore(backend): sort attributes by key name

chore(backend): remove uneeded opertator for string

chore(backend): revert pagination limit change

chore(backend): add hints to session attributes

chore(backend): add comment

chore(backend): add more comments

chore(frontend): use new switch component

chore(frontend): improve session targeting table

chore(frontend): set pagination to 5

chore(backend): add validation

chore(frontend): create type for session targeting config

chore(frontend): refactor attribute naming

chore(frontend): refactor sequence of funcitons

chore(frontend): simplify props further

chore(frontend): improve keyboard navigation

chore(frontend): improve table titles

chore(frontend): clear stale data when apps is switched

chore(frontend): make CTA title sentence case

chore(backend): add hints to event attributes

chore(backend): add comments

chore(backend): add dashboard api docs

chore(backend): improve error messages

chore(backend): populate email id correctly

chore(backend): implement sdk config api

chore(backend): update SDK API docs

chore(backend): fix empty state message

chore(backend): implement max-age cache control header

chore(frontend): handle app not onboarded case
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend backend related feature new features frontend frontend related

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants