Vianetsintä Fabric-sovelluksissa

Diagnosoi yleisiä ongelmia, kun kehität tai otat käyttöön Fabric Apps -projektin. Tässä artikkelissa käsitellään kirjautumisen, paikallisten palveluiden, skeemamuutosten, staattisen hostingin ja komentorivijärjestelmän ongelmia.

Käyttöönotto-ongelmat

Käyttöönotto epäonnistuu 401- tai 403-virheellä

Oire: Käynnistys npx rayfin up palauttaa todennusvirheen.

Syy: Tunnistautumisistuntosi päättyi tai et ole kirjautunut sisään.

Ratkaisu:

Uudelleentodennus ja käyttöönotto uudelleen:

npx rayfin login
npx rayfin up

Staattinen käyttöönotto ylittää kokorajan

Oire: Staattisen sisällön käyttöönotto epäonnistuu kokorajoitusvirheen vuoksi.

Syy: Pakattu arkisto ylittää 100 MB.

Ratkaisu:

Pienennä buildin tuotoskokoa seuraavasti:

  • Lähdekarttojen poissulkeminen tuotantoversioista
  • Suurten kuvien ja videoiden optimointi tai poistaminen
  • Binääritiedostojen siirtäminen tallennustilaan niiden niputtamisen sijaan
  • Bundler-konfiguraation varmistaminen sulkee kehityshäiriöt pois

Autentikointiongelmat

Istunto ei säily kirjautumisen jälkeen

Oire: Käyttäjät kirjautuvat ulos heti tunnistautumisen jälkeen.

Syy: Asiakasohjelmaa ei ole määritetty oikealla perus-URL:llä tai julkaistavalla avaimella.

Ratkaisu:

Varmista, että kokoonpano RayfinClient vastaa taustajärjestelmääsi:

const client = new RayfinClient({
  baseUrl: import.meta.env.VITE_RAYFIN_API_URL ?? 'http://localhost:5168',
  publishableKey: import.meta.env.VITE_RAYFIN_PUBLISHABLE_KEY,
});

Fabric SSO -ponnahdusikkuna estetty

Oire: Selain estää Fabric-portaalin ikkunan kirjautumisen aikana.

Syy:ensureSignedInWithFabric() Ei kutsuttu käyttäjäeleiden käsittelijältä.

Ratkaisu:

Kutsu funktio synkronisen tapahtumakäsittelijän kautta:

async function handleClick() {
  await ensureSignedInWithFabric(client.auth, options);
}

// Attach to button click
<button onClick={handleClick}>Sign in</button>

Tietomallin ongelmat

Suhteet, jotka eivät näy API:ssa

Oire: Liittyvät entiteettikentät eivät ole käytettävissä kyselyissä.

Syy: Navigointisisustus puuttuu tai skeemaa ei ole otettu käyttöön.

Ratkaisu:

  1. Varmista, että suhteen sisustajat ovat paikalla:

    @one(() => Notebook) notebook?: Notebook;
    
  2. Sovella skeema uudelleen.

Valtuutuskäytäntö ei toimi

Oire: Käyttäjät voivat päästä käsiksi tietueisiin, joita heidän ei pitäisi nähdä.

Syy: Vakuutuslauseke on virheellinen tai korvausvaatimusten nimet eivät täsmää.

Ratkaisu:

  1. Varmista, että vakuutus käyttää oikeita korvausnimiä (sub, email, role):

    policy: (claims, item) => claims.sub.eq(item.user_id)
    
  2. Kirjaa purettu JWT varmistaaksesi, että vaatimusten arvot vastaavat koodiasi.

Vanhentuneet API-vastaukset

Oire: Frontend palauttaa vanhentuneita datamuotoja skeeman muuttuessa.

Syy: Generoitu konfiguraatio tallennetaan välimuistiin.

Ratkaisu:

  1. Pysäytä taustajärjestelmä.

  2. Poista hakemisto .temp/ :rayfin/

    rm -rf rayfin/.temp/
    
  3. Käynnistä palvelut uudelleen ja sovella skeema uudelleen.

CLI-ongelmat

Komentoa ei löytynyt

Oire: Käynnissä npx rayfin oleva palautus palauttaa "komentoa ei löydetty."

Syy: CLI:tä ei ole asennettu tai npm ei ole PATHILLASI.

Ratkaisu:

  1. Varmista, että Node.js ja npm ovat asennettuna:

    node --version
    npm --version
    
  2. Palauta riippuvuudet:

    npm install
    

CLI-version epäsopivuus

Oire: CLI-komennot epäonnistuvat odottamattomien virheiden vuoksi päivityksen jälkeen.

Syy: Välimuistissa oleva CLI-versio on vanhentunut.

Ratkaisu:

Päivitä ja asenna uudelleen:

npm update --save
npm install
npx rayfin --version

CLI:n globaali ja paikallinen versio ei ole yhteensopiva

Oire: CLI-komennot epäonnistuvat odottamattomien virheiden vuoksi eri projekteissa.

Syy: CLI-versioiden globaali ja paikallinen asennus, mutta ne eivät täsmään.

Ratkaisu: Validoi paikallinen versio npm list @microsoft/rayfin-cli. Tämä näyttää version nykyisen projektisi node_modules. Tarkista globaali versio npm list -g @microsoft/rayfin-cli. Tämä näyttää järjestelmän laajuisen asennetun version. Käytä npm uninstall -g Rayfin CLI -pakettia poistaaksesi globaalin version ja käyttääksesi paikallisia versioita.

Rakennus- ja pakkausongelmat

Build-komento epäonnistuu

Oire: Staattinen isännöinti epäonnistuu, koska build-komento ei tuottanut tulosta.

Syy: Rakennusvirheet tai väärin konfiguroitu build-komento.

Ratkaisu:

  1. Suorita build-komento manuaalisesti:

    npm run build
    
  2. Korjaa kaikki raportoidut virheet.

  3. Varmista, että ulostulokansio sisältää tiedostoja.

Tyhjä staattinen kansio

Oire: Staattinen käyttöönotto epäonnistuu "tyhjä kansio" -virheellä.

Syy: Konfiguroitu folder polku on virheellinen.

Ratkaisu:

Varmista, että reitti folder vastaa rayfin.yml rakennustulostasi:

services:
  staticHosting:
    folder: dist  # Verify this matches your build output
    buildCommand: npm run build

Tietokantaongelmat

Tietokantaskeeman soveltaminen epäonnistuu

Oire: Juokseminen npx rayfin up db apply tai npx rayfin up db apply --force epäonnistuminen.

Syy: Etätietokannan skeema ja sovelluksen koodissa määritelty skeema ovat epäsynkassa. Sovelluksen koodi on totuuden lähde Fabric-sovellukselle.

Älä muokkaa etätietokantaskeemaa Fabric-portaalin, SQL Server Management Studio (SSMS), SQL Server -laajennuksen Visual Studio Code -laajennuksen tai muiden SQL-työkalujen kautta. Seuraavat muutokset sarakkeissa tietoyksikössä eivät ole tuettuja:

  • Sarakkeen nimeäminen uudelleen.
  • Sarakkeen tietotyypin muuttaminen.
  • Pylvään poistaminen.

Sarakkeen lisääminen on tuettua. Olemassa olevan sarakkeen poistaminen tai muuttaminen voi rikkoa sovelluksen ja sen käyttöönoton Fabric-järjestelmään.

Ratkaisu:

  1. Peruuta kaikki manuaaliset muutokset etätietokantaskeemaan niin, että ne vastaavat sovelluksen koodin skeemaa.

  2. Jos koodausagentti teki tuettoman skeeman muutoksen sovelluksen koodiin, käske agenttia palauttamaan muutos.

  3. Suorita skeeman soveltamiskomento uudelleen:

    npx rayfin up db apply
    

    Sarakkeen uudelleennimeämisessä --force skeeman päivitys saattaa valmistua:

    npx rayfin up db apply --force
    

    Varoitus

    Käyttäminen --force voi aiheuttaa pysyvää datan menetystä. Tarkista ehdotetut toimenpiteet ja varmista, että hyväksyt tietojen menetyksen riskin ennen etenemistä.

Yhteys hylätty

Oire: Datatoiminnot epäonnistuvat yhteysvirheiden vuoksi.

Syy: Tietokantakontti ei ole käynnissä tai terveystarkistukset epäonnistuivat.

Ratkaisu:

  1. Tarkista säiliölokit:

    docker compose logs -f
    
  2. Käynnistä palvelut uudelleen.

Tietojen menetys uudelleenkäynnistyksen jälkeen

Oire: Data katoaa palveluiden pysähtymisen ja käynnistymisen jälkeen.

Syy: Niteet poistettiin .--purge

Ratkaisu:

Käytä --down tiedon säilyttämisen sijaan --purge .

Tunnetut rajoitukset

Nykyiset rajoitukset ja suositeltavat kiertotavat löytyvät täältä:

  • count() ei ole saatavilla sujuvassa GraphQL-asiakasohjelmassa—käytä results.length.
  • Moni-moni-suhteita ei tueta – käytä eksplisiittistä liittymisentiteettiä.
  • Istunto-objektit ovat läpinäkymättömiä—tarkistus isAuthenticated tai user ominaisuudet.
  • Kun autentikointi rayfin.ymlon aktivoitu tai poistettu käytöstä, käynnistä backend uudelleen.

Avun hakeminen

Jos ongelma jatkuu:

  1. Tutustu Fabric Apps -dokumentaatioon.
  2. Tarkista GitHub repository tunnettuja ongelmia varten.
  3. Tee bugiraportti, jossa on yksityiskohtaiset lokit ja toistovaiheet.