def all_user_knobs(the_node):
    """Get a list of knobs that the user can theoretically have added

    The way nodes are built, user knobs are knobs after the last non-user one
    and for most _normal_ knobs, it's the `useLifetime` knob.. but there are a
    few special cases this will handle:
     - NoOp, Dot: hide_input
     - StickyNote: bookmark
     - Group: window
    """

    lastknob_class_map = {'Group': 'window',
                          'StickyNote': 'bookmark',
                          'NoOp': 'hide_input',
                          'Dot': 'hide_input',
                          }

    knobs = the_node.allKnobs()
    last_knob_name = lastknob_class_map.get(the_node.Class(), 'useLifetime')
    last_knob = the_node.knob(last_knob_name)
    last_knob_index = knobs.index(last_knob)
    return knobs[last_knob_index+1:]