发布新帖

検索

文章
· 19 hr 前 阅读大约需 5 分钟

Finding your way on the API Manager roads

 

A question that quickly arises when configuring IAM (aka Kong Gateway) is how many routes should be created to reach all the business objects in an IRIS API.

A common mistake is to create one route per business object, unnecessarily multiplying the number of routes.

Let's take the example of the Supply Chain Orchestrator Data Model API:

/api/SC/scmodel/v1/objects
/api/SC/scmodel/v1/objects/BOM
/api/SC/scmodel/v1/objects/Carrier
/api/SC/scmodel/v1/objects/Customer
/api/SC/scmodel/v1/objects/DemandPlan
/api/SC/scmodel/v1/objects/InventoryThreshold
/api/SC/scmodel/v1/objects/Issue
/api/SC/scmodel/v1/objects/LeadtimeVariant
/api/SC/scmodel/v1/objects/Location
/api/SC/scmodel/v1/objects/MfgOrder
/api/SC/scmodel/v1/objects/Milestone
/api/SC/scmodel/v1/objects/Product
/api/SC/scmodel/v1/objects/ProductInventory
/api/SC/scmodel/v1/objects/ProductSupplier
/api/SC/scmodel/v1/objects/ProductionCapacity
/api/SC/scmodel/v1/objects/PurchaseOrder
/api/SC/scmodel/v1/objects/PurchaseOrderLine
/api/SC/scmodel/v1/objects/RouteLeg
/api/SC/scmodel/v1/objects/SCException
/api/SC/scmodel/v1/objects/SLA
/api/SC/scmodel/v1/objects/SalesOrder
/api/SC/scmodel/v1/objects/SalesOrderLine
/api/SC/scmodel/v1/objects/SalesShipment
/api/SC/scmodel/v1/objects/SalesShipmentLine
/api/SC/scmodel/v1/objects/ServiceSLA
/api/SC/scmodel/v1/objects/ShipmentMilestone
/api/SC/scmodel/v1/objects/ShipmentStop
/api/SC/scmodel/v1/objects/ShipmentTracking
/api/SC/scmodel/v1/objects/ShippingCost
/api/SC/scmodel/v1/objects/Supplier
/api/SC/scmodel/v1/objects/SupplyPlan
/api/SC/scmodel/v1/objects/SupplyShipment
/api/SC/scmodel/v1/objects/SupplyShipmentLine
/api/SC/scmodel/v1/objects/TrackingService

Creating a route in API Manager for each business object would be tedious and strongly discouraged, and would not protect you from changes during a version upgrade.

 

Example of a clean cut (recommended)

Route Usage Plugins
/objects$ global list of all objects Cache, rate limit
/objects/{type} BOM / Carrier / Customer Business Monitoring

Kong doesn't natively understand /objects/{type}.

👉 It needs to be translated using a regex :

{type} = [^/]+

We start by creating a service scmodel in Kong 

### Create a new service in Kong for the SC Model application
curl -i -X POST \
--url http://localhost:8001/services/ \
--data 'name=scmodel' \
--data 'url=http://192.168.65.1:52880'

Then we add the route to retrieve the list of all objects with $ for the exact routes:

### Create a route for the SC Model service Objects
curl -i -X POST \
--url http://localhost:8001/services/scmodel/routes \
--data 'name=scmodel-objects' \
--data 'paths=~/api/SC/scmodel/v1/objects$' \
--data 'strip_path=false'

Then we create a generic route for all object type using [^/]+$ as the regex :

### Create a route for the SC Model for all object types
curl -i -X POST \
  http://localhost:8001/services/scmodel/routes \
  --data name=scmodel-object-type \
  --data 'paths[]=~/api/SC/scmodel/v1/objects/[^/]+$' \
  --data strip_path=false

If you want to monitor or manage one type of object in particular with different plugins or different auth, rate-limits, etc., you have to create a specific route for it, using regex_priority:

If multiple regex routes match, Kong chooses the highest regex_priority, otherwise… the internal (non-deterministic) order.

Example below for Customer and Product objects :

### Create a route for the SC Model service Customer
curl -i -X POST \
  http://localhost:8001/services/scmodel/routes \
  --data name=scmodel-object-customer \
  --data 'paths[]=~/api/SC/scmodel/v1/objects/Customer$' \
  --data 'regex_priority=10' \
  --data strip_path=false

### Create a route for the SC Model service Product
curl -i -X POST \
  http://localhost:8001/services/scmodel/routes \
  --data name=scmodel-object-product \
  --data 'paths[]=~/api/SC/scmodel/v1/objects/Product$' \
  --data 'regex_priority=10' \
  --data strip_path=false

You can also create a limited list of objects types by using regex (A,B,C).
Example below for all sales routes :

### Create a route for the SC Model Sales routes
curl -i -X POST \
  http://localhost:8001/services/scmodel/routes \
  --data name=scmodel-object-sales \
  --data 'paths[]=~/api/SC/scmodel/v1/objects/(SalesOrder|SalesOrderLine|SalesShipment|SalesShipmentLine)$' \
  --data 'regex_priority=10' \
  --data strip_path=false

 

You can then find the route configuration in the API Manager portal :

To test it, just make some calls to different routes :

### Get Object BOM
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/BOM'

### Get Object Carrier
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/Carrier'

### Get Object Customer
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/Customer'

### Get Object DemandPlan
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/DemandPlan'

### Get Object InventoryThreshold
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/InventoryThreshold'

### Get Object Issue
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/Issue'

### Get Object Product
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/Product'

### Get Object SalesOrder
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/SalesOrder'

### Get Object SalesOrderLine
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/SalesOrderLine'

### Get Object SalesShipment
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/SalesShipment'

### Get Object SalesShipmentLine
curl --user _SYSTEM:SYS 'http://localhost:8000/api/SC/scmodel/v1/objects/SalesShipmentLine'

This allows you to manipulate your Customer business object with a finer level of detail than other objects types:

Analytics for all sales objects :

Analytics of the other object types :

讨论 (0)1
登录或注册以继续
Job
· 19 hr 前

From Classics to Trending Toys: Your Go-To Online Toy Store in Dubai

Finding the perfect toy for your child can be a delightful yet overwhelming experience. From timeless classics to the latest trending toys, Dubai parents now have more options than ever. Whether you’re searching for a toy shop near me, exploring reputable toy shops in Dubai, or browsing a trusted online toy store Dubai, knowing where and how to shop smart ensures your child enjoys quality, safe, and engaging toys.

Explore Classics and Trendy Toys

Every child loves a mix of the old and the new. Classic toys like building blocks, dolls, and board games foster creativity and cognitive skills, while trending toys like STEM kits, interactive gadgets, and collectible figures encourage learning and curiosity. Browsing a trusted toy shops in Dubai selection online ensures you have access to both timeless favorites and modern innovations.

Convenience of Online Shopping

Searching for a toy shop near me is helpful, but shopping online offers convenience, variety, and quick delivery. A reputable online toy store Dubai lets parents compare prices, check safety information, and read customer reviews without leaving home. Platforms like ToyzINN combine the ease of online shopping with a wide range of toys for all ages and interests.

Safety and Quality Matter

Dubai parents prioritize safe and durable toys. Look for products that are certified and made from non-toxic materials. Avoid toys with small detachable parts for younger children. Trusted toy shops in Dubai often provide detailed safety information, helping parents make informed choices.

Tips for Choosing the Right Toy

  • Know your child’s age and developmental stage
  • Choose certified and non-toxic toys
  • Balance classics with trending options
  • Check reviews from other parents in Dubai
  • Search toy shop near me for local pick-up options

Benefits of Shopping Smart

Smart shopping means finding toys that are not only fun but also educational and developmentally appropriate. Combining classics and trending options provides children with diverse experiences that foster creativity, problem-solving, and social skills.

Conclusion

From classic favorites to the latest trends, choosing the right toys for your child in Dubai is easier than ever. Whether exploring a trusted toy shop near me or browsing popular toy shops in Dubai, parents can find quality, safe, and engaging toys that children will love. For a reliable selection and excellent service, ToyzINN is your go-to online toy store Dubai, offering both timeless classics and exciting new toys to delight every child.

讨论 (0)1
登录或注册以继续
公告
· 21 hr 前

InterSystems Full Stack Contest 2026

Hi Developers,

We are happy to announce the first InterSystems online programming contest of the year:

🏆 InterSystems Full Stack Contest 🏆

Duration: February 2 - 22, 2026

Prize pool: $12,000


 The topic

Develop a full-stack solution using InterSystems IRIS, InterSystems IRIS for Health, or IRIS Cloud Service as a backend. By full stack, we mean a frontend web or mobile application that inserts, updates, or deletes data in InterSystems IRIS via REST API, Native API, ODBC/JDBC, or Embedded Python.

General Requirements:

  1. An application or library must be fully functional. It should not be an import or a direct interface for an already existing library in another language (except for C++, there you really need to do a lot of work to create an interface for IRIS). It should not be a copy-paste of an existing application or library.
  2. Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
  3. The application should work either on IRIS Community Edition or IRIS for Health Community Edition. Both could be downloaded as host (Mac, Windows) versions from Evaluation site, or can be used in a form of containers pulled from InterSystems Container Registry or Community Containers: intersystemsdc/iris-community:latest or intersystemsdc/irishealth-community:latest .  
  4. The application should be Open Source and published on GitHub or GitLab.  
  5. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works.
  6. Only 3 submissions from one developer are allowed.

NB. Our experts will have the final say in whether the application is approved for the contest or not based on the criteria of complexity and usefulness. Their decision is final and not subject to appeal.

Prizes

1. Experts Nomination - a specially selected jury will determine winners:

🥇 1st place - $5,000 

🥈 2nd place - $2,500 

🥉 3rd place - $1,000

🏅 4th place - $500

🏅 5th place - $300

🌟 6-10th places - $100

2. Community winners - applications that will receive the most votes in total:

🥇 1st place - $1,000 

🥈 2nd place - $600 

🥉 3rd place - $300

🏅 4th place - $200

🏅 5th place - $100

❗ If several participants score the same number of votes, they are all considered winners, and the prize money is shared among the winners.
❗ Cash prizes are awarded only to those who can verify their identity. If there are any doubts, organizers will reach out and request additional information about the participant(s).

Who can participate?

Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account!

Developers can team up to create a collaborative application. 2 to 5 developers are allowed in one team.

Do not forget to highlight your team members in the README of your application – DC user profiles.

Important Deadlines:

🛠 Application development and registration phase:

  • February 2, 2026 (00:00 EST): Contest begins.
  • February 15, 2026 (23:59 EST): Deadline for submissions.

 Voting period:

  • February 16, 2026 (00:00 EST): Voting begins.
  • February 22, 2026 (23:59 EST): Voting ends.

Note: Developers can improve their apps throughout the entire registration and voting period.

    Helpful Resources:

    ✓ Example applications:

    ✓ Templates we suggest starting from:

    ✓ For beginners with IRIS:

    ✓ For beginners with ObjectScript Package Manager (IPM):

    ✓ How to submit your app to the contest:

    Need Help?

    Join the contest channel on InterSystems' Discord server or talk with us in the comments to this post. 

    We're waiting for YOUR project – join our coding marathon to win! 


    By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding.

    讨论 (0)2
    登录或注册以继续
    文章
    · 23 hr 前 阅读大约需 2 分钟

    DifyのベクトルストアにIRISを追加しました

    DifyのベクトルストアにIRISを追加しました

    こんにちは、セールスエンジニアの奥山です。

    OSSのLLMアプリ開発プラットフォーム「Dify」に、IRISをベクトルストアとして利用できる機能をコントリビュートしました。Dify 1.11.2でマージされています。

    https://github.com/langgenius/dify/releases/tag/1.11.2

    Difyとは

    Difyは、RAGやAIエージェントをノーコード/ローコードで構築できるOSSプラットフォームです。
    GitHub Stars 10万以上、世界中で急速に利用が広がっています。

    https://github.com/langgenius/dify

    これまでWeaviate、Qdrant、Milvus、PgVector等のベクトルDBに対応していましたが、
    今回IRISが選択肢に加わりました。

    讨论 (0)1
    登录或注册以继续
    文章
    · 一月 23 阅读大约需 2 分钟

    DBサイズを拡張する方法

    これは InterSystems FAQ サイトの記事です。

    こちらの記事では、データベースサイズを拡張する方法をご紹介します。


    1.今すぐ拡張したい場合

    2.空き容量がなくなったときに、拡張するサイズを設定したい場合



    1.今すぐ拡張したい場合

    管理ポータル、またはコマンドで、拡張したいサイズにデータベースサイズを指定します。

    管理ポータル:
    [システム管理] > [構成] > [システム構成] > [ローカルデータベース]

    対象のデータベースを選択し、データベース属性のダイアログで、「現在」に拡張したイサイズ(拡張後のサイズ)を指定します。
    保存クリック後、即座にデータベースは拡張されます。

     

    上記例は、もともと11MBだったサイズを50MBに拡張、つまり39MB拡張したため、messages.logには以下のようなログが記録されます。

    08/04/25-11:27:01:333 (3468) 0 [Database.StartExpansion] Starting Expansion for database c:\intersystems\iris\mgr\user\. 39 MB requested.
    08/04/25-11:27:01:424 (3468) 0 [Database.FullExpansion] Expansion completed for database c:\intersystems\iris\mgr\user\. Expanded by 39 MB.


    コマンドで行う場合は、以下のようにします。

    // %SYSネームスペースに移動します
    Set $Namespace="%SYS"
    // 設定を変更するデータベースのディレクトリを設定します
    Set Directory="C:\InterSystems\IRIS\mgr\user"
    Set db=##Class(SYS.Database).%OpenId(Directory)
    
    //サイズを拡張するので、Sizeプロパティを設定して保存します
    Set db.Size=100
    Set status=db.%Save()


    2.空き容量がなくなったときに、拡張するサイズを設定したい場合

    データベースファイルの拡張は、そのデータベースに空きブロックがなく、新規ブロックの確保が必要な更新が発生した際に行われます。
    既定 (推奨) の設定であるゼロ (0) は、現在のサイズの 12% または 10 MB のいずれか大きいサイズに拡張を行います。
    任意の値を指定したい場合は、管理ポータル、またはコマンドで、データベースの拡張サイズを指定します。
    次回拡張時に、指定したサイズに拡張されます。

    管理ポータル:
    [システム管理] > [構成] > [システム構成] > [ローカルデータベース]

     

    コマンドで行う場合は、以下のようにします。

    // %SYSネームスペースに移動します
    Set $Namespace="%SYS"
    // 設定を変更するデータベースのディレクトリを設定します
    Set Directory="C:\InterSystems\IRIS\mgr\user"
    Set db=##Class(SYS.Database).%OpenId(Directory)
    
    //拡張サイズ(ExpansionSize)の変更を行います(MB)
    Set db.ExpansionSize = 100
    Set status=db.%Save()
    讨论 (0)0
    登录或注册以继续