Thanks for joining us in the past Office Hour session: Part 2: What's new in Oracle APEX 23.1
Watch the replay of the session: apex.oracle.com/officehours and find below the Q&A for the live session.
- Is it not possible to sort the table/view data in object browser?
Currently it is not possible to sort the table or view data from Object Browser. If you are okay, can you please submit your request in our ideas app? https://apex.oracle.com/ideas
- There will be any provision to authenticate ORDS with active directory users (and pass that info back to APEX)? Thinking something like Tomcat + Waffle + ORDS (under windows) and pass that info to DB?
If you want to authenticate APEX users with Active Directory, you can do this natively using SAML Sign-In authentication scheme.
- Can we use this notification API in a JOB?. Like to say the user "your x job finished successfully/with errors?
Yes, that is definitively possible. The APEX_PWA package can be used from within scheduler jobs, but also from within Automations ..."
- I tried push notifications feature in apex.oracle.com but it took little time to get back the notification?
The time it takes is dependent on the web browser author service (ie. Mozilla, Microsoft, Apple, etc) providing the feature functionality. APEX does not send the notification to each user itself.
- Is it possible to send hiperlinks in notifications?
Yes, a push notification can contain a link which is used when a user clicks on the notification.
- If I can ask a question in general about APEX, in our organization, we write procedures in packages with sys_refcursor as out parameter, and we have packaged procedures for insert/update/delete as well. I am not able to find an example where APEX could handle cursor out parameter. Could you please direct me to either document or example if APEX could do that please?
APEX components cannot consume a REFCURSOR. The reason is that when you have a REF CURSOR, then the query *has already been executed*.
And APEX components like IR, Cards or IG always apply additional filtering or pagination SQL to the query which was provided by the developer. That would not be possible anymore, as the query is already executed now.
In summary, the way how APEX components work, does not fit to directly using REF CURSORS.
- Following up on REF_CURSOR, so what do you recommend, our organization does not like SELECT statements or any statement for that matter outside PACKAGE/PROCEDURES/FUNCTIONS. And the SELECT is mostly joinging multiple tables most of the time.
If you want to avoid direct access to tables, the typical best practice is to create *views* for apps to select from, and to provide packages for apps to manipulate data. That fits well into APEX, as the components can perfectly fine select from views - and a form region can be configured to call a PL/SQL package instead of doing direct DML.
If *selects* also have to go through a package, things become difficult, to be honest. It's not the sweet spot of APEX anymore: think about an interactive report where end users can add data filters - that can simply not work with a cursor, which represents an ""already-executed"" query. The only option which comes into my mind would be to craft pipelined table functions for these - however, that can lead to suboptimal performance …
I would really look into providing data through views instead of REF cursors …
- Yes, unfortunately we are not allowed to go through views as well, only allowed to go through packages/procedures/functions. "that's indeed a bit like being chained to the wall ... so I have to say that this is not a very friendly environment for APEX …
Using pipelined table functions you might get things working - but you would be excluded from most of the APEX features
- Built into APEX core? I have seen a google API URL on screenshots from Plamen's blogpost this morning. Could be GDPR topic.
You can call the same Google API using APEX_WEB_SERVICE today - so that picture does not really change.
- What I meant: As soon as I will use this Push Notification Feature it will always use the Google API (or other external provider). I cannot avoid that. And in this case an external provider will get data from me. It's not in my hand.
That is how the push notifications work in general. The application sends the push notifications to the provider's endpoints. If that is a concern, you'd need to keep that feature disabled.
- I have not seen that this is written somewhere in the manual. And there could be a country/company with concerns sending data over external provider.
You can always use database means to disable connecting to the internet. If you configure the database networking ACL so that no connection to google APIs are possible, then no app would be able to send data to Google.
At the end this is IMHO no different to an application developer doing APEX_WEB_SERVICE calls to some endpoints (and these can include data as well) If there are concerns about this, connectivity would need to be disabled using the ACL. But that is not new
- Can we have an installation button for the pwa application in 23.1, like in Android devices, instead of creating a shortcut using Safari?
Until Apple provides a navigator API for installing web apps like Android, the current APEX pattern for iOS is the way to go.
- I see you can segment notifications by user / device but can you add other criteria. i.e. my app serves x number of charities and their donors...could i choose one of the charities and send only their donors push notifications...
you'd need to coordinate your own users and groups tables and join a query to only notify certain groups
- This dashboard requires Apex Logging to be turned on which is not recommended in high volume Apex applications correct?
The Dashboard can cover high volumes of data too. Having the logs available, a daily job is gathering all these metrics behind the scene. If you or the DBA handling the instance would like to disable gathering metrics they can disable the job.
- I already tested push notifications and I see that push notification did not come immediate but after some time. Is there any batch processing setting in background? Can I manage ti somewhere?
Yes the job currently runs every two minutes.
- Is it possible to change Bell icon on the left side in Push notification on Android to another one?
It is, but it will require that you use the service worker hooks to override the “push” event and use the special “badge” parameter: See https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification
- What are the default limits for sending push notification per Workspace on apex.oracle.com?
Push Notifications count against the limit for Web Service Requests, which I (if I remember correctly) 1000 requests within a 24-hour rolling window. Also, please keep in mind that apex.oracle.com is our external evaluation instance, and shouldn't be used by Oracle employees. We have our dedicated internal instance for employees to use.
- If I am running APEX app on local network on my local server without SSL certificate I am unable to run pwa
any solution for that?
You can generate a self-signed SSL/TLS cert and make it explicitly trusted by the OS/browser to avoid warnings. Or obtain a free cert from one of the public free Certificate Authorities. Configure this cert directly in ORDS if you don't have any other infrastructure upstream from ORDS.
- Is user must have APEX account (APEX_WORKSPACE_APEX_USERS) to send notification? It will not work if send notifiation any valid email which is not having account, Is this understanding correct ?
You don’t need to have an APEX account to receive push notifications. Only APP_USER is saved to identify the user / device.
- Why sequence creation option is removed while creating table ? that was easy and amaing option, please bring back
Such changes were made to accomodate the most often use cases. Manual creation of db objects can still be completed via scripts or SQL Developer Web (Database Actions)
- Can the Push Notification Job run time be changed (declaratively) at the Instance level?
No declarative instance setting, but a DBA could modify the scheduler interval. If you want to push out a notification immediately we do have a public API to push the queue.
- Can you demonstrate how Push Notifications would work on a desktop? Does the app have to be an installed PWA for it to work?
No need to install the application as a PWA, it’s sufficient to opt-in to receive push notifications.
- So that app DOES need to be installed as a PWA?
Just on iOS. This is a limitation Apple introduced when they implemented push notification in iOS 16. This restriction does not exist on Android or any desktop browser.
- Are push notifications using an external provider or Oracle has develop its own engine to do it?
Oracle owns the entire engine, including encryption and transport layer. No external provider besides the device identifier (Google, Apple, Microsoft, etc)
- Hi, When will we have office hours in French?
I don't think we've had a lot of interest for a French OH - I'll be sure to discuss with the team and see what our options are! Thank you!
- In IOS Icon Badge are not Coming it is problem with me OR its an Issue?
iOS declarative badging is extremely new and couldn’t make the cut for 23.1. It’s definitely on the radar for a future version. You can achieve this today with a little bit of JS.
- In iOS, the icon badge is not appearing. Is it a problem with my device, or is it an issue with push notifications?
You need to have iOS 16.4 or later, and install app first.
- It's possible to choose who (users...) can receive push notification?
Yes, of course, you can choose who are the users that will receive the notification but it is also very important that the users are subscribed to the push notifications so that they can receive them.
- Can I decide to spam all users and send them push notifications also when they are not subscribed?
Users have to subscribe to get push notifications. If they don't subscribe, they will not get those push notifications. Remember to not spam your users.
- The server side is completely implemented in PL/SQL or it needs an updated version of ORDS?
This is all PL/SQL in the database, no special ORDS requirement for Push Notifications.
- Could it be used to refresh a region once a background job finishes? Without needing to perform polling at intervals. Is it mandatory to wait two minutes in order to process de queue, or you can force push a notification immediately? You can always use apex_pwa.push_queue is you want immediate notifications. If you want to refresh a region, you can use the service worker hooks to inject messages into your page and react to them. There is no declarative solution yet.
- What if you want to show non admins workspace statistics? are the queries behind these available?
The Admin Digest feature is available to Instance Administrators, but is not something that is available at workspace-level, if that is what you are referring to. In a future release of APEX, we hope to extend the activity reporting at workspace-level.
- Is Administrator Digest available on apex.oraclecorp.com? I don't see it under Monitor Activity?
Yes, this feature is available on our internal hosted instance for the instance administrators. This is not available at workspace-level - it is at instance level. In a future release of APEX, we hope to extend the workspace-level reporting to extend the activity reporting.
- Will Push Notification work the same with Social Login users? Any limitations there?
Push notification works with any authentication. No limitations.
- When I create a table in APEX 23.1 via Object Browser with autogenerated ID through secuence, I can't see the autogenerated sequence at object browser in the sequence entrance.. where i cant find it?
“autogenerated sequence”, are you referring to Identity Column for a table? If you are, identity column sequences are intentionally not displayed under Sequence tree node from the Object Browser. Do you have a need for getting this information from the Object Browser?
- For control numbering of that sequence?
For now, please use SQL Commands to alter the identity column sequence.
- Are these stats available on WS level too or do I need the have the Internal password?
You need to login into Administration services to access it.
- You mentioned no brokering service like firebase. If that is so, does your apex instance then need to be on public internet? I.e., if we have on-prem apex install, will Push work (when the users are not connected to the corporate LAN)?
The database has to be able to connect to the internet
so if its behind a firewall, you need to set up proxy servers and/or PL/SQL networking ACLs properly
- So as long as DB can make outgoing connections, we don't need to expose ORDS to public internet?
Absolutely correct.
- Does that Instance events include user account creation? And changes of user access level to developer or to Admin? (that would help keep auditors happy)
It's not yet available for the 23.1 release, however we have it on our roadmap.
- Is there such a thing as a receipt confirmation, so you know that the push notification arrived, at least on one device?
No the push notification protocol doesn’t provide such a confirmation. It’s up to the browser vendors when and how they deliver the push notification.
- It is recommended that we run production instances in runtime only mode. Can we get access to these workspace monitoring apps from outside the builder?
These screens are part of the APEX Instance administration app, i.e. INTERNAL login. There is no runtime-only version of this. If you wish, you might file that as an APEX idea (apex.oracle.com/ideas)
- How to copy pages between different environment eg: from UAT to PROD ?
Remote deployment via REST, SQLcl etc
- Is there any documentation available on this?
APEX 23.1 Documentation will be available after GA. In the meantime, you can find more information about new features here: https://apex.oracle.com/en/platform/features/whats-new-231/
- We can get the PWA guide?
Go to apex.oracle.com/pwa to check out the app that Vincent's currently showing on screen
....and this app will be available to install in your own workspace via the Gallery in an APEX 23.1 instance
- What’s the right way to force links to an app being opened in the installed PWA and not in the browser? “url_handlers” property in the manifest file?
We considered looking into this but browser support is quite low right now. We should revisit this topic often, as it would be really nice.
- Any easy way to force transparent icons not being displayed on black background when added to an iOS device?
iOS doesn’t allow transparent background, as it would go against their design guidelines.
- Although not declarative at the moment, would you consider adding a short tutorial in the PWA Sample App for adding a notification badge on the installed App icon (like the number of new notifications the user has)?
For now, APEX delegates the notification badge to the operating system. We plan to extend more control to the notification badge icon in the future.
- Can I force different icon being used on iOS and Android devices using the manifest file? For push notification icon or PWA installation icon?
For push, you can use the APEX_PWA.SEND_PUSH_NOTIFICATION feature with p_icon_url param
- The PWA installation icon
You can override the “icons” property array in the custom manifest. Different size will target different devices. 192x192 is iPhone. 192x192 maskable is Android.
- When user subscribes and disable notification in APP setting section !! what happens?
The user will not receive the notification on their device. It is important that the user go to the settings of their browser and activate notifications
- The pwa also has payment settings, could you shortly cover this area as well, how can it be used etc. does it require special settings?
We will consider it. Thanks for asking.
- Is it also possible to send notifications with a rest call ie with postman?
Sure! If your REST endpoint calls the APEX_PWA, you can do anything.
- When is the expected release of 23.1? especially on the cloud ?
We never disclose our release dates, so I'm afraid we can't provide any expected release date. A pre-production is available to try out right now on apex.oracle.com. Keep an eye out for when we announce the availability of APEX 23.1!!
- I am using pre-production but... have been waiting for all this pwa beauty and failed using the previous version on the cloud, so i cant wait to get this going in production.
Sit tight :)
- Can the prompt to allow for pwa notification be called via pl/sql?
No because the authorization is a browser javascript api which has to be called by an user interaction.
- Can you manually remove a subscriber?
Yes, you can use the public apex_pwa.unsubscribe_push_notifications pl/sql api to remove a user.
- Oracle APEX need live connection so push notification will only receive once you logged into the application? Please clarify or can we keep APP logged in the backgroud so will recive message. thanks
To receive push notifications it’s not necessary that a user is logged in into the app. It works the same as with any other native application on a smartphone which receives push notifications even when you are not in the app.
- Still I have doubt as unable to test thsi with me as if app is closed then which service is idenifying my mobile phone to send or receive message?
Push notification is a web standard implemented by the browser vendors. When you opt-in to receive push notification the browser will provide us a unique URL which can be called to send a push notification to this device. The URL points to a service at Google/Apple/Firefox (browser vendors) and they will use the information in the url to contact the browser on that device.
- Hope if browser is closed then still message can be received?
Yes
- How does the push notification work? What technical channel is used? Are there websockets involved?
The database actually does the pushes. As Vincent just said, there is a "push queue job" (similar to the mail queue) and it does the pushes using APEX_WEB_SERVICE / UTL_HTTP.
- Can we use push notifications, in normal APEX applications, without it being a PWA?
No it has to be a PWA app. Keep in mind that PWA doesn’t mean that the app has to be installed. Only iOS Safari has the requirement that push notification only works if the app has been installed. This is not the case of desktop browsers or on Android.
- Are there any changes/improvements to facetted search functionality in APEX 23.1?
No, Faceted Search is pretty unchanged in APEX 23.1.
- Can a user unsubscribe?
Yes, at any point they can go to the settings page in the application and turn of push notification.
- Any idea when 23.1 will be available on the Cloud Free Tier accounts ?
APEX 23.1 will become available on Autonomous Database (both Free Tier and Paid) at the same time it becomes generally available for download. In the mean time, you can explore the pre-release APEX 23.1 on apex.oracle.com.
- What is the backend technology that Push Notification uses. Is there a requirement to have NODE.js, or any external technology, or is it all built in to the APEX core?
This is all built into the APEX core - utilizing the infrastructure within the database, i.e. DBMS_SCHEDULER, UTL_HTTP and similar.
- Can you manually remove a subscriber?
Yes you can use the apex_pwa.unsubscribe_push_notifications pl/sql api to unsubscribe a user.
- For push notification, it is mandatory the url to be served as secure end point, (SSL, HTTPS) how we can configure the HTTPS for our localhost
I assume you are using localhost during development. If so, you can configure a self-signed SSL/TLS cert in ORDS. And you can make it explicitly trusted by the browser/OS if you wish to avoid browser warnings.
- How to send notification on spicific date and time to user
This is currently not supported out-of-the-box, but you could use our “Automations” feature to send push notifications at a specific date and time.
- Yes - I have questions about ACLS and networking requirements for database
Please go ahead with the specific questions you have
in the meantime please refer to https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/network-access-control-list-configure.html for general instructions on how to configure ACLs in a database.
- off-topic: Is it possible to protect a complete APEX app code that we install for a client on-prem so nobody in their organization can actually access the app as developer to gain access to the code? so, the client can only run it but not access the code, not even their DB or Instance Manager? like if they have an .exe file, not the code. Thank you.
You would have to host your app in a production APEX instance that you manage, where there is no developer access. SaaS style.
- It looks like it needs a button outline around the Save as copy. Thanks
Styling of that link was an intentional one, nothing missing :-)
- When I was new to APEX, it took me some time to figure out this option. It is now an advantage having copy button there. So why are you keeping it in creating place?
I think there is still an argument to have the copy action from Page Designer as well, because here it pre-fills the page you are copying from. Arguably we could now improve the path from Page Designer, by removing the first page where it asks if you want to copy a page in this app, or another app, but that's something to consider for the future.
- When can we download 23.1 for local install?
We cannot disclose exact release dates but we are actively working on it.
- What is the view to see the link of push and device registrations?
The view is called apex_appl_push_subscriptions
- Can I share push credentials across applications?
Web Credentials (which Push Notifications use) are workspace objects, so all apps within the same workspace can use the same credential.
- In a single app we have supposed 4 push notification area ; is it possible to user can subscribe on or more or all.?
Users only have to subscribe once for an application. The push notification can be sent from any page or background job of that application.
- Second Question this technology (push notification) can help me to update dashboard data if user opens the page automatically like scoreboard etc.
Push Notification is really the same as an e-mail notification. It’s an “offline” notification.
- Does it use database AQ feature behind the scene? If it does how to scale it for internet mobile applications?
APEX uses some queuing mechanism, but it's not AQ - it's an APEX-specific, internal implementation.