With the release of 2.0.0 you can now get and set filters at report scope and page scope. We currently don't support visual scope but it is planned to come in the future.
See: https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters for more information on how to use the SDK to apply filters.
You can also set filters during load.
https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details
You can see a working demo of using filters here:
https://microsoft.github.io/PowerBI-JavaScript/demo/filters.html
If the filters you are applying need to be secure (they can't be modified by the client) then you must use RLS on the report, and then add the username and/or role claims to your JWT token. Then requests to view the report with this token will only show data for allowed user or role.
The OData $filter parameter only supports a subset of filter capabilities. If you want to have more complex values or conditions it is recommended to use the SDK to construct filter objects.